Share via


RxCeBuildConnectionOverMultipleTransports 関数 (rxce.h)

RxCeBuildConnectionOverMultipleTransports は、ローカル RDBSS 接続アドレスと特定のリモート アドレスとの間の接続を確立し、複数のトランスポートをサポートします。 一連のローカル アドレスが指定され、このルーチンは、ローカル アドレスに関連付けられているすべてのトランスポートを介してターゲット サーバーへの接続を試みます。 接続オプションに応じて、1 つの接続が勝者として選択されます。

構文

NTSTATUS RxCeBuildConnectionOverMultipleTransports(
  [in, out] IN OUT PRDBSS_DEVICE_OBJECT                pMiniRedirectorDeviceObject,
            IN RXCE_CONNECTION_CREATE_OPTIONS          CreateOption,
  [in]      IN ULONG                                   NumberOfAddresses,
  [in]      IN PRXCE_ADDRESS                           *pLocalAddressPointers,
  [in]      IN PUNICODE_STRING                         pServerName,
  [in]      IN PRXCE_CONNECTION_INFORMATION            pConnectionInformation,
  [in]      IN PRXCE_CONNECTION_EVENT_HANDLER          pHandler,
  [in]      IN PVOID                                   pEventContext,
  [in]      IN PRXCE_CONNECTION_COMPLETION_ROUTINE     pCompletionRoutine,
  [in, out] IN OUT PRXCE_CONNECTION_COMPLETION_CONTEXT pCompletionContext
);

パラメーター

[in, out] pMiniRedirectorDeviceObject

ミニ リダイレクター デバイス オブジェクトへのポインター。

CreateOption

接続を確立するために選択されるトランスポートを決定するオプションを作成します。 これらのオプションには、RXCE_CONNECTION_CREATE_OPTIONSの次のいずれかの列挙体を指定できます。

RxCeSelectFirstSuccessfulTransport

応答する最初の成功したトランスポートを選択します。

RxCeSelectBestSuccessfulTransport

応答する最適な成功したトランスポートを選択します。

RxCeSelectAllSuccessfulTransports

応答する成功したトランスポートをすべて選択します。

[in] NumberOfAddresses

ローカル アドレス (トランスポート) の数。

[in] pLocalAddressPointers

ローカル アドレス ハンドルの配列へのポインター。

[in] pServerName

サーバーの名前へのポインター (接続列挙の場合)。

[in] pConnectionInformation

リモート アドレスを指定する接続情報へのポインター。

[in] pHandler

処理用のイベント ハンドラーへのポインターは、指示を受け取ります。

[in] pEventContext

イベント ハンドラーに返され、表示に使用されるコンテキスト パラメーターへのポインター。

[in] pCompletionRoutine

STATUS_PENDINGが最初に返された場合に、このルーチンが完了したときの接続完了ルーチンへのポインター。

[in, out] pCompletionContext

入力時に、このパラメーターには初期化されていないRXCE_CONNECTION_COMPLETION_CONTEXT構造体へのポインターが含まれます。 この呼び出しが成功すると、出力時に仮想回線が接続に関連付けられて、仮想回線と接続が正しく初期化されます。

戻り値

RxCeBuildConnectionOverMultipleTransports は、成功した場合はSTATUS_SUCCESSを返し、失敗した場合は次のいずれかのエラー コードを返します。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
このルーチンで必要な非ページ プール メモリの割り当てが失敗しました。
STATUS_INVALID_HANDLE
複数のトランスポートのいずれかを使用して、接続と仮想回線を初期化できませんでした。 このエラーは、すべての RDBSS トランスポートまたは pLocalAddressPointers 配列で指されている RBDSS 接続エンジン アドレスが無効な場合に発生する可能性があります。
STATUS_INVALID_PARAMETER
このルーチンに渡されたパラメーターの 1 つが無効でした。
STATUS_PENDING
ルーチンに入力パラメーターとして渡される異なるトランスポートへの非同期呼び出しの 1 つは、まだ未処理であり、完了していません。

注釈

RxCeBuildConnectionOverMultipleTransports は、パラメーターとして渡されるすべての異なるトランスポートへの一連の非同期呼び出しを開始して、接続を試行して構築します。 これらの非同期要求がすべて完了するまで、ネットワーク ミニ リダイレクターをアンロードすることはできません。

RxCeBuildConnectionOverMultipleTransports は、システム ワーカー スレッドのコンテキストで呼び出す必要があります。

RxCeBuildConnectionOverMultipleTransports が成功すると、仮想回線が適切に初期化され、接続が確立されます。

RXCE_CONNECTION_INFORMATION は、 TDI_CONNECTION_INFORMATION 構造体の typedef です。

要件

要件
対象プラットフォーム デスクトップ
Header rxce.h (Rxce.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION