Unterprogramm PostQueuedCompletionStatus
Zweck
Senden Sie ein Abschlusspaket an einen angegebenen E/A-Abschlussport.
Syntax
#include <iocp.h>
boolean_t PostQueuedCompletionStatus (CompletionPort, TransferCount, CompletionKey, Overlapped, )
HANDLE CompletionPort;
DWORD TransferCount, CompletionKey;
LPOVERLAPPED Overlapped; Beschreibung
Das Unterprogramm PostQueuedCompletionStatus versucht, ein Abschlusspaket an CompletionPort zu senden, wobei die Werte des Abschlusspakets durch die Parameter TransferCount, CompletionKey und Overlapped ergänzt werden.
Das Unterprogramm PostQueuedCompletionStatus gibt einen booleschen Wert zurück, der angibt, ob ein Abschlusspaket gesendet wurde oder nicht.
Das Unterprogramm PostQueuedCompletionStatus ist Teil der Kernel-Erweiterung I/O Completion Port (IOCP).
Hinweis Diese Subroutine funktioniert nur für einen Socketdateideskriptor. Es funktioniert nicht mit Dateien oder anderen Dateideskriptoren.
Parameter
| Element | Beschreibung |
|---|---|
| CompletionPort | Gibt den Abschlussport an, auf den diese Subroutine zuzugreifen versucht. |
| TransferCount | Gibt die Anzahl der übertragenen Byte an. |
| CompletionKey | Gibt den Fertigstellungsschlüssel an. |
| Überlappend | Gibt die überlappende Struktur an. |
Rückgabewerte
Bei erfolgreichem Abschluss gibt das Unterprogramm PostQueuedCompletionStatus einen booleschen Wert zurück, der den Erfolg anzeigt.
Wenn das Unterprogramm PostQueuedCompletionStatus nicht erfolgreich ist, führt der Subroutine Handler die folgenden Funktionen aus:
- Gibt den Wert 0 an das aufrufende Programm zurück.
- Verschiebt einen Fehlercode, der den spezifischen Fehler angibt, in die globale Variable errno . Weitere Erläuterungen zur Variablen Fehlernummer finden Sie unter dem Link im Abschnitt "Referenzinformationen" dieses Dokuments.
Fehlercodes
Die Subroutine ist nicht erfolgreich, wenn einer der folgenden Fehler auftritt:
| Element | Beschreibung |
|---|---|
| EBADF | Der Parameter CompletionPort war NULL. |
| EINVAL | Der Parameter CompletionPort war ungültig. |
Beispiele
Das folgende Programmfragment veranschaulicht die Verwendung des Unterprogramms PostQueuedCompletionStatus zur Buchung eines Abschlusspakets.
c = GetQueuedCompletionStatus (34, 128, 25, struct overlapped);