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
pBuffer パラメーターによって指されるバッファーのサイズ (バイト単位) を含む ULONG 型の変数へのポインター。 ルーチンが成功した場合、この変数はバッファーで返されるデータのサイズ (バイト単位) を受け取ります。
戻り値
FsRtlMupGetProviderInfoFromFileObject ルーチンは、次のいずれかの NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
ネットワーク リダイレクターに関する情報は、 pBuffer パラメーターによって指されるバッファーで正常に返されました。 |
|
パラメーターの 1 つが NULL であるか、無効な値が含まれていました。 |
|
pFileObject パラメーターが指すファイル オブジェクトは、完全に開かれたリモート ファイル システム ファイル オブジェクトに対応していません。 |
|
pBuffer パラメーターが指すバッファーのサイズが小さすぎてデータを返しません。 この状況では、 pBufferSize パラメーターによって指される変数は、バッファーの必要なサイズ (バイト単位) を受け取ります。 |
|
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 です |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |