次の方法で共有


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 です
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

FsRtlMupGetProviderIdFromName