Поделиться через


функция обратного вызова EVT_WDF_IO_QUEUE_IO_DEFAULT (wdfio.h)

[Применимо к KMDF и UMDF]

Функция обратного вызова события EvtIoDefault драйвера обрабатывает указанный запрос ввода-вывода.

Синтаксис

EVT_WDF_IO_QUEUE_IO_DEFAULT EvtWdfIoQueueIoDefault;

void EvtWdfIoQueueIoDefault(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request
)
{...}

Параметры

[in] Queue

Дескриптор объекта очереди платформы, связанного с запросом ввода-вывода.

[in] Request

Дескриптор объекта запроса платформы.

Возвращаемое значение

None

Remarks

Драйвер регистрирует функцию обратного вызова EvtIoDefault при вызове WdfIoQueueCreate. Дополнительные сведения о вызове WdfIoQueueCreate см. в разделе Создание очередей ввода-вывода.

Если драйвер зарегистрировал функцию обратного вызова EvtIoDefault для очереди ввода-вывода устройства, функция обратного вызова получает каждый запрос ввода-вывода из очереди, если только не зарегистрированы функции обратного вызова для конкретных запросов. Дополнительные сведения о функциях обратного вызова для конкретных запросов см. в разделе Обработчики запросов.

Функция обратного вызова EvtIoDefault драйвера также может получать запросы на создание файла. Дополнительные сведения о получении запросов на создание файлов см. в разделе Объекты файлов платформы.

Функция обратного вызова EvtIoDefault должна обрабатывать каждый полученный запрос ввода-вывода определенным образом. Дополнительные сведения см. в разделе Обработка запросов ввода-вывода.

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

Эту функцию обратного вызова можно вызвать в IRQL <= DISPATCH_LEVEL, если для элемента ExecutionLevel устройства или структуры WDF_OBJECT_ATTRIBUTES драйвера не задано значение WdfExecutionLevelPassive.

Если IRQL PASSIVE_LEVEL, платформа вызывает функцию обратного вызова в критическом регионе.

Дополнительные сведения об уровнях IRQL для обработчиков запросов см. в разделе Использование автоматической синхронизации.

Функция обратного вызова EvtIoDefault драйвера не должна вызывать следующие методы объекта очереди:

WdfIoQueueDrainSynchronously
WdfIoQueuePurgeSynchronously
WdfIoQueueStopSynchronously

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfio.h (включая Wdf.h)
IRQL <= DISPATCH_LEVEL (см. раздел "Примечания")

См. также раздел

EvtIoDeviceControl

EvtIoInternalDeviceControl

EvtIoRead

EvtIoWrite

WDF_OBJECT_ATTRIBUTES

WdfIoQueueCreate