接続エンジン管理
RDBSS での接続エンジンは、TDI 仕様を可能な限り密接にマップしてエミュレートするように設計されています。 これにより、基になる TDI の実装をネットワーク ミニ リダイレクターで完全に利用するための効率的なメカニズムが提供されます。
TDI は RDBSS 接続エンジンによって抽象化されますが、ネットワーク リダイレクターは、これらの RDBSS 接続エンジン ルーチンを使う代わりに、自由に TDI と直接通信することもできます。 TDI に対するラッパーを提供する、既存の RDBSS 接続エンジン ルーチンは、Microsoft Networks をサポートするように開発されているため、極めて Windows 中心であり、他のネットワーク ディレクターには適さない可能性があります。 また、RDBSS での接続エンジン ルーチンは、Windows Server 2003 より後にリリースされた Windows オペレーティング システムからは削除されています。 今後は、ネットワーク リダイレクターごとに、(TDI または他のトランスポートに対して) 必要な接続エンジン ルーチンを開発する必要があります。 たとえば、WebDAV リダイレクターは、TDI ではなく HTTP パケット (標準 TCP/IP) を送信するよう、ユーザー モード リフレクター プロセスに通知できます。
RDBSS 接続エンジン ルーチンは、次のエンティティを処理します。
トランスポート
トランスポート アドレス
トランスポート接続
接続上の仮想回線
トランスポートとは、任意のシステム上のさまざまなトランスポート サービス プロバイダーに対するバインドです。 トランスポート アドレスは、ローカル接続エンドポイントです。 接続は、エンドポイント間のトランスポート接続です。 各接続には、多数の仮想回線がカプセル化されます (通常は 1 つ)。
次の重要なデータ構造体が、RDBSS に関連付けられているさまざまな接続エンジン ルーチンによって作成および操作されます。
RXCE_TRANSPORT -- トランスポートに関するすべてのパラメーターをカプセル化します
RXCE_ADDRESS -- トランスポート アドレスに関するすべてのパラメーターをカプセル化します
RXCE_CONNECTION -- トランスポート接続に関するすべてのパラメーターをカプセル化します
RXCE_VC -- トランスポート接続上の仮想回線に関するすべてのパラメーターをカプセル化します
ネットワーク ミニ リダイレクター ドライバーは、これらのデータ構造体を使用し、各種類に提供されているルーチンを呼び出して、接続エンジンの部分を構築して破棄するすことができます。 これらのルーチンでは、これらの構造体に関連付けられているメモリの割り当てや解放は行われません。 これにより、ミニ リダイレクター ドライバーはこれらの接続エンジン データ構造体のインスタンスを柔軟に管理できます。
上記の 4 つの接続エンジンの種類は、RDBSS で検証に広く使われている特別な RXCE_SIGNATURE 署名を使って、各データ構造の先頭でタグ付けされています。
RDBSS には、ネットワーク ミニ リダイレクター ドライバーで使用できる次の接続エンジン ルーチンが用意されています。
ルーチンによって返される値 | 説明 |
---|---|
このルーチンは、接続エンジンで使用する IRP を割り当て、IRP に MDL を関連付けます。 このルーチンは Windows XP でのみ使用できます。 |
|
このルーチンは、トランスポート アドレスをトランスポート バインディングに関連付けます。 |
|
このルーチンは、ローカル RDBSS 接続アドレスと特定のリモート アドレスの間の接続を確立します。 このルーチンは、システム ワーカー スレッドのコンテキストで呼び出す必要があります。 |
|
このルーチンは、ローカル RDBSS 接続アドレスと特定のリモート アドレスの間の接続を確立し、複数のトランスポートをサポートします。 このルーチンは、指定された一連のローカル アドレスに関連付けられているすべてのトランスポートを通して、ターゲット サーバーへの接続を試みます。 接続オプションに応じて、1 つの接続が選択されます。 このルーチンは、システム ワーカー スレッドのコンテキストで呼び出す必要があります。 |
|
このルーチンは、RDBSS トランスポートを指定されたトランスポート名にバインドします。 |
|
このルーチンは、指定された接続に仮想回線を追加します。 |
|
このルーチンは、以前に発行された接続要求を取り消します。 このルーチンは現在実装されていないことに注意してください。 |
|
このルーチンは、接続エンジンによって使用される IRP を解放します。 このルーチンは Windows XP でのみ使用できます。 |
|
このルーチンは、仮想回線で切断を開始します。 このルーチンは、システム ワーカー スレッドのコンテキストで呼び出す必要があります。 |
|
このルーチンは、特定のトランスポートの ADAPTER_STATUS 構造体を返します。 |
|
このルーチンは、接続に関連する情報を照会します。 |
|
このルーチンは、特定のトランスポートの接続数とサービス品質に関するトランスポート情報を返します。 |
|
このルーチンは、指定された接続の仮想回線で TSDU を送信します。 |
|
このルーチンは、指定されたトランスポート アドレスに TSDU を送信します。 |
|
このルーチンは、トランスポート バインディングからトランスポート アドレスを削除します。 |
|
このルーチンは、特定の接続を破棄します。 |
|
このルーチンは、指定されたトランスポートからバインドを解除します。 |
|
このルーチンは、仮想接続を破棄します。 |
注: TDI は、Windows Vista より後のバージョンの Microsoft Windows ではサポートされません。 代わりに、Windows フィルタリング プラットフォームか Winsock カーネルを使用してください。