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 です |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |