Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egyszerre több befejezési portbejegyzést kér le. Megvárja, amíg a megadott befejezési porthoz társított függőben lévő I/O-műveletek befejeződnek.
Az I/O-befejezési csomagok egyenkénti várólistáról való törléséhez használja a GetQueuedCompletionStatus függvényt.
Szemantika
BOOL WINAPI GetQueuedCompletionStatusEx(
_In_ HANDLE CompletionPort,
_Out_ LPOVERLAPPED_ENTRY lpCompletionPortEntries,
_In_ ULONG ulCount,
_Out_ PULONG ulNumEntriesRemoved,
_In_ DWORD dwMilliseconds,
_In_ BOOL fAlertable
);
Paraméterek
CompletionPort[in]
A befejezési port fogantyúja. Befejezési port létrehozásához használja a CreateIoCompletionPort függvényt.
lpCompletionPortEntries[out]
A bemeneten OVERLAPPED_ENTRY struktúrák előre lefoglalt tömbjére mutat.
Kimenetkor a bejegyzéseket tartalmazó OVERLAPPED_ENTRY struktúrák tömbjét fogadja. A tömbelemek számát az ulNumEntriesRemoved adja meg.
Az egyes I/O-k során átvitt bájtok száma, a befejezési kulcs, amely azt jelzi, hogy az egyes I/O-k melyik fájlon történtek, valamint az egyes eredeti I/O-kban használt átfedésben lévő struktúracím mind visszaadódnak az lpCompletionPortEntries tömbben.
ulCount[in]
Az eltávolítandó bejegyzések maximális száma.
ulNumEntriesRemoved[out]
Egy olyan változóra mutató mutató, amely a ténylegesen eltávolított bejegyzések számát fogadja.
dwMilliszekundumok[in]
Az az ezredmásodpercek száma, ameddig a hívó hajlandó megvárni, amíg egy befejezési csomag megjelenik a befejezési porton. Ha a befejezési csomag nem jelenik meg a megadott időn belül, a függvény időtúllépést okoz, és visszaadja a FALSEkövetkezőt: .
Ha a dwMilliseconds értéke VÉGTELEN (0xFFFFFFFF), a függvény soha nem lépi túl az időkorlátot. Ha a dwMilliseconds nulla, és nincs I/O-művelet a sorból való törléshez, a függvény azonnal időtúllépést okoz.
Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 és Windows Server 2008 R2: A dwMilliseconds érték tartalmazza az alacsony energiaigényű állapotban töltött időt. Például az időtúllépés folyamatosan visszaszámlál, miközben a számítógép alvó állapotban van.
Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10 és Windows Server 2016: A dwMilliseconds érték nem tartalmazza az alacsony energiafelvételű állapotban töltött időt. Például az időtúllépés nem számol vissza, amíg a számítógép alvó állapotban van.
fRiasztás[in]
Ha ez a paraméter , FALSEa függvény nem tér vissza, amíg az időtúllépési időszak le nem telik, vagy le nem kér egy bejegyzést.
Ha a paraméter igen TRUE , és nincsenek elérhető bejegyzések, a függvény riasztási várakozást hajt végre. A szál akkor tér vissza, amikor a rendszer várólistára helyez egy I/O-befejezési rutint vagy APC-t a szálhoz, és a szál végrehajtja a függvényt.
A befejezési rutin akkor kerül várólistára, ha a ReadFileEx vagy a WriteFileEx függvény, amelyben meg lett adva, befejeződött, és a hívó szál a műveletet kezdeményező szál. Az APC várólistára kerül a QueueUserAPC hívásakor.
Visszaadott érték
Nem nullát TRUE ad vissza, ha sikeres, vagy nullát ad vissza, ha egyébként nulla FALSE .
Ha további hibainformációkat szeretne kapni, hívja GetLastError.
Megjegyzések
Ez a függvény egy szálat társít a megadott befejezési porthoz. Egy szál legfeljebb egy befejezési porthoz társítható.
Ez a függvény akkor tér vissza TRUE , ha legalább egy függőben lévő I/O befejeződött, de előfordulhat, hogy egy vagy több I/O-művelet meghiúsult. Vegye figyelembe, hogy a függvény felhasználójának kell ellenőriznie az lpCompletionPortEntries paraméter visszaadott bejegyzéseinek listáját, hogy az egyes OVERLAPPED_ENTRYlpOverlapped tagjában található állapotot megvizsgálva megállapítsa, hogy ezek közül melyek felelnek meg az esetleges sikertelen I/O műveleteknek.
Ez a függvény akkor tér vissza FALSE , ha nem került sorba I/O-művelet. Ez általában azt jelenti, hogy hiba történt a hívás paramétereinek feldolgozása során, vagy hogy a CompletionPort leíró be lett zárva, vagy más módon érvénytelen. A GetLastError függvény kiterjesztett hibainformációkat biztosít.
Ha a GetQueuedCompletionStatusEx hívása meghiúsul, mert a hozzá társított leíró be van zárva, a függvény visszatér, FALSE és a GetLastError visszaadja ERROR_ABANDONED_WAIT_0a következőt: .
A kiszolgálóalkalmazások több szálat is tartalmazhatnak, amelyek a GetQueuedCompletionStatusEx függvényt hívják meg ugyanahhoz a befejezési porthoz. Az I/O-műveletek befejeztével a rendszer várólistára kerül erre a portra az elsőként kimenő sorrendben. Ha egy szál aktívan várakozik erre a hívásra, egy vagy több várólistán lévő kérés csak az adott szál hívását fejezi be.
Az I/O-kiegészítési portok elméletéről, használatáról és a kapcsolódó funkciókról további információt az I/O-kiegészítési portok című témakörben talál.
A Windows 8 és a Windows Server 2012 rendszerben ezt a funkciót a következő technológiák támogatják.
| Technológia | Támogatott |
|---|---|
| Server Message Block (SMB) 3.0 protokoll | Igen |
| SMB 3.0 transzparens feladatátvétel (TFO) | Igen |
| SMB 3.0 kibővített fájlmegosztással (SO) | Igen |
| Fürt megosztott kötetfájlrendszere (CsvFS) | Igen |
| Rugalmas fájlrendszer (ReFS) | Igen |
Követelmények
| Követelmény | Érték |
|---|---|
| Minimálisan támogatott ügyfél | Windows Vista [asztali alkalmazások | UWP-alkalmazások] |
| Minimálisan támogatott kiszolgáló | Windows Server 2008 [asztali alkalmazások | UWP-alkalmazások] |
| Fejléc |
IoAPI.h(belefoglal)Windows.hWinBase.h Windows Server 2008 R2, Windows 7, Windows Server 2008 és Windows Vista rendszeren (beleértve a Windows.h) |
| Könyvtár | Kernel32.lib |
| DLL | Kernel32.dll |
Lásd még
Áttekintő témakörök
Funkciók