Про IrDA...

Тема в разделе "WASM.ELECTRONICS", создана пользователем naTpuoT, 20 июл 2005.

  1. naTpuoT

    naTpuoT New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    20
    Адрес:
    Russia
    Исходные данные: нотебук,WinXP,наличие в системе устройства "\Device\IrDA".

    Что хочу: передавать инфу с использованием встроенного ИК-порта с помощью CreateFile,WriteFile и т.д.

    Вопрос: что указать при вызове CreateFile в качестве lpFileName? Иначе говоря: не могу получить handle устройства.

    Заранее спасибо!
     
  2. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Посмотри в WinObjEx папку "??" там должна быть ссылка на "\Device\IrDA" для уровня пользователя (например "\??\IrDA") А дальше дело техники :))
    Код (Text):
    1. invoke CreateFile, $CTA0("\\\\.\\IrDA"), ...
     
  3. naTpuoT

    naTpuoT New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    20
    Адрес:
    Russia
    Спасибо за ответ!

    Первым делом так и сделал,но в том то и весь фикус-пикус, что такое устройство я вижу только в Process Explorer,а в WinObj его нема...В смысле оно присутствует только в папке Device и всё,в Global?? его нет.
     
  4. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Символьную ссылку можно попытаться создать самому:


    Код (Text):
    1. invoke DefineDosDevice, DDD_RAW_TARGET_PATH, $CTA0("SomeName"), $CTA0("\\Device\\IrDA")
    2. .if eax != 0
    3.  
    4.     invoke CreateFile, . . .
    5.  
    6.     invoke DefineDosDevice, DDD_REMOVE_DEFINITION, $CTA0("SomeName"), NULL
    7. .endi




    Вопрос, даст ли драйвер открыть свой девайс. Надо пробовать.
     
  5. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Можно попытаться открыть его ZwCreateFile прямо из "папки" \Device\ :) этот способ действует в обход всех норм M$, тем не менее... :) дает результат. На счет "даст себя отрыть" - это точно нужно пробовать. Девайс может не открывается по двум причинам:

    1. У него нет ф-ций IRP_MJ_CLOSE и IRP_MJ_CREATE (в IrDa скорее всего есть на 100%)

    2. Он проверяет права юзверя на соответствие каких-то своих правил.

    Возможно есть ещё причина, но мне она неизвеста... Может Four-F прольёт свет :)))
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Может быть ещё причина: он дает открыть себя только один раз и уже открыт.
     
  7. naTpuoT

    naTpuoT New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    20
    Адрес:
    Russia
    Блин,жалко,что проверить смогу только в августе - в Сочи еду отдыхать!!! В принципе тоже неплохо :)

    Всем большое спасибо за участие!!!