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