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

I/O 队列对象的句柄。

[in] Request

框架已创建的请求对象的句柄。 框架尚未将请求对象添加到 Queue 参数的句柄指定的 I/O 队列。

返回值

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

注解

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

如果驱动程序注册 了 EvtIoAllocateRequestResources 回调函数,框架会在为 I/O 请求数据包创建请求对象后立即调用该函数, (I/O 管理器已发送到驱动程序的 I/O) 。

在驱动程序从 队列 参数句柄指定的 I/O 队列中获取请求对象后,回调函数可以分配驱动程序稍后处理请求所需的资源。

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

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

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

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

要求

要求
目标平台 通用
最低 KMDF 版本 1.9
标头 wdfio.h (包括 Wdf.h)
IRQL <=DISPATCH_LEVEL (请参阅“备注”部分)

另请参阅

EvtIoAllocateResourcesForReservedRequest

WdfIoQueueAssignForwardProgressPolicy