функция обратного вызова EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES (wdfio.h)
[Относится только к KMDF]
Функция обратного вызова EvtIoAllocateRequestResources драйвера выделяет ресурсы для конкретного запроса, необходимые драйверу для обработки указанного запроса.
Синтаксис
EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES EvtWdfIoAllocateRequestResources;
NTSTATUS EvtWdfIoAllocateRequestResources(
[in] WDFQUEUE Queue,
[in] WDFREQUEST Request
)
{...}
Параметры
[in] Queue
Дескриптор объекта очереди ввода-вывода.
[in] Request
Дескриптор объекта запроса, созданного платформой. Платформа еще не добавила объект запроса в очередь ввода-вывода, которую указывает дескриптор параметра Queue .
Возвращаемое значение
Функция обратного вызова EvtIoAllocateRequestResources должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(status) равно TRUE , если функция не обнаруживает ошибок. В противном случае эта функция должна возвращать значение состояния, для которого NT_SUCCESS(status) равно FALSE.
Комментарии
Драйвер может зарегистрировать функцию обратного вызова EvtIoAllocateRequestResources при вызове WdfIoQueueAssignForwardProgressPolicy.
Если драйвер регистрирует функцию обратного вызова EvtIoAllocateRequestResources , платформа вызывает функцию сразу после создания объекта запроса для пакета запросов ввода-вывода (IRP), отправленного диспетчером ввода-вывода вашему драйверу.
Функция обратного вызова может выделять ресурсы, необходимые драйверу для обработки запроса позже, после того, как драйвер получит объект запроса из очереди ввода-вывода, которую указывает дескриптор параметра Queue .
Если функция обратного вызова успешно выделяет ресурсы и возвращает STATUS_SUCCESS, платформа в конечном итоге доставляет объект запроса драйверу.
Если возникает ошибка выделения ресурсов, например при нехватке памяти, функция обратного вызова должна возвращать значение состояния ошибки. В этом случае платформа следует политике прямого хода выполнения драйвера, которую драйвер ранее указал с WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY значением при вызове WdfIoQueueAssignForwardProgressPolicy.
Дополнительные сведения о функции обратного вызова EvtIoAllocateRequestResources см. в разделе Обеспечение прямого хода выполнения операций ввода-вывода.
Эту функцию обратного вызова можно вызвать в IRQL <= DISPATCH_LEVEL. Если IRQL PASSIVE_LEVEL, платформа вызывает функцию обратного вызова в критическом регионе.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,9 |
Верхняя часть | wdfio.h (включая Wdf.h) |
IRQL | <=DISPATCH_LEVEL (см. раздел "Примечания") |