Condividi tramite


PFN_WSK_INSPECT_COMPLETE funzione di callback (wsk.h)

La funzione WskInspectComplete completa l'ispezione di una richiesta di connessione in ingresso con penna ricevuta in un socket di ascolto con la modalità di accettazione condizionale abilitata.

Sintassi

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
)
{...}

Parametri

[in] ListenSocket

Puntatore a una struttura WSK_SOCKET . Questo puntatore specifica il socket di ascolto in cui l'applicazione WSK ha ricevuto la richiesta di connessione in ingresso che sta controllando.

[in] InspectID

Puntatore a una struttura WSK_INSPECT_ID . Il contenuto della struttura identifica la richiesta di connessione specifica controllata dall'applicazione WSK.

[in] Action

Valore che specifica se l'applicazione WSK accetta o rifiuta la richiesta di connessione in ingresso. Un'applicazione WSK deve specificare WskInspectAccept o WskInspectReject per questo parametro.

[in, out] Irp

Puntatore a un IRP allocato dal chiamante usato dal sottosistema WSK per completare l'operazione di ripresa in modo asincrono. Per altre informazioni sull'uso dei runtime di integrazione con le funzioni WSK, vedere Using IRPs with Winsock Kernel Functions .For more information about using IRPs with WSK functions, see Using IRPs with Winsock Kernel Functions.

Valore restituito

WskInspectComplete restituisce uno dei codici NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
L'operazione di ispezione pended in precedenza è stata ripresa correttamente. L'IRP verrà completato con lo stato di esito positivo.
STATUS_PENDING
Il sottosistema WSK non è riuscito a riprendere immediatamente l'operazione di ispezione. Il sottosistema WSK completerà l'IRP dopo aver ripreso l'operazione di ispezione della richiesta di connessione in ingresso. Lo stato della ripresa dell'operazione di ispezione verrà restituito nel campo IoStatus.Status dell'IRP.
STATUS_FILE_FORCED_CLOSED
Il socket non è più funzionale. L'IRP verrà completato con lo stato di errore. L'applicazione WSK deve chiamare la funzione WskCloseSocket per chiudere il socket appena possibile.
Altri codici di stato
Si è verificato un errore. L'IRP verrà completato con lo stato di errore.

Commenti

Un'applicazione WSK chiama la funzione WskInspectComplete per completare l'ispezione di una richiesta di connessione in ingresso per cui la funzione di callback dell'evento WskInspectEvent dell'applicazione ha restituito in precedenza WskInspectPend.

Un'applicazione WSK può chiamare la funzione WskInspectComplete solo su un socket di ascolto con la modalità di accettazione condizionale abilitata. Un'applicazione WSK può abilitare la modalità di accettazione condizionale in un socket di ascolto abilitando l'opzione socket SO_CONDITIONAL_ACCEPT . Per altre informazioni sull'accettazione condizionale delle connessioni in ingresso, vedere Ascolto e accettazione di Connections in ingresso.

Il sottosistema WSK ha passato un puntatore a una struttura WSK_INSPECT_ID all'applicazione WSK quando ha chiamato la funzione di callback dell'evento WskInspectEvent dell'applicazione. L'applicazione WSK ha copiato il contenuto di tale struttura nella propria struttura WSK_INSPECT_ID prima di restituire WskInspectPend dalla funzione di callback dell'evento WskInspectEvent . L'applicazione WSK passa un puntatore alla propria struttura WSK_INSPECT_ID nel parametro InspectID quando chiama la funzione WskInspectComplete .

Se un'applicazione WSK specifica WskInspectAccept nel parametro Action , il sottosistema WSK continuerà a stabilire la connessione socket. Il sottosistema WSK restituirà il socket all'applicazione WSK completando una chiamata dall'applicazione WSK alla funzione WskAccept o chiamando la funzione di callback dell'evento WskAcceptEvent dell'applicazione WskAcceptEvent , se abilitata. Se la richiesta di connessione in ingresso viene eliminata prima che la connessione socket venga stabilita completamente, il sottosistema WSK chiamerà la funzione di callback dell'evento WskAbortEvent dell'applicazione Wsk.

Se un'applicazione WSK specifica WskInspectReject nel parametro Action , la richiesta di connessione in ingresso viene eliminata e la connessione socket non viene stabilita.

Se la richiesta di connessione in ingresso viene eliminata dal sistema remoto prima che l'applicazione WSK chiami la funzione WskInspectComplete , il sottosistema WSK chiama la funzione di callback dell'evento WskAbortEvent dell'applicazione WSK.

Se l'applicazione WSK chiama la funzione WskInspectComplete su una richiesta di connessione in ingresso interrotta, la connessione non verrà stabilita anche se l'applicazione WSK ha specificato WskInspectAccept nel parametro Action .

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Universale
Intestazione wsk.h (include Wsk.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent