Freigeben über


PFN_WSK_CONNECT_EX Rückruffunktion (wsk.h)

Die WskConnectEx-Funktion verbindet einen verbindungsorientierten oder Streamsocket mit einer Remotetransportadresse.

WskConnectEx ähnelt WskConnect , kann aber auch optional einen Datenpuffer während oder nach der Verbindungssynchronisierung senden.

Syntax

PFN_WSK_CONNECT_EX PfnWskConnectEx;

NTSTATUS PfnWskConnectEx(
  [in]           PWSK_SOCKET Socket,
  [in]           PSOCKADDR RemoteAddress,
  [in, optional] PWSK_BUF Buffer,
                 ULONG Flags,
  [in, out]      PIRP Irp
)
{...}

Parameter

[in] Socket

Ein Zeiger auf eine WSK_SOCKET-Struktur , die das Socketobjekt für den Socket angibt, der mit einer Remotetransportadresse verbunden ist.

[in] RemoteAddress

Ein Zeiger auf eine Struktur, die die Remotetransportadresse angibt, mit der der Socket verbunden werden soll. Dieser Zeiger muss ein Zeiger auf den spezifischen SOCKADDR-Strukturtyp sein, der der Adressfamilie entspricht, die die WSK-Anwendung beim Erstellen des Sockets angegeben hat.

[in, optional] Buffer

Ein Zeiger auf eine WSK_BUF-Struktur , die die Daten enthält, die während oder nach der Verbindungssynchronisierung gesendet werden sollen. Die maximal zulässige Größe in Bytes beträgt 65.535.

Flags

Dieser Parameter ist für die Systemverwendung reserviert. Eine WSK-Anwendung muss diesen Parameter auf Null festlegen.

[in, out] Irp

Ein Zeiger auf eine vom Aufrufer zugewiesene IRP, die das WSK-Subsystem verwendet, um den Verbindungsvorgang asynchron abzuschließen. Weitere Informationen zur Verwendung von IRPs mit WSK-Funktionen finden Sie unter Verwenden von IRPs mit Winsock-Kernelfunktionen.

Rückgabewert

WskConnectEx gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Socket wurde erfolgreich mit der Remotetransportadresse verbunden. Die IRP wird erfolgreich status abgeschlossen.
STATUS_PENDING
Das WSK-Subsystem konnte den Socket nicht sofort verbinden. Das WSK-Subsystem schließt das IRP ab, nachdem es den Socket mit der Remotetransportadresse verbunden hat. Die status des Verbindungsvorgangs wird im Feld IoStatus.Status des IRP zurückgegeben.
STATUS_FILE_FORCED_CLOSED
Der Socket ist nicht mehr funktionsfähig. Die IRP wird mit einem Fehler status abgeschlossen. Die WSK-Anwendung muss die WskCloseSocket-Funktion aufrufen, um den Socket so schnell wie möglich zu schließen.
STATUS_INVALID_PARAMETER
Die WSK-Anwendung hat versucht, ein Flag an den Flags-Parameter zu übergeben (da derzeit keine gültigen Flags für WskConnectEx definiert sind, ist dies nicht zulässig).
STATUS_BUFFER_OVERFLOW
Die WSK-Anwendung hat versucht, einen Puffer mit mehr als 65.535 Bytes an den Buffer-Parameter zu übergeben.
Andere status Codes
Ein Fehler ist aufgetreten. Die IRP wird mit einem Fehler status abgeschlossen.

Hinweise

Eine WSK-Anwendung kann einen verbindungsorientierten Socket in einem einzelnen Funktionsaufruf erstellen, binden und verbinden, indem die WskSocketConnect-Funktion aufgerufen wird, anstatt die WskSocket-Funktion , die WskBind-Funktion und dann die WskConnectEx-Funktion aufzurufen. Es wird empfohlen, die WskSocketConnect-Funktion aufzurufen, es sei denn, die WSK-Anwendung muss vor dem Binden oder Verbinden des Sockets eine Socketoption festlegen oder einen E/A-Steuerungsvorgang ausstellen.

Eine WSK-Anwendung kann die WskConnectEx-Funktion nur in einem verbindungsorientierten Oder Streamsocket aufrufen, den die Anwendung zuvor durch Aufrufen der WskBind-Funktion an eine lokale Transportadresse gebunden hat.

Bei Streamsockets wird der Socket nach dem erfolgreichen Aufruf von WskConnectEx in einem Datenstromsocket an einen verbindungsorientierten Flow gebunden und ruft möglicherweise keine listenden Socketfunktionen mehr auf.

Wenn der Buffer-Parameter verwendet wird, kann der Aufrufer die MDL in seiner WSK_BUF-Struktur freigeben, sobald die Verbindungsanforderung abgeschlossen ist.

Wenn die WSK-Anwendung vor dem Aufrufen von WskConnectEx mit einem bereitgestellten Sendepuffer die Option TCP_FASTOPEN über die WskControlSocket-Funktion auf einem WSK-Socket festlegt, sendet das System optional einige oder alle Daten in einem SYN-Paket. Weitere Informationen finden Sie unter TCP Fastopen-Option in IPPROTO_TCP Socketoptionen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1703
Zielplattform Universell
Header wsk.h (einschließen von Wsk.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind

WskCloseSocket

WskControlSocket

WskDisconnect

WskDisconnectEvent

WskSocket

WskSocketConnect