Freigeben über


RxCeBuildConnectionOverMultipleTransports-Funktion (rxce.h)

RxCeBuildConnectionOverMultipleTransports stellt eine Verbindung zwischen einer lokalen RDBSS-Verbindungsadresse und einer angegebenen Remoteadresse her und unterstützt mehrere Transporte. Es werden eine Reihe lokaler Adressen angegeben, und diese Routine versucht, über alle Transporte, die den lokalen Adressen zugeordnet sind, eine Verbindung mit dem Zielserver herzustellen. Je nach Verbindungsoptionen wird eine Verbindung als Gewinner ausgewählt.

Syntax

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
);

Parameter

[in, out] pMiniRedirectorDeviceObject

Ein Zeiger auf das Mini-Redirector-Geräteobjekt.

CreateOption

Erstellen Sie Optionen, die bestimmen, welcher Transport zum Herstellen einer Verbindung ausgewählt wird. Diese Optionen können eine der folgenden Enumerationen für RXCE_CONNECTION_CREATE_OPTIONS sein:

RxCeSelectFirstSuccessfulTransport

Wählen Sie den ersten erfolgreichen Transport aus, der antwortet.

RxCeSelectBestSuccessfulTransport

Wählen Sie den am besten erfolgreichen Transport aus, der antwortet.

RxCeSelectAllSuccessfulTransports

Wählen Sie alle erfolgreichen Transporte aus, die reagieren.

[in] NumberOfAddresses

Die Anzahl der lokalen Adressen (Transporte).

[in] pLocalAddressPointers

Ein Zeiger auf ein Array der lokalen Adresshandles.

[in] pServerName

Ein Zeiger auf den Namen des Servers (für die Verbindungsenumeration).

[in] pConnectionInformation

Ein Zeiger auf die Verbindungsinformationen, der die Remoteadresse angibt.

[in] pHandler

Ein Zeiger auf den Ereignishandler für die Verarbeitung von Empfangsanzeigen.

[in] pEventContext

Ein Zeiger auf den Kontextparameter, der zurück an den Ereignishandler übergeben und für Hinweise verwendet werden soll.

[in] pCompletionRoutine

Ein Zeiger auf eine Verbindungsabschlussroutine, wenn diese Routine abgeschlossen wurde, wenn zunächst STATUS_PENDING zurückgegeben wird.

[in, out] pCompletionContext

Bei der Eingabe enthält dieser Parameter einen Zeiger auf eine nicht initialisierte RXCE_CONNECTION_COMPLETION_CONTEXT-Struktur. Bei der Ausgabe, wenn dieser Aufruf erfolgreich ist, wird die virtuelle Verbindung der Verbindung zugeordnet, und die virtuelle Verbindung und die Verbindung werden ordnungsgemäß initialisiert.

Rückgabewert

RxCeBuildConnectionOverMultipleTransports gibt bei Erfolg STATUS_SUCCESS oder einen der folgenden Fehlercodes bei Fehler zurück:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Zuordnung des nicht auslagerten Poolspeichers, der für diese Routine benötigt wird.
STATUS_INVALID_HANDLE
Es war nicht möglich, eine Verbindung und eine virtuelle Verbindung mit einem der mehreren Transporte zu initialisieren. Dieser Fehler kann auftreten, wenn alle RDBSS-Transporte oder die Adressen der RBDSS-Verbindungs-Engine, auf die im pLocalAddressPointers-Array verwiesen wird, ungültig sind.
STATUS_INVALID_PARAMETER
Einer der an diese Routine übergebenen Parameter war ungültig.
STATUS_PENDING
Einer der asynchronen Aufrufe der verschiedenen Transporte, die als Eingabeparameter an die Routine übergeben werden, steht noch aus und wurde nicht abgeschlossen.

Hinweise

RxCeBuildConnectionOverMultipleTransports initiiert eine Reihe von asynchronen Aufrufen aller verschiedenen Transporte, die als Parameter übergeben werden, um eine Verbindung herzustellen. Der Netzwerkminiumleitungsor kann erst entladen werden, wenn alle diese asynchronen Anforderungen abgeschlossen sind.

RxCeBuildConnectionOverMultipleTransports muss im Kontext eines Systemarbeitsthreads aufgerufen werden.

Wenn RxCeBuildConnectionOverMultipleTransports erfolgreich ist, wird die virtuelle Verbindung ordnungsgemäß initialisiert, und es werden Verbindungen hergestellt.

RXCE_CONNECTION_INFORMATION ist eine Typdefinition für eine TDI_CONNECTION_INFORMATION-Struktur .

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile rxce.h (include Rxce.h)
IRQL <= APC_LEVEL

Weitere Informationen

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION