IR_TRANSMIT_PARAMS.TransmitPortMask值?

时间:2009-08-03 12:45:24

标签: infrared wdk

我到处浏览,找不到任何关于要放在IR_TRANSMIT_PARAMS结构的TransmitPortMask中的值的文档,以便与IOCTL_IR_TRANSMIT一起使用。

所有文档都说它是“包含要传输的端口的位掩码”。

因此,我首先尝试了:

PORT1 = 0x1 
PORT2 = 0x2

它不起作用!

然后,在我的计算机上,我尝试了所有的值并发现:

PORT1 = 0x4
PORT2 = 0x2

这是一种奇怪的价值......特别是对于PORT1。

当然,如果我输入-1(或~0或0xFFFFFFFF),它会同时在所有端口上传输数据。但我想控制各个端口。

现在我收到一些用户的报告,说它在他们的系统上不起作用,即使他们拥有相同版本的Windows。

因此我问,我应该在TransmitPortMask中添加什么值?

  • 我使用的是Windows 7 RC 32位。
  • 我正在使用Microsoft Media Center远程附带的Microsoft IR Blaster(不仅仅是兼容的,真正的Microsoft)

1 个答案:

答案 0 :(得分:1)

我找到了答案。我在这里张贴后代

端口是掩码的最低有效位,但最后一个端口是LSBit。

example with 1 port:  ---- ---- ---- ---1 LSB
example with 2 ports: ---- ---- ---- --12 LSB
example with 3 ports: ---- ---- ---- -123 LSB