KeRundownQueue-Funktion (ntifs.h)
Die KeRundownQueue-Routine bereinigt ein Warteschlangenobjekt und löscht alle Einträge in der Warteschlange.
Syntax
PLIST_ENTRY KeRundownQueue(
[in, out] PRKQUEUE Queue
);
Parameter
[in, out] Queue
Zeiger auf ein initialisiertes Warteschlangenobjekt, für das der Aufrufer residenten Speicher im nicht ausgelagerten Pool bereitstellt.
Rückgabewert
Wenn die Warteschlange leer ist, gibt KeRundownQueueNULL zurück. Andernfalls wird die Adresse des ersten Eintrags in der Warteschlange zurückgegeben.
Hinweise
Dateisysteme rufen KeRundownQueue auf, um alle Einträge aus einer Warteschlange zu verwerfen, bevor das Warteschlangenobjekt freigegeben oder erneut verwendet wird.
Wenn das Warteschlangenobjekt wiederverwendet werden soll, muss der Aufrufer Nach dem Aufruf von KeRundownQueueKeInitializeQueue aufrufen, um das Warteschlangenobjekt vor der Wiederverwendung erneut zu initialisieren.
KeRundownQueue gibt keine Informationen darüber zurück, wie viele Einträge in der Warteschlange verworfen werden.
Ab Windows 7 reaktiviert KeRundownQueue alle Threads, die derzeit auf das Warteschlangenobjekt warten, mit STATUS_ABANDONED. Nach der Rückgabe von dieser Funktion schlagen alle zukünftigen Threads, die versuchen, auf diese Warteschlange zu warten, sofort mit STATUS_ABANDONED fehl.
Vor Windows 7 hat KeRundownQueue wartende Threads nicht aktiviert, wenn die Warteschlange heruntergekommen war. Um die Möglichkeit zu vermeiden, Threads für immer auf diesen Betriebssystemversionen warten zu lassen, sollte KeRundownQueue niemals für eine Warteschlange aufgerufen werden, wenn Threads auf das Warteschlangenobjekt warten.
Weitere Informationen zur Verwendung von vom Treiber verwalteten internen Warteschlangen finden Sie unter Vom Treiber verwaltete Warteschlangen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |