Freigeben über


RxCeBuildConnectionOverMultipleTransports-Funktion (rxce.h)

RxCeBuildConnectionOverMultipleTransports stellt eine Verbindung zwischen einer lokalen RDBSS-Verbindungsadresse und einer bestimmten Remoteadresse her und unterstützt mehrere Transporte. Es wird 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 Geräteobjekt des Miniumleitungsgeräts.

CreateOption

Erstellen Sie Optionen, die bestimmen, welcher Transport für die Einrichtung 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 besten erfolgreichen Transport aus, der antwortet.

RxCeSelectAllSuccessfulTransports

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

[in] NumberOfAddresses

Die Anzahl der lokalen Adressen (Transporte).

[in] pLocalAddressPointers

Ein Zeiger auf ein Array der lokalen Adressziehpunkte.

[in] pServerName

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

[in] pConnectionInformation

Ein Zeiger auf die Verbindungsinformationen, die die Remoteadresse angibt.

[in] pHandler

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

[in] pEventContext

Ein Zeiger auf den Kontextparameter, der an den Ereignishandler übergeben und für Indikationen verwendet wird.

[in] pCompletionRoutine

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

[in, out] pCompletionContext

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

Rückgabewert

RxCeBuildConnectionOverMultipleTransports gibt STATUS_SUCCESS bei Erfolg oder einer der folgenden Fehlercodes für Fehler zurück:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Zuordnung des nicht ausseitigen Poolspeichers, der von dieser Routine benötigt wird.
STATUS_INVALID_HANDLE
Es war nicht möglich, eine Verbindung und einen virtuellen Schaltkreis mit einem der mehrere Transporte zu initialisieren. Dieser Fehler kann auftreten, wenn alle RDBSS-Transporte oder die RBDSS-Verbindungsmoduladressen in der pLocalAddressPointers Array ungültig sind.
STATUS_INVALID_PARAMETER
Einer der Parameter, die an diese Routine übergeben wurden, war ungültig.
STATUS_PENDING
Einer der asynchronen Aufrufe der verschiedenen Transporte, die als Eingabeparameter an die Routine übergeben werden, ist noch ausstehend und wurde nicht abgeschlossen.

Bemerkungen

RxCeBuildConnectionOverMultipleTransports initiiert eine Reihe asynchroner Aufrufe aller verschiedenen Transporte, die als Parameter übergeben werden, um eine Verbindung zu testen und zu erstellen. Der Netzwerkminiumleitungs-Umleitungsmodul 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 Verbindungen hergestellt.

RXCE_CONNECTION_INFORMATION ist ein Typedef für eine TDI_CONNECTION_INFORMATION-Struktur.

Anforderungen

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

Siehe auch

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION