RDBSS では、接続エンジンは、TDI 仕様を可能な限り密接にマップしてエミュレートするように設計されています。 これにより、ネットワーク ミニ リダイレクターで使用するために、基になる TDI 実装を完全に利用する効率的なメカニズムが提供されます。
RDBSS 接続エンジンは TDI を抽象化しますが、ネットワーク リダイレクターは、これらの RDBSS 接続エンジン ルーチンを使用する代わりに TDI と直接通信することもできます。 TDI のラッパーを提供する既存の RDBSS 接続エンジン ルーチンは、Microsoft ネットワークをサポートするように開発されているため、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 には、ネットワーク ミニ リダイレクター ドライバーで使用できる次の接続エンジン ルーチンが用意されています。
| Routine | 説明 |
|---|---|
このルーチンは、接続エンジンで使用する IRP を割り当て、IRP に MDL を関連付けます。 このルーチンは、Windows XP でのみ使用できます。 |
|
このルーチンは、トランスポート アドレスをトランスポート バインディングに関連付けます。 |
|
このルーチンは、ローカル RDBSS 接続アドレスと特定のリモート アドレスの間の接続を確立します。 このルーチンは、システム ワーカー スレッドのコンテキストで呼び出す必要があります。 |
|
このルーチンは、ローカル RDBSS 接続アドレスと特定のリモート アドレスの間の接続を確立し、複数のトランスポートをサポートします。 一連のローカル アドレスが指定され、このルーチンはローカル アドレスに関連付けられているすべてのトランスポートを介してターゲット サーバーへの接続を試みます。 接続オプションに応じて、1 つの接続が勝者として選択されます。 このルーチンは、システム ワーカー スレッドのコンテキストで呼び出す必要があります。 |
|
このルーチンは、RDBSS トランスポートを指定されたトランスポート名にバインドします。 |
|
このルーチンは、指定された接続に仮想回線を追加します。 |
|
このルーチンは、以前に発行された接続要求を取り消します。 このルーチンは現在実装されていないことに注意してください。 |
|
このルーチンは、接続エンジンによって使用される IRP を解放します。 このルーチンは、Windows XP でのみ使用できます。 |
|
このルーチンは、仮想回線で切断を開始します。 このルーチンは、システム ワーカー スレッドのコンテキストで呼び出す必要があります。 |
|
このルーチンは、特定のトランスポートのADAPTER_STATUS構造体を返します。 |
|
このルーチンは、接続に関連する情報を照会します。 |
|
このルーチンは、特定のトランスポートの接続数とサービスの品質に関するトランスポート情報を返します。 |
|
このルーチンは、仮想回線上の指定された接続に沿って TSDU を送信します。 |
|
このルーチンは、指定されたトランスポート アドレスに TSDU を送信します。 |
|
このルーチンは、トランスポート バインディングからトランスポート アドレスを削除します。 |
|
このルーチンは、特定の接続を破棄します。 |
|
このルーチンは、指定されたトランスポートからバインドを解除します。 |
|
このルーチンは、仮想接続を破棄します。 |
注 TDI は、Windows Vista 以降の Microsoft Windows バージョンではサポートされません。 代わりに、Windows フィルターリング プラットフォームまたは Winsock カーネルを使用してください。