структура WDF_IO_QUEUE_CONFIG (wdfio.h)
[Относится к KMDF и UMDF]
Структура WDF_IO_QUEUE_CONFIG содержит сведения о конфигурации объекта очереди платформы.
Синтаксис
typedef struct _WDF_IO_QUEUE_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE DispatchType;
WDF_TRI_STATE PowerManaged;
BOOLEAN AllowZeroLengthRequests;
BOOLEAN DefaultQueue;
PFN_WDF_IO_QUEUE_IO_DEFAULT EvtIoDefault;
PFN_WDF_IO_QUEUE_IO_READ EvtIoRead;
PFN_WDF_IO_QUEUE_IO_WRITE EvtIoWrite;
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl;
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl;
PFN_WDF_IO_QUEUE_IO_STOP EvtIoStop;
PFN_WDF_IO_QUEUE_IO_RESUME EvtIoResume;
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue;
union {
struct {
ULONG NumberOfPresentedRequests;
} Parallel;
} Settings;
WDFDRIVER Driver;
} WDF_IO_QUEUE_CONFIG, *PWDF_IO_QUEUE_CONFIG;
Члены
Size
Длина этой структуры (в байтах).
DispatchType
Перечислитель WDF_IO_QUEUE_DISPATCH_TYPE , определяющий тип отправки запросов для очереди.
PowerManaged
Значение типа WDF_TRI_STATE, которое, если задано значение WdfTrue, указывает, что платформа обрабатывает управление питанием очереди.
Если задано значение WdfFalse, драйвер должен управлять питанием очереди.
Если задано значение WdfUseDefault, платформа обрабатывает управление питанием для очереди, если драйвер не вызывает WdfFdoInitSetFilter.
Драйверы над владельцем политики управления питанием в стеке драйверов не должны устанавливать для элемента PowerManagedзначение WdfTrue.
Дополнительные сведения об управляемых питанием очередях ввода-вывода см. в разделе Управление питанием для очередей ввода-вывода.
AllowZeroLengthRequests
Логическое значение, которое, если значение TRUE, указывает, что драйвер ожидает получать запросы на чтение или запись с нулевой длиной буфера, поэтому платформа доставляет эти запросы драйверу. Если значение FALSE, платформа не доставляет эти запросы драйверу; Вместо этого он завершает их с состоянием завершения STATUS_SUCCESS.
DefaultQueue
Логическое значение, которое, если значение TRUE, указывает, что очередь будет очередью ввода-вывода устройства по умолчанию. Если значение FALSE, очередь не будет очередью устройства по умолчанию.
EvtIoDefault
Указатель на функцию обратного вызова EvtIoDefault для конкретной очереди драйвера или значение NULL.
EvtIoRead
Указатель на функцию обратного вызова EvtIoRead для конкретной очереди драйвера или значение NULL.
EvtIoWrite
Указатель на функцию обратного вызова EvtIoWrite для конкретной очереди драйвера или null.
EvtIoDeviceControl
Указатель на функцию обратного вызова EvtIoDeviceControl для конкретной очереди драйвера или значение NULL.
EvtIoInternalDeviceControl
Указатель на функцию обратного вызова EvtIoInternalDeviceControl для конкретной очереди драйвера или значение NULL.
EvtIoStop
Указатель на функцию обратного вызова EvtIoStop для конкретной очереди драйвера или значение NULL.
EvtIoResume
Указатель на функцию обратного вызова EvtIoResume для конкретной очереди драйвера или значение NULL.
EvtIoCanceledOnQueue
Указатель на функцию обратного вызова EvtIoCanceledOnQueue для конкретной очереди драйвера или null.
Settings
Settings.Parallel
Settings.Parallel.NumberOfPresentedRequests
Для метода параллельной диспетчеризации — максимальное количество запросов ввода-вывода, которые платформа асинхронно доставляет обработчикам запросов очереди ввода-вывода. Дополнительные сведения см. в разделе "Примечания". Для последовательных и ручных методов диспетчеризации этот элемент должен быть равен нулю. Этот член доступен в KMDF версии 1.9 и более поздних версиях.
Driver
Только для внутреннего использования. задано значение NULL. Этот элемент доступен в KMDF версии 1.11 и более поздних версиях.
Комментарии
Драйвер должен инициализировать структуру WDF_IO_QUEUE_CONFIG путем вызова WDF_IO_QUEUE_CONFIG_INIT или WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE.
Структура WDF_IO_QUEUE_CONFIG используется в качестве входного параметра для WdfIoQueueCreate.
Начиная с kmdf версии 1.9, драйверы могут использовать член NumberOfPresentedRequests для указания максимального числа запросов ввода-вывода, которые платформа асинхронно доставляет обработчикам запросов параллельной очереди ввода-вывода. После того как платформа доставляет указанное количество запросов ввода-вывода драйверу, она не доставляет дополнительные запросы из очереди, пока драйвер не завершит, не отменит или не повторит хотя бы один из запросов.
Для параллельных очередей WDF_IO_QUEUE_CONFIG_INIT и WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE задать для элемента NumberOfPresentedRequests значение по умолчанию (-1), указывающее, что платформа может доставлять драйверу неограниченное количество запросов ввода-вывода.
Требования
Требование | Значение |
---|---|
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfio.h (включая Wdf.h) |