I have look around everywhere and cannot find any documentation about the values to put in TransmitPortMask of IR_TRANSMIT_PARAMS structure for use with IOCTL_IR_TRANSMIT.
All the documentation says is that it is "A bitmask that contains ports to transmit on".
Thus, I first tried:
PORT1 = 0x1
PORT2 = 0x2
It did not work!
Then, on my computer, I tried all the values and found out that:
PORT1 = 0x4
PORT2 = 0x2
Which is kind of weird values... especially for PORT1.
Of course, if I put -1 (or ~0, or 0xFFFFFFFF) it transmit the data on all ports simultaneously. But I want to control individual ports.
Now I am receiving reports from some users saying that it does not work on their systems, even though they are having the same version of Windows.
Hence I ask, what are the values I should put in TransmitPortMask?
I found my answer. I post it here for posterity
Ports are the least significant bits of the mask but the last port as the LSBit.
example with 1 port: ---- ---- ---- ---1 LSB
example with 2 ports: ---- ---- ---- --12 LSB
example with 3 ports: ---- ---- ---- -123 LSB