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


функция обратного вызова 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 (см. раздел "Примечания")

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

EvtIoAllocateResourcesForReservedRequest

WdfIoQueueAssignForwardProgressPolicy