IoGetDeviceInterfaces для поиска видиобуфера

Тема в разделе "WASM.WIN32", создана пользователем ProgramMan, 8 фев 2005.

  1. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Нужно выполнить запись в видиобуфер из драйвера(fasm).

    Для того, чтобы узнать адрес использую

    GUID_DEVINTERFACE_DISPLAY_ADAPTER_V GUID 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99

    ...

    invoke IoGetDeviceInterfaces,GUID_DEVINTERFACE_DISPLAY_ADAPTER_V1, NULL, DEVICE_INTERFACE_INCLUDE_NONACTIVE,pw

    invoke RtlInitUnicodeString,uDevName, dword[pw]

    invoke IoGetDeviceObjectPointer,uDevName, FILE_READ_DATA, FileObject, DeviceObject



    IoGetDeviceInterfaces возвращает 0, и записывает по адресу pw адрес на строку(UNICODE) с именем интерфейса, но по этому адресу лежат нули.

    В чём ошибка, может кто знает?
     
  2. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    По ходу дело в GUID интерфейсе (странно брал я его из ntddvdeo.h)

    Вопрос: так-ли переводится команда DEFINE_GUID при компиляции на C:

    С:

    DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);

    FASM:

    dd 0x5b45201d

    dw 0xf2f2, 0x4f3b

    db 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99

    Или я не прав?

    Может быть кто-то видел другое занчение для это интрефейса?
     
  3. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    "If no device interface instances match the search criteria, this routine returns STATUS_SUCCESS and the string contains a single NULL character."



    и, IMHO, DEVICE_INTERFACE_INCLUDE_NONACTIVE лишний. Зачем тебе неактивные интерфейсы. GUID, вроде, правильный.
     
  4. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Всё равно не находит не зависемо от флага активности.

    Видимо под win2k нужен другой интерфейс.
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Так нету значит такого интерфейса, т.е. он не создан. Про флаг это я к слову.
     
  6. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
  7. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Пробовал искать другие интерфейсы - всё работает.

    p.s. что за чертовщина :dntknw: