Функция 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 подпрограмму, чтобы получить сведения о сетевом перенаправлении из объекта файла для файла, расположенного в удаленной файловой системе. Объем информации, возвращаемой
typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {
ULONG32 ProviderId;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1;
Если параметр уровня
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 |