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 |
---|---|
|
Der Socket wurde erfolgreich mit der Remotetransportadresse verbunden. Die IRP wird erfolgreich status abgeschlossen. |
|
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. |
|
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. |
|
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). |
|
Die WSK-Anwendung hat versucht, einen Puffer mit mehr als 65.535 Bytes an den Buffer-Parameter zu übergeben. |
|
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 |