Freigeben über


PFN_WSK_INSPECT_COMPLETE Rückruffunktion (wsk.h)

Die WskInspectComplete-Funktion schließt die Überprüfung einer zuvor geschriebenen eingehenden Verbindungsanforderung ab, die auf einem Lauschocket empfangen wurde, der den Modus für die bedingte Annahme aktiviert hat.

Syntax

PFN_WSK_INSPECT_COMPLETE PfnWskInspectComplete;

NTSTATUS PfnWskInspectComplete(
  [in]      PWSK_SOCKET ListenSocket,
  [in]      PWSK_INSPECT_ID InspectID,
  [in]      WSK_INSPECT_ACTION Action,
  [in, out] PIRP Irp
)
{...}

Parameter

[in] ListenSocket

Ein Zeiger auf eine WSK_SOCKET-Struktur . Dieser Zeiger gibt den Überwachungssocket an, für den die WSK-Anwendung die eingehende Verbindungsanforderung empfangen hat, die sie überprüft.

[in] InspectID

Ein Zeiger auf eine WSK_INSPECT_ID-Struktur . Der Inhalt der -Struktur identifiziert die spezifische Verbindungsanforderung, die von der WSK-Anwendung überprüft wird.

[in] Action

Ein -Wert, der angibt, ob die WSK-Anwendung die eingehende Verbindungsanforderung akzeptiert oder ablehnt. Eine WSK-Anwendung muss entweder WskInspectAccept oder WskInspectReject für diesen Parameter angeben.

[in, out] Irp

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

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS
Der zuvor erstellte Überprüfungsvorgang wurde erfolgreich fortgesetzt. Die IRP wird erfolgreich status abgeschlossen.
STATUS_PENDING
Das WSK-Subsystem konnte den Überprüfungsvorgang nicht sofort fortsetzen. Das WSK-Subsystem schließt das IRP ab, nachdem der Überprüfungsvorgang der eingehenden Verbindungsanforderung fortgesetzt wurde. Die status zum Fortsetzen des Überprüfungsvorgangs 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.
Andere status Codes
Ein Fehler ist aufgetreten. Die IRP wird mit einem Fehler status abgeschlossen.

Hinweise

Eine WSK-Anwendung ruft die WskInspectComplete-Funktion auf, um die Überprüfung einer eingehenden Verbindungsanforderung abzuschließen, für die die WskInspectEvent-Ereignisrückruffunktion der Anwendung zuvor WskInspectPend zurückgegeben hat.

Eine WSK-Anwendung kann die WskInspectComplete-Funktion nur für einen lauschenden Socket aufrufen, für den der Modus für die bedingte Annahme aktiviert ist. Eine WSK-Anwendung kann den Modus für die bedingte Annahme auf einem Lauschocket aktivieren, indem die Option SO_CONDITIONAL_ACCEPT Socket aktiviert wird. Weitere Informationen zum bedingten Akzeptieren eingehender Verbindungen finden Sie unter Lauschen auf und Akzeptieren eingehender Connections.

Das WSK-Subsystem hat beim Aufrufen der WskInspectEvent-Ereignisrückruffunktion der Anwendung einen Zeiger auf eine WSK_INSPECT_ID-Struktur an die WSK-Anwendung übergeben. Die WSK-Anwendung hat den Inhalt dieser Struktur in eine eigene WSK_INSPECT_ID-Struktur kopiert, bevor sie WskInspectPend aus der WskInspectEvent-Ereignisrückruffunktion zurückgibt. Die WSK-Anwendung übergibt einen Zeiger auf ihre eigene WSK_INSPECT_ID-Struktur im InspectID-Parameter , wenn sie die WskInspectComplete-Funktion aufruft .

Wenn eine WSK-Anwendung WskInspectAccept im Action-Parameter angibt, stellt das WSK-Subsystem weiterhin die Socketverbindung her. Das WSK-Subsystem gibt den Socket an die WSK-Anwendung zurück, indem es entweder einen Aufruf der WskAccept-Funktion durch die WSK-Anwendung abschließt oder die WskAcceptEvent-Ereignisrückruffunktion der WSK-Anwendung aufruft, wenn sie aktiviert ist. Wenn die eingehende Verbindungsanforderung gelöscht wird, bevor die Socketverbindung vollständig hergestellt wurde, ruft das WSK-Subsystem die WskAbortEvent-Ereignisrückruffunktion der WSK-Anwendung auf.

Wenn eine WSK-Anwendung WskInspectReject im Action-Parameter angibt, wird die eingehende Verbindungsanforderung gelöscht, und die Socketverbindung wird nicht hergestellt.

Wenn die eingehende Verbindungsanforderung vom Remotesystem gelöscht wird, bevor die WSK-Anwendung die WskInspectComplete-Funktion aufruft , ruft das WSK-Subsystem die WskAbortEvent-Ereignisrückruffunktion der WSK-Anwendung auf.

Wenn die WSK-Anwendung die WskInspectComplete-Funktion für eine eingehende Verbindungsanforderung aufruft, die abgebrochen wurde, wird die Verbindung auch dann nicht hergestellt, wenn die WSK-Anwendung WskInspectAccept im Action-Parameter angegeben hat.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header wsk.h (einschließen von Wsk.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent