MRxQueryFileInfo 例程

RDBSS 调用MRxQueryFileInfo 例程,以请求网络微型重定向程序查询文件系统对象上的文件信息。

语法

PMRX_CALLDOWN MRxQueryFileInfo;

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

参数

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

返回值

MRxQueryFileInfo 在成功时返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如以下值之一:

返回代码 说明
STATUS_ACCESS_DENIED

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

STATUS_BUFFER_OVERFLOW

用于接收文件信息的缓冲区太小。

应将此返回值视为成功,并且应在 RxContext 参数指向的 RX_CONTEXT 结构的 Info.Buffer 成员中返回尽可能多的有效数据。

STATUS_BUFFER_TOO_SMALL

缓冲区太小,无法接收请求的数据。

如果返回此值,则应将 RxContext 参数指向的 RX_CONTEXT 结构的 InformationToReturn 成员设置为预期缓冲区的最小大小,以便调用成功。

STATUS_INSUFFICIENT_RESOURCES

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

STATUS_INVALID_NETWORK_RESPONSE

从远程服务器收到无效的文件信息缓冲区。

STATUS_INVALID_PARAMETER

指定的参数无效。

如果传递RX_CONTEXT中的 FileInformationClass 成员的值无效,则可以返回此值。 如果指定的 FileInformationClass 成员用于 FileStreamInformation ,并且远程文件系统不支持流,也可以返回此值。

STATUS_OBJECT_NAME_NOT_FOUND

找不到对象名称。 这是错误代码。

注解

RDBSS 发出对 MRxQueryFileInfo 的调用,以响应接收 IRP_MJ_QUERY_INFORMATION 请求。

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

Info.FileInformationClass 成员设置为 IrpSp-Parameters.QueryFile.FileInformationClass>(请求的FILE_INFORMATION_CLASS值)。

Info.Buffer 成员设置为 I/O 请求数据包中的用户缓冲区。

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

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

如果 IrpSp-Flags> 设置了 SL_RESTART_SCAN 位,则会设置 QueryDirectory.RestartScan 成员。

如果 IrpSp-Flags 已设置SL_RETURN_SINGLE_ENTRY位,则会设置 QueryDirectory.ReturnSingleEntry> 成员。

如果 Fobx-UnicodeQueryTemplate.Buffer 为 NULL 且 Fobx-Flags> 未设置FOBX_FLAG_MATCH_ALL位,则会设置 QueryDirectory.InitialQuery> 成员。

成功后,网络微型重定向程序应将 RX_CONTEXT 结构的 Info.LengthRemaining 成员设置为 Info.Length 成员减去返回的文件信息的长度。 如果成功调用 MRxQueryFileInfo,RDBSS 会将 IRP 的 IoStatus.Information 成员设置为 IrpSp-Parameters.QueryFile.Length> 减去 RX_CONTEXT 的 Info.LengthRemaining 成员。

RDBSS 不支持具有 IrpSp 标志>集SL_INDEX_SPECIFIED位的请求。 网络微型重定向程序不会在设置了 IrpSp> 标志SL_INDEX_SPECIFIED位的情况下接收对 MRxQueryFileInfo 的调用。

要求

目标平台

桌面

标头

Mrx.h (包括 Mrx.h)

另请参阅

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo