PFN_WSK_INSPECT_COMPLETE fonction de rappel (wsk.h)

La fonction WskInspectComplete termine l’inspection d’une demande de connexion entrante précédemment bloquée qui a été reçue sur un socket d’écoute pour lequel le mode d’acceptation conditionnelle est activé.

Syntaxe

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

Paramètres

[in] ListenSocket

Pointeur vers une structure WSK_SOCKET . Ce pointeur spécifie le socket d’écoute sur lequel l’application WSK a reçu la demande de connexion entrante qu’elle inspecte.

[in] InspectID

Pointeur vers une structure WSK_INSPECT_ID . Le contenu de la structure identifie la demande de connexion spécifique que l’application WSK inspecte.

[in] Action

Valeur qui spécifie si l’application WSK accepte ou rejette la demande de connexion entrante. Une application WSK doit spécifier WskInspectAccept ou WskInspectReject pour ce paramètre.

[in, out] Irp

Pointeur vers un IRP alloué à l’appelant que le sous-système WSK utilise pour terminer l’opération de reprise de manière asynchrone. Pour plus d’informations sur l’utilisation des irps avec des fonctions WSK, consultez Utilisation des irps avec les fonctions du noyau Winsock.

Valeur retournée

WskInspectComplete retourne l’un des codes NTSTATUS suivants :

Code de retour Description
STATUS_SUCCESS
L’opération d’inspection précédemment interrompue a repris avec succès. Le IRP sera terminé avec succès status.
STATUS_PENDING
Le sous-système WSK n’a pas pu reprendre l’opération d’inspection immédiatement. Le sous-système WSK termine l’IRP une fois qu’il a repris l’opération d’inspection de la demande de connexion entrante. Le status de reprise de l’opération d’inspection sera retourné dans le champ IoStatus.Status de l’IRP.
STATUS_FILE_FORCED_CLOSED
Le socket n’est plus fonctionnel. L’IRP sera terminé avec l’échec status. L’application WSK doit appeler la fonction WskCloseSocket pour fermer le socket dès que possible.
Autres codes status
Une erreur est survenue. L’IRP sera terminé avec l’échec status.

Remarques

Une application WSK appelle la fonction WskInspectComplete pour terminer l’inspection d’une demande de connexion entrante pour laquelle la fonction de rappel d’événements WskInspectEvent de l’application a précédemment retourné WskInspectPend.

Une application WSK peut appeler la fonction WskInspectComplete uniquement sur un socket d’écoute pour lequel le mode d’acceptation conditionnelle est activé. Une application WSK peut activer le mode d’acceptation conditionnelle sur un socket d’écoute en activant l’option de socket SO_CONDITIONAL_ACCEPT . Pour plus d’informations sur l’acceptation conditionnelle des connexions entrantes, consultez Écoute et acceptation des Connections entrantes.

Le sous-système WSK a passé un pointeur vers une structure WSK_INSPECT_ID vers l’application WSK lorsqu’il a appelé la fonction de rappel d’événement WskInspectEvent de l’application. L’application WSK a copié le contenu de cette structure dans sa propre structure WSK_INSPECT_ID avant de renvoyer WskInspectPend à partir de la fonction de rappel d’événement WskInspectEvent . L’application WSK transmet un pointeur vers sa propre structure WSK_INSPECT_ID dans le paramètre InspectID lorsqu’elle appelle la fonction WskInspectComplete .

Si une application WSK spécifie WskInspectAccept dans le paramètre Action , le sous-système WSK continue d’établir la connexion de socket. Le sous-système WSK retourne le socket à l’application WSK en effectuant un appel de l’application WSK à la fonction WskAccept ou en appelant la fonction de rappel d’événements WskAcceptEvent de l’application WSK si elle est activée. Si la demande de connexion entrante est supprimée avant que la connexion de socket ne soit entièrement établie, le sous-système WSK appelle la fonction de rappel d’événement WskAbortEvent de l’application WSK.

Si une application WSK spécifie WskInspectReject dans le paramètre Action , la demande de connexion entrante est supprimée et la connexion de socket n’est pas établie.

Si la demande de connexion entrante est supprimée par le système distant avant que l’application WSK n’appelle la fonction WskInspectComplete , le sous-système WSK appelle la fonction de rappel d’événements WskAbortEvent de l’application WSK.

Si l’application WSK appelle la fonction WskInspectComplete sur une demande de connexion entrante qui a été abandonnée, la connexion n’est pas établie même si l’application WSK a spécifié WskInspectAccept dans le paramètre Action .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Universal
En-tête wsk.h (inclure Wsk.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent