Freigeben über


PFN_WSK_CONNECT_EX Rückruffunktion (wsk.h)

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

WskConnectEx- ähnelt WskConnect-, mit der Ausnahme, dass sie auch optional einen Puffer von Daten während oder nach der Verbindungssynchronisierung senden kann.

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 zu sendenden Daten während oder nach der Verbindungssynchronisierung enthält. Die maximale 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 ein vom Aufrufer zugewiesenes IRP, das vom WSK-Subsystem verwendet wird, um den Verbindungsvorgang asynchron abzuschließen. Weitere Informationen zur Verwendung von IRPs mit WSK-Funktionen finden Sie unter Verwenden von IRPs mit Winsock Kernel Functions.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Socket wurde erfolgreich mit der Remotetransportadresse verbunden. Das IRP wird mit dem Erfolgsstatus 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 Remote-Transportadresse verbunden hat. Der Status des Verbindungsvorgangs wird im feld IoStatus.Status IRP zurückgegeben.
STATUS_FILE_FORCED_CLOSED
Der Socket ist nicht mehr funktionsfähig. Das IRP wird mit dem Fehlerstatus 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 parameter Flags zu übergeben (da derzeit keine gültigen Flags für WskConnectExdefiniert sind, ist dies nicht zulässig).
STATUS_BUFFER_OVERFLOW
Die WSK-Anwendung hat versucht, einen Puffer zu übergeben, der größer als 65.535 Byte ist, an den parameter Buffer.
Andere Statuscodes
Fehler. Das IRP wird mit dem Fehlerstatus abgeschlossen.

Bemerkungen

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 eine Socketoption festlegen oder einen E/A-Steuerungsvorgang vor dem Binden oder Verbinden des Sockets ausstellen.

Eine WSK-Anwendung kann die WskConnectEx--Funktion nur in einem verbindungsorientierten oder Streamsocket aufrufen, den die Anwendung zuvor an eine lokale Transportadresse gebunden hat, indem sie die WskBind--Funktion aufruft.

Wenn WskConnectEx- erfolgreich für einen Datenstromsocket aufgerufen wird, wird der Socket an einen verbindungsorientierten Fluss gebunden und ruft möglicherweise keine Überwachungssocketfunktionen mehr auf.

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

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 1703
Zielplattform- Universal
Header- wsk.h (include Wsk.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

SOCKADDR-

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind-

WskCloseSocket

WskControlSocket-

WskDisconnect-

WskDisconnectEvent-

WskSocket-

WskSocketConnect-