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);