FsRtlMupGetProviderInfoFromFileObject 函数 (ntifs.h)

FsRtlMupGetProviderInfoFromFileObject 例程从位于远程文件系统上的文件的文件中从多个 UNC 提供程序(MUP)注册的网络重定向程序的信息。

语法

NTSTATUS FsRtlMupGetProviderInfoFromFileObject(
  [in]      PFILE_OBJECT pFileObject,
  [in]      ULONG        Level,
  [out]     PVOID        pBuffer,
  [in, out] PULONG       pBufferSize
);

参数

[in] pFileObject

指向位于远程文件系统上的文件的文件的指针。

[in] Level

FsRtlMupGetProviderInfoFromFileObject 例程返回的信息级别。 有关此参数可能值的详细信息,请参阅“备注”部分。

[out] pBuffer

指向接收 FsRtlMupGetProviderInfoFromFileObject 例程返回信息的缓冲区的指针。 有关此缓冲区中返回的数据的格式的详细信息,请参阅“备注”部分。

[in, out] pBufferSize

指向 ULONG 类型的变量的指针,该变量包含 pBuffer 参数指向的缓冲区的大小(以字节为单位)。 如果例程成功,此变量将接收缓冲区中返回的数据的大小(以字节为单位)。

返回值

FsRtlMupGetProviderInfoFromFileObject 例程返回以下 NTSTATUS 值之一。

返回代码 描述
STATUS_SUCCESS
pBuffer 参数指向的缓冲区中成功返回了有关网络重定向程序的信息。
STATUS_INVALID_PARAMETER
其中一个参数 NULL 或包含无效值。
STATUS_OBJECT_NAME_NOT_FOUND
pFileObject 参数指向的文件对象与完全打开的远程文件系统文件对象不对应。
STATUS_BUFFER_TOO_SMALL
pBuffer 参数指向的缓冲区的大小太小,无法返回任何数据。 在这种情况下,pBufferSize 参数指向的变量接收缓冲区所需的大小(以字节为单位)。
STATUS_BUFFER_OVERFLOW
pBuffer 参数指向的缓冲区的大小太小,无法返回所有数据。 仅返回适合缓冲区的数据。 在这种情况下,pBufferSize 参数指向的变量接收缓冲区所需的大小(以字节为单位)。

言论

文件系统筛选器驱动程序可以调用 FsRtlMupGetProviderInfoFromFileObject 例程,从位于远程文件系统上的文件的文件对象获取有关网络重定向程序的信息。 FsRtlMupGetProviderInfoFromFileObject 例程返回的信息量取决于 Level 参数的值。 如果 级别 参数设置为 1,FsRtlMupGetProviderInfoFromFileObject 例程将返回缓冲区中由 pBuffer 参数指向的FSRTL_MUP_PROVIDER_INFO_LEVEL_1结构。 FSRTL_MUP_PROVIDER_INFO_LEVEL_1结构的定义如下:

typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {
  ULONG32  ProviderId;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1;

如果 Level 参数设置为 2,FsRtlMupGetProviderInfoFromFileObject 例程将返回缓冲区中由 pBuffer 参数指向的FSRTL_MUP_PROVIDER_INFO_LEVEL_2结构。 FSRTL_MUP_PROVIDER_INFO_LEVEL_2结构的定义如下:

typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 {
  ULONG32  ProviderId;
  UNICODE_STRING  ProviderName;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_2, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_2;

文件系统筛选器驱动程序可以快速将提供程序标识符的值与其他提供程序标识符的值进行比较,而无需执行字符串比较。

如果从系统卸载网络重定向程序,然后重新加载回系统,则特定网络重定向程序的 UNC 提供程序标识符的值保持不变。

若要从网络重定向程序的设备名称获取网络重定向程序的 UNC 提供程序标识符,文件系统筛选器驱动程序可以调用 FsRtlMupGetProviderIdFromName 例程。

要求

要求 价值
最低支持的客户端 FsRtlMupGetProviderInfoFromFileObject 函数是 Windows Vista
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

FsRtlMupGetProviderIdFromName