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