次の方法で共有


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 値のいずれかを返します。

リターン コード 形容
STATUS_SUCCESS
ネットワーク リダイレクターに関する情報は、pBuffer パラメーターが指すバッファーで正常に返されました。
STATUS_INVALID_PARAMETER
パラメーターの 1 つが NULL されたか、無効な値が含まれていました。
STATUS_OBJECT_NAME_NOT_FOUND
pFileObject パラメーターが指すファイル オブジェクトは、完全に開かれたリモート ファイル システム ファイル オブジェクトに対応していません。
STATUS_BUFFER_TOO_SMALL
pBuffer パラメーターが指すバッファーのサイズが小さすぎてデータを返しません。 この状況では、pBufferSize パラメーターが指す変数は、バッファーの必要なサイズ (バイト単位) を受け取ります。
STATUS_BUFFER_OVERFLOW
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

関連項目

FsRtlMupGetProviderIdFromName