MRxQueryDirectory 例程

MRxQueryDirectory 例程由 RDBSS 调用,以请求网络微型重定向程序查询文件目录上的信息。

语法

PMRX_CALLDOWN MRxQueryDirectory;

NTSTATUS MRxQueryDirectory(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

参数

RxContext [in, out]
指向RX_CONTEXT结构的指针。 此参数包含请求操作的 IRP。

返回值

MRxQueryDirectory 在成功时返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:

返回代码 说明
STATUS_ACCESS_DENIED

调用方缺少此操作的适当安全性。

STATUS_INSUFFICIENT_RESOURCES

资源不足,无法完成查询。

STATUS_INVALID_NETWORK_RESPONSE

从远程服务器接收的文件信息缓冲区无效,或者返回的文件名长度超出了允许的最大长度。

STATUS_INVALID_PARAMETER

在 RxContext 参数指向的 RX_CONTEXT 结构中的 Info.FileInformationClass 成员中指定了无效的 FileInformationClass

STATUS_LINK_FAILED

尝试重新连接到远程服务器以完成查询失败。

STATUS_NO_SUCH_FILE

查询找不到任何条目。

STATUS_SHARING_VIOLATION

发生共享冲突。

注解

在调用 MRxQueryDirectory 之前,RDBSS 修改 RxContext 参数指向的 RX_CONTEXT 结构中的以下成员:

Info.FileInformationClass 成员设置为 IrpSp-Parameters.QueryDirectory.FileInformationClass>

Info.Buffer 成员设置为 I/O 请求数据包中的用户缓冲区。 如果需要,RDBSS 已锁定此缓冲区。

Info.LengthRemaining 成员设置为 IrpSp-Parameters.QueryDirectory.Length>

QueryDirectory.FileIndex 成员设置为 IrpSp-Parameters.QueryDirectory.FileIndex>

如果 IrpSp-Flags 已打开 SL_RESTART_SCAN 位,则 QueryDirectory.RestartScan> 成员设置为非零。

如果 IrpSp-Flags> 具有SL_RETURN_SINGLE_ENTRY位,则 QueryDirectory.ReturnSingleEntry 成员设置为非零。

如果 IrpSp-Flags 具有SL_INDEX_SPECIFIED位,则 QueryDirectory.IndexSpecified> 成员设置为非零。

如果关联的 FOBX 的 UnicodeQueryTemplate.Buffer 成员为 NULL,并且 FOBX 的 Flags 成员没有打开FOBX_FLAG_MATCH_ALL位,则 QueryDirectory.InitialQuery 成员设置为非零。

对于 (“*.*”的野生卡查询,例如) ,RDBSS 会将关联 FOBX 的 UnicodeQueryTemplate.Buffer 成员设置为传递的野生卡查询。

如果从 MRxQueryDirectory 返回时RX_CONTEXT结构的 PostRequest 成员为 TRUE,则 RDBSS 将调用 RxFsdPostRequest,将RX_CONTEXT结构传递给辅助角色队列,由文件系统进程 (FSP) 进行处理。

要求

目标平台

桌面

标头

Mrx.h (包括 Mrx.h)

另请参阅

MRxIsValidDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo

RxFsdPostRequest