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 (请参阅“备注”部分) |