Функция KeRundownQueue (ntifs.h)

Подпрограмма KeRundownQueue очищает объект очереди, очищая все записи в очереди.

Синтаксис

PLIST_ENTRY KeRundownQueue(
  [in, out] PRKQUEUE Queue
);

Параметры

[in, out] Queue

Указатель на инициализированный объект очереди, для которого вызывающий объект предоставляет резидентное хранилище в невыгваемом пуле.

Возвращаемое значение

Если очередь пуста, KeRundownQueue возвращает значение NULL; В противном случае возвращается адрес первой записи в очереди.

Комментарии

Файловые системы вызывают KeRundownQueue , чтобы удалить все записи из очереди перед освобождением или повторным использованием объекта очереди.

Если объект очереди требуется повторно использовать, вызывающий объект должен вызвать KeInitializeQueue после вызова KeRundownQueue, чтобы повторно инициализировать объект очереди перед его повторным использованием.

KeRundownQueue не возвращает никаких сведений о том, сколько записей в очереди удалено.

Начиная с Windows 7 KeRundownQueue выводит все потоки, ожидающие в объекте очереди, с помощью STATUS_ABANDONED. После возврата из этой функции все последующие потоки, которые будут пытаться ждать в этой очереди, немедленно завершатся сбоем с STATUS_ABANDONED.

До Windows 7 KeRundownQueue не пробуждали потоки ожидания, когда очередь была запущена. Чтобы избежать возможности постоянного ожидания потоков в этих версиях ОС, никогда не следует вызывать KeRundownQueue для очереди, если какие-либо потоки ожидают объекта очереди.

Дополнительные сведения об использовании внутренних очередей, управляемых драйвером, см. в разделе Очереди, управляемые драйвером.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также раздел

KeInitializeQueue

KeRemoveQueue