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 |
---|---|
|
L’opération d’inspection précédemment interrompue a repris avec succès. Le IRP sera terminé avec succès status. |
|
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. |
|
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. |
|
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 |