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 |
---|---|
|
Der zuvor erstellte Überprüfungsvorgang wurde erfolgreich fortgesetzt. Die IRP wird erfolgreich status abgeschlossen. |
|
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. |
|
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. |
|
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 |