Исходные данные: нотебук,WinXP,наличие в системе устройства "\Device\IrDA". Что хочу: передавать инфу с использованием встроенного ИК-порта с помощью CreateFile,WriteFile и т.д. Вопрос: что указать при вызове CreateFile в качестве lpFileName? Иначе говоря: не могу получить handle устройства. Заранее спасибо!
Посмотри в WinObjEx папку "??" там должна быть ссылка на "\Device\IrDA" для уровня пользователя (например "\??\IrDA") А дальше дело техники ) Код (Text): invoke CreateFile, $CTA0("\\\\.\\IrDA"), ...
Спасибо за ответ! Первым делом так и сделал,но в том то и весь фикус-пикус, что такое устройство я вижу только в Process Explorer,а в WinObj его нема...В смысле оно присутствует только в папке Device и всё,в Global?? его нет.
Символьную ссылку можно попытаться создать самому: Код (Text): invoke DefineDosDevice, DDD_RAW_TARGET_PATH, $CTA0("SomeName"), $CTA0("\\Device\\IrDA") .if eax != 0 invoke CreateFile, . . . invoke DefineDosDevice, DDD_REMOVE_DEFINITION, $CTA0("SomeName"), NULL .endi Вопрос, даст ли драйвер открыть свой девайс. Надо пробовать.
Можно попытаться открыть его ZwCreateFile прямо из "папки" \Device\ этот способ действует в обход всех норм M$, тем не менее... дает результат. На счет "даст себя отрыть" - это точно нужно пробовать. Девайс может не открывается по двум причинам: 1. У него нет ф-ций IRP_MJ_CLOSE и IRP_MJ_CREATE (в IrDa скорее всего есть на 100%) 2. Он проверяет права юзверя на соответствие каких-то своих правил. Возможно есть ещё причина, но мне она неизвеста... Может Four-F прольёт свет ))
Блин,жалко,что проверить смогу только в августе - в Сочи еду отдыхать!!! В принципе тоже неплохо Всем большое спасибо за участие!!!