IR_TRANSMIT_PARAMS.Значения маски порта передачи?
Вопрос
Я везде осмотрелся и не могу найти никакой документации о значениях, которые нужно поместить в TransmitPortMask структуры IR_TRANSMIT_PARAMS для использования с IOCTL_IR_TRANSMIT.
Во всей документации говорится, что это "битовая маска, которая содержит порты для передачи".
Таким образом, я впервые попробовал:
PORT1 = 0x1
PORT2 = 0x2
Это не сработало!
Затем, на своем компьютере, я перепробовал все значения и обнаружил, что:
PORT1 = 0x4
PORT2 = 0x2
Что является довольно странными значениями...особенно для порта 1.
Конечно, если я поставлю -1 (или ~ 0, или 0xFFFFFFFF), он передаст данные на все порты одновременно.Но я хочу контролировать отдельные порты.
Сейчас я получаю сообщения от некоторых пользователей, в которых говорится, что это не работает в их системах, даже несмотря на то, что у них одна и та же версия Windows.
Поэтому я спрашиваю, какие значения я должен ввести в TransmitPortMask?
- Я использую 32-разрядную версию Windows 7 RC.
- Я использую Microsoft IR Blaster (не просто совместимый, настоящий Microsoft), который поставляется с пультом дистанционного управления Microsoft Media Center
Решение
Я нашел свой ответ.Я размещаю это здесь для потомков
Порты - это младшие значащие биты маски, но последний порт в качестве LSBit.
example with 1 port: ---- ---- ---- ---1 LSB
example with 2 ports: ---- ---- ---- --12 LSB
example with 3 ports: ---- ---- ---- -123 LSB