Что за функции IofCallDriver, IofCompleteRequest?

Тема в разделе "WASM.BEGINNERS", создана пользователем wint, 29 янв 2007.

  1. wint

    wint New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2006
    Сообщения:
    66
    Доброго времени суток.

    Изучаю защиту USB флэш дисков.

    Дизассемблировал драйвер UStork.sys (в комплекте с Transcend JetFlash 2.0), что бы посмотреть что передается из клиентской части ПО непосредственно флэшке. Но натолкнулся на использование в драйвере следующих функций:
    - IofCallDriver
    - IofCompleteRequest

    фактически, как я понял, Irp пакет не обрабатывается в самом драйвере, а передается в эти функции.

    Я не нашел их описания в MSDN и книжке посвященной NativeAPI, yandex тоже не выдал ничего вразумительного (может я плохо искал?=( )

    Кто-нибудь может мне объяснить (или дать ссылочку где почитать) как работают эти функции?
     
  2. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    скорее всего вызов usbd с URB пакетом
    завершение обработки запроса клиентской части
     
  3. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    IofCallDriver == IoCallDriver
    IofCompleteRequest == IoCompleteRequest
    см. МСДН
    "f" - обозначает fastcall, часть параметров идет в регистрах а не на стеке
     
  4. wint

    wint New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2006
    Сообщения:
    66
    Ага... как я понимаю функция IoCallDriver передает IRP следующему драйверу...
    Тогда такой вопрос, как узнать какому драйверу передается пакет?
     
  5. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    ну например по PDEVICE_OBJECT - в нем есть ссылка на PDRIVER_OBJECT