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 参数的值。 如果 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 (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

FsRtlMupGetProviderIdFromName