Freigeben über


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

Weitere Informationen

KeInitializeQueue

KeRemoveQueue