RxFsdPostRequest 函数 (rxprocs.h)
RxFsdPostRequest 将 I/O 请求数据包(IRP)由RX_CONTEXT结构指定的 I/O 请求数据包排到辅助角色队列,以供文件系统进程(FSP)处理。
语法
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
参数
[in] RxContext
指向包含要排队到工作线程的 IRP 的RX_CONTEXT的指针。
返回值
RxFsdPostRequest 返回以下值:
返回代码 | 描述 |
---|---|
|
发出异步请求,并已排队到工作线程以供以后处理。 请求的状态处于挂起状态。 |
言论
RxFsdPostRequest 通常由 RDBSS 调用以处理异步 I/O 请求数据包(IRP)。 RDBSS 通常会接收这些 IRP,以响应请求对文件执行的作的用户模式应用程序。 另一个内核驱动程序也可以发出此类 IRP。
如果 RxContext 参数指向的RX_CONTEXT结构的 标志 成员没有RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED位集,则 RxFsdPostRequest 将尝试锁定某些类型请求所需的任何用户地址空间。 导致此行为的请求基于由 RxContext 指向的 RX_CONTEXT 结构的 MajorFunction 成员,并包括以下内容:
- 当 RxContext->MinorFunctionIRP_MN_QUERY_DIRECTORY 时,IRP_MJ_DIRECTORY CONTROL。
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
如果 IRP 的 FileObject 成员未 NULL 并且可以立即发布请求进行处理(设备队列的阈值为空),则会发生此情况。 否则,请求将发布到卷上的溢出队列。
对 RxFsdPostRequest 的所有调用都排队到工作线程,以调用传入 RxContext 参数的 RxFsdDispatch 例程。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | rxprocs.h(包括 Rxprocs.h、Rxcontx.h) |
IRQL | <= APC_LEVEL |