FsRtlRegisterUncProviderEx ルーチンは、ネットワーク リダイレクターを汎用名前付け規則 (UNC) プロバイダーとしてシステムマルチ UNC プロバイダー (MUP) に登録します。
構文
NTSTATUS FsRtlRegisterUncProviderEx(
[out] PHANDLE MupHandle,
[in] PCUNICODE_STRING RedirDevName,
[in] PDEVICE_OBJECT DeviceObject,
[in] FSRTL_UNC_PROVIDER_FLAGS Flags
);
パラメーター
[out] MupHandle
FsRtlDeregisterUncProvider を呼び出してネットワーク リダイレクター
[in] RedirDevName
ネットワーク リダイレクターのデバイス名を含む Unicode 文字列へのポインター。 MUP は、このデバイス名を使用して、ターゲットが \Device\Mup であるオブジェクト マネージャー名前空間にシンボリック リンクを作成します。
[in] DeviceObject
ネットワーク リダイレクターを表す名前のないデバイス オブジェクトへのポインター。
[in] Flags
ネットワーク リダイレクターでサポートされている機能を示すビットマスク。 ネットワーク リダイレクターは、機能がサポートされていることを示すために少し設定します。 Flags パラメーターには、次の 2 つのオプションがあります。
FSRTL_UNC_PROVIDER_FLAGS_MAILSLOTS_SUPPORTED
ネットワーク リダイレクターは mailslots をサポートします。 通常、このオプションは Microsoft SMB リダイレクターで使用するために予約されています。
FSRTL_UNC_PROVIDER_FLAGS_CSC_ENABLED
ネットワーク リダイレクターは、クライアント側キャッシュを使用したオフライン アクセスをサポートします。
戻り値
FsRtlRegisterUncProviderEx
リターン コード | 形容 |
---|---|
|
MUP に送信される IRP のリクエスター モードがカーネル モードからではありません。 |
|
MUP デバイスへのアクセスを試みたときにアクセス違反が発生しました。 |
|
データの位置がずれていました。 |
|
バッファーにメモリを割り当てるために使用できるリソースが不足していました。 |
|
既に登録されている既知のプロバイダーを登録するための要求が行われました。 |
|
|
|
DeviceObject パラメーターでオブジェクトの種類の不一致が発生しました。 |
備考
ネットワーク リダイレクターは、汎用名前付け規則 (UNC) 名を処理するために、複数の UNC プロバイダー (MUP) に登録する必要があります。 MUP は、リモート ファイル システム要求を処理できるネットワーク リダイレクター (UNC プロバイダー) に汎用名前付け規則 (UNC) 名を使用して、すべてのリモート ファイル システム アクセスをチャネリングするカーネル モード コンポーネントです。 MUP は、コマンド ラインから実行できる次の例に示すように、アプリケーションによって UNC パスが使用される場合に関係します。
notepad \\server\public\readme.txt
マップされたドライブ文字 ("NET USE" コマンドなど) を作成する操作中、MUP は関与しません。 この操作は、ネットワーク リダイレクターの複数プロバイダー ルーター (MPR) とユーザー モードの WNet プロバイダー DLL によって処理されます。 ただし、ユーザー モードの WNet プロバイダー DLL は、この操作中にカーネル モード ネットワーク リダイレクター ドライバーと直接通信する場合があります。
Windows Vista リダイレクター モデルに準拠するネットワーク リダイレクターの場合、マップされたネットワーク ドライブが使用されている場合でも MUP が関係します。 マップされたドライブで実行されるファイル操作は、MUP を経由してネットワーク リダイレクターに移動します。 この場合、MUP は関係するネットワーク リダイレクターに操作を渡すだけであることに注意してください。
FsRtlRegisterUncProviderEx
FsRtlRegisterUncProviderEx の呼び出しで RedirDevName パラメーターに指定されたデバイス名は、オブジェクト マネージャー名前空間の \device\Mup へのシンボリック リンクになります。 また、デバイス名のオープン要求 (RedirDevName
FsRtlRegisterUncProviderEx
Windows Vista リダイレクター モデルに準拠するネットワーク リダイレクターが所有するリモート ファイル システム スタック上のファイル オブジェクトは、MUP に解決されます。 そのため、IoGetDeviceAttachmentBaseRef は、ファイル オブジェクトを所有するネットワーク リダイレクターではなく、MUP のデバイス オブジェクトを返します。 ただし、ファイル オブジェクトの内容はネットワーク リダイレクターによって引き続き所有されます。
ProviderOrder レジストリ値は、MUP が個々のネットワーク リダイレクターにプレフィックス解決要求を発行する順序を決定します。 この順序は、再起動せずに動的に変更できます。 このレジストリ値は、次のレジストリ キーの下にあります。
HKLM\CurrentControlSet\Control\NetworkProvider\Order
メールスロットをサポートできるのは、システム上の 1 つのネットワーク プロバイダーのみです。 そのため、Flags パラメーターのFSRTL_UNC_PROVIDER_FLAGS_MAILSLOTS_SUPPORTED オプションは、通常、Microsoft SMB リダイレクターにのみ設定されます。
UNC プロバイダーの登録を解除するには、FsRtlDeregisterUncProvider
ドライバーがローカル ディスク ファイル システムとして登録されている場合 (DeviceType パラメーターを FILE_DEVICE_DISK_FILE_SYSTEM に設定 IoCreateDevice を呼び出すことによって)、ドライバーは FsRtlRegisterUncProviderEx を呼び出して MUP に UNC プロバイダーとして登録することはできません。
詳細については、設計ガイドの以下のセクションを参照してください。
UNC 名前付けと MUP の
Microsoft Windows Vista での MUP の変更の
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
FsRtlCancellableWaitForSingleObject
FsRtlDeregisterUncProvider の
IoCreateDevice の
IoRegisterFileSystem の