EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES 回调函数 (wdfio)

[仅适用于 KMDF]

驱动程序的 EvtIoAllocateRequestResources 回调函数分配了驱动程序处理指定请求所需的特定于请求的资源。

语法

EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES EvtWdfIoAllocateRequestResources;

NTSTATUS EvtWdfIoAllocateRequestResources(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request
)
{...}

参数

[in] Queue

I/o 队列对象的句柄。

[in] Request

框架创建的请求对象的句柄。 该框架尚未将 request 对象添加到 queue 参数的句柄指定的 i/o 队列。

返回值

如果函数未遇到错误,则 EvtIoAllocateRequestResources 回调函数必须返回 STATUS_SUCCESS 或其他 NT_SUCCESS (状态) 等于 TRUE 的状态值。 否则,此函数必须返回状态值,NT_SUCCESS 的 (状态) 等于 FALSE

注解

驱动程序可以在调用WdfIoQueueAssignForwardProgressPolicy时注册EvtIoAllocateRequestResources回调函数。

如果你的驱动程序注册了一个 EvtIoAllocateRequestResources 回调函数,则框架将在为 i/o 请求包创建请求对象之后立即调用该函数, (IRP) i/o 管理器已发送到你的驱动程序。

当驱动程序从 队列 参数的句柄指定的 i/o 队列获取了 request 对象之后,回调函数可以分配您的驱动程序将需要用于处理请求的资源。

如果回调函数成功分配资源并返回 STATUS_SUCCESS,则框架最终会将请求对象传递给驱动程序。

如果发生资源分配错误,如内存不足的情况,则回调函数必须返回错误状态值。 在这种情况下,该框架将遵循驱动程序的前进进度策略,该策略以前使用 WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY 值(在调用 WdfIoQueueAssignForwardProgressPolicy时指定了该驱动程序)。

有关 EvtIoAllocateRequestResources 回调函数的详细信息,请参阅 保证 I/o 操作的前进进度

此回调函数可在 IRQL <= DISPATCH_LEVEL 时调用。 如果 PASSIVE_LEVEL,则框架将在 关键区域内调用回调函数。

要求

   
目标平台 通用
最低 KMDF 版本 1.9
标头 wdfio (包含 Wdf .h)
IRQL <= DISPATCH_LEVEL (参见 "备注" 部分)

请参阅

EvtIoAllocateResourcesForReservedRequest

WdfIoQueueAssignForwardProgressPolicy