Функция 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
Объект file, на который указывает параметр pFileObject , не соответствует полностью открытому объекту файловой системы удаленной файловой системы.
STATUS_BUFFER_TOO_SMALL
Размер буфера, на который указывает параметр pBuffer , слишком мал для возврата каких-либо данных. В этом случае переменная, на которую указывает параметр pBufferSize , получает требуемый размер буфера в байтах.
STATUS_BUFFER_OVERFLOW
Размер буфера, на который указывает параметр pBuffer , слишком мал для возврата всех данных. Были возвращены только те данные, которые помещаются в буфер. В этом случае переменная, на которую указывает параметр pBufferSize , получает требуемый размер буфера в байтах.

Комментарии

Драйвер фильтра файловой системы может вызвать подпрограмму FsRtlMupGetProviderInfoFromFileObject , чтобы получить сведения о перенаправителе сети из объекта файла для файла, расположенного в удаленной файловой системе. Объем сведений, возвращаемых подпрограммой FsRtlMupGetProviderInfoFromFileObject , зависит от значения параметра Level . Если для параметра Level задано значение 1, подпрограмма FsRtlMupGetProviderInfoFromFileObject возвращает FSRTL_MUP_PROVIDER_INFO_LEVEL_1 структуру в буфере, на которую указывает параметр pBuffer . Структура 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 возвращает FSRTL_MUP_PROVIDER_INFO_LEVEL_2 структуру в буфере, на которую указывает параметр pBuffer . Структура 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)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

FsRtlMupGetProviderIdFromName