Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Hämtar flera portposter för slutförande samtidigt. Den väntar på att väntande I/O-åtgärder som är associerade med den angivna slutförandeporten ska slutföras.
Om du vill ta bort I/O-slutförandepaket från kö ett i taget använder du funktionen GetQueuedCompletionStatus .
Syntax
BOOL WINAPI GetQueuedCompletionStatusEx(
_In_ HANDLE CompletionPort,
_Out_ LPOVERLAPPED_ENTRY lpCompletionPortEntries,
_In_ ULONG ulCount,
_Out_ PULONG ulNumEntriesRemoved,
_In_ DWORD dwMilliseconds,
_In_ BOOL fAlertable
);
Parameterar
FärdigställandePort[in]
En referens till slutförandeporten. Om du vill skapa en slutförandeport använder du funktionen CreateIoCompletionPort .
lpCompletionPortEntries[out]
Vid indata pekar på en förallokerad matris med OVERLAPPED_ENTRY strukturer.
Tar emot en matris med OVERLAPPED_ENTRY strukturer som innehåller posterna. Antalet matriselement tillhandahålls av ulNumEntriesRemoved.
Antalet byte som överförs under varje I/O, slutförandenyckeln som anger vilken fil varje I/O inträffade på och den överlappande strukturadressen som används i varje ursprunglig I/O returneras alla i matrisen lpCompletionPortEntries .
ulCount[in]
Det maximala antalet poster som ska tas bort.
ulNumEntriesRemoved[out]
En pekare till en variabel som tar emot det antal poster som faktiskt tas bort.
dwMillisekunder[in]
Antalet millisekunder som anroparen är villig att vänta på att ett slutförandepaket ska visas vid slutförandeporten. Om ett slutförandepaket inte visas inom den angivna tiden överskrider funktionen tidsgränsen och returnerar FALSE.
Om dwMilliseconds är INFINITE (0xFFFFFFFF) kommer funktionen aldrig att ta slut. Om dwMilliseconds är noll och det inte finns någon I/O-åtgärd att ta bort från kön, kommer funktionen att överskrida tidsgränsen omedelbart.
Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 och Windows Server 2008 R2:Värdet dwMilliseconds inkluderar tid som tillbringats i lågenergilägen. Tidsgränsen fortsätter till exempel att räkna ned medan datorn är i viloläge.
Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10 och Windows Server 2016:Värdet dwMilliseconds inkluderar inte tid som tillbringats i lågenergilägen. Tidsgränsen fortsätter till exempel inte att räkna ned medan datorn är i viloläge.
fAlertable (på engelska)[in]
Om den här parametern är FALSEreturneras inte funktionen förrän tidsgränsen har förflutit eller en post har hämtats.
Om parametern är TRUE och det inte finns några tillgängliga poster utför funktionen en aviseringsbar väntan. Tråden returneras när systemet köar en I/O-slutföranderutin eller APC till tråden och tråden kör funktionen.
En slutföranderutin placeras i kö när funktionen ReadFileEx eller WriteFileEx som den angavs i har slutförts och den anropande tråden är den tråd som initierade åtgärden. En APC placeras i kö när du anropar QueueUserAPC.
Returvärde
Returnerar något som inte är noll TRUE om det lyckas eller noll FALSE annars.
Om du vill få utökad felinformation anropar du GetLastError.
Anmärkningar
Den här funktionen associerar en tråd med den angivna slutförandeporten. En tråd kan associeras med högst en slutförandeport.
Den här funktionen returneras TRUE när minst en väntande I/O har slutförts, men det är möjligt att en eller flera I/O-åtgärder misslyckades. Observera att det är upp till användaren av den här funktionen att kontrollera listan över returnerade poster i parametern lpCompletionPortEntries för att avgöra vilken av dem som motsvarar eventuella misslyckade I/O-operationer genom att titta på den status som finns i lpOverlapped-medlemmen i varje OVERLAPPED_ENTRY.
Den här funktionen returnerar FALSE när ingen I/O-åtgärd har tagits bort från kön. Detta innebär vanligtvis att ett fel uppstod vid bearbetningen av parametrarna till det här anropet, eller att CompletionPort-referensen stängdes eller på annat sätt är ogiltig. Funktionen GetLastError ger utökad felinformation.
Om ett anrop till GetQueuedCompletionStatusEx misslyckas på grund av att referensen som är associerad med den är stängd returneras FALSE funktionen och GetLastError returnerar ERROR_ABANDONED_WAIT_0.
Serverprogram kan ha flera trådar som anropar funktionen GetQueuedCompletionStatusEx för samma slutförandeport. När I/O-åtgärderna har slutförts placeras de i kö till den här porten i först-in-först-ut-ordning. Om en tråd aktivt väntar på det här anropet slutför en eller flera köade begäranden endast anropet för den tråden.
Mer information om I/O-slutförandeportteori, användning och associerade funktioner finns i I/O-kompletteringsportar.
I Windows 8 och Windows Server 2012 stöds den här funktionen av följande tekniker.
| Teknologi | Understödd |
|---|---|
| SMB 3.0-protokoll (Server Message Block) | Ja |
| SMB 3.0 transparent redundans (TFO) | Ja |
| SMB 3.0 med skalbara filresurser (SO) | Ja |
| Filsystem för klusterdelad volym (CsvFS) | Ja |
| ReFS (Resilient File System) | Ja |
Kravspecifikation
| Krav | Värde |
|---|---|
| Lägsta klient som stöds | Windows Vista [skrivbordsappar | UWP-appar] |
| Lägsta server som stöds | Windows Server 2008 [skrivbordsappar | UWP-appar] |
| Rubrik |
IoAPI.h (inkludera Windows.h)WinBase.h på Windows Server 2008 R2, Windows 7, Windows Server 2008 och Windows Vista (inkluderar Windows.h) |
| Bibliotek | Kernel32.lib |
| DLL | Kernel32.dll |
Se även
Översikt Ämnen
Funktioner
ConnectNamedPipe (på engelska)