Sous-programme PostQueuedCompletionStatus

Objectif

Envoi d'un paquet d'achèvement à un port d'achèvement d'E-S spécifié.

Syntaxe

#include <iocp.h>
boolean_t PostQueuedCompletionStatus (CompletionPort, TransferCount, CompletionKey, Overlapped, )
HANDLE CompletionPort;
DWORD TransferCount, CompletionKey;
LPOVERLAPPED Overlapped; 

Descriptif

Le sous-programme PostQueuedCompletionStatus tente d'envoyer un paquet d'achèvement à CompletionPort avec les valeurs du paquet d'achèvement renseignées par les paramètres TransferCount, CompletionKey et Overlapped.

La sous-routine PostQueuedCompletionStatus renvoie un booléen indiquant si un paquet d'achèvement a été posté ou non.

Le sous-programme PostQueuedCompletionStatus fait partie de l'extension du noyau IOCP (I/O Completion Port).

Remarque: Cette sous-routine ne fonctionne que pour un descripteur de fichier de socket. Il ne fonctionne pas avec des fichiers ou d'autres descripteurs de fichier.

Paramètres

Article Descriptif
CompletionPort Indique le port d'achèvement auquel ce sous-programme tente d'accéder.
TransferCount Indique le nombre d'octets transférés.
CompletionKey Indique la clé d'achèvement.
Chevauché Indique la structure qui se chevauche.

Valeurs renvoyées

En cas de succès, la sous-routine PostQueuedCompletionStatus renvoie un booléen indiquant sa réussite.

Si la sous-routine PostQueuedCompletionStatus échoue, le gestionnaire de la sous-routine exécute les fonctions suivantes :
  • Renvoie la valeur 0 au programme appelant.
  • Déplace un code d'erreur, indiquant l'erreur spécifique, dans la variable globale errno . Pour plus d'informations sur la variable errno , voir le lien dans la section Informations connexes de ce document.

Codes d'erreur

La sous-routine échoue si l'une des erreurs suivantes se produit:
Article Descriptif
EBADF Le paramètre CompletionPort était NULL.
EINVAL Le paramètre CompletionPort n'est pas valide.

Exemples

Le fragment de programme suivant illustre l'utilisation de la sous-routine PostQueuedCompletionStatus pour envoyer un paquet d'achèvement.
c = GetQueuedCompletionStatus (34, 128, 25, struct overlapped);