RxFsdPostRequest 函数 (rxprocs.h)
RxFsdPostRequest 将 I/O 请求数据包 (IRP) RX_CONTEXT结构指定的 I/O 请求数据包排队到辅助角色队列中,供文件系统进程 (FSP) 进行处理。
语法
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
参数
[in] RxContext
指向RX_CONTEXT的指针,其中包含要排队到工作线程的 IRP。
返回值
RxFsdPostRequest 返回以下值:
返回代码 | 说明 |
---|---|
|
已发出异步请求,并已排队到工作线程供以后处理。 请求的状态为挂起。 |
注解
RDBSS 通常调用 RxFsdPostRequest 来处理异步 I/O 请求数据包 (IRP) 。 这些 IRP 通常由 RDBSS 接收,以响应用户模式应用程序请求对文件执行的操作。 另一个内核驱动程序也可以发出这样的 IRP。
如果 RxContext 参数指向的 RX_CONTEXT 结构的 Flags 成员未设置RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED位,则 RxFsdPostRequest 将尝试锁定某些类型请求所需的任何用户地址空间。 导致此行为的请求基于 RxContext 指向的 RX_CONTEXT 结构的 MajorFunction 成员,包括以下内容:
- IRP_MN_QUERY_DIRECTORY RxContext->MinorFunction 时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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈