Получение сведений о запросе ввода-вывода

Перед обработкой запроса ввода-вывода драйвер должен определить тип запроса. Когда драйвер на основе платформы создает очереди ввода-вывода для устройства, он обычно настраивает очереди ввода-вывода и обработчики запросов таким образом, чтобы каждая очередь или обработчик запросов получали запросы определенного типа (чтение, запись или элемент управления вводом-выводом устройства).

После определения типа запроса драйвер должен получить входные и выходные буферы запроса, если они необходимы. Сведения о получении буферов запроса см. в разделе Доступ к буферам данных в Framework-Based Drivers.

Чтобы предоставить дополнительные сведения о запросе ввода-вывода, полученном драйвером, объект запроса платформы определяет следующие методы:

  • WdfRequestGetIoQueue, который возвращает дескриптор очереди ввода-вывода, из которой был доставлен запрос ввода-вывода.

  • WdfRequestGetRequestorMode, который возвращает режим доступа к процессору (пользователь или ядро) инициатора запроса.

  • WdfRequestGetFileObject, который возвращает дескриптор объекту файла платформы, связанному с запросом.

  • WdfRequestWdmGetIrp, который возвращает структуру WDM IRP , связанную с запросом.

  • WdfRequestGetParameters, который получает параметры запроса, отличные от IRP, в формате WDM.

После того как драйвер завершает запрос ввода-вывода, другие драйверы в стеке драйверов могут вызывать дополнительные методы объекта запроса для получения сведений о завершении запроса. Дополнительные сведения об этих дополнительных методах см. в разделе Завершение запросов ввода-вывода.