Функция RemoveEntryList (wdm.h)
Подпрограмма RemoveEntryList удаляет запись из вдвойне связанного списка LIST_ENTRY структур.
Синтаксис
BOOLEAN RemoveEntryList(
[in] PLIST_ENTRY Entry
);
Параметры
[in] Entry
Указатель на структуру LIST_ENTRY , представляющую удаляемую запись.
Возвращаемое значение
RemoveEntryList возвращает значение TRUE , если после удаления указанной записи список пуст. В противном случае подпрограмма возвращает значение FALSE , чтобы указать, что результирующий список по-прежнему содержит одну или несколько записей. Дополнительные сведения см. в разделе Примечания ниже.
Комментарии
RemoveEntryList удаляет запись, задавая элемент Flink записи перед элементом Entry , чтобы он указывал на запись после элемента Entry, а элемент Blink записи после Элемента — для указания на запись перед записью.
Возвращаемое значение можно использовать для обнаружения удаления последней записи из списка. Пустой список состоит только из заголовка списка и без записей списка.
Как правило, вход указывает на запись в списке, а не на голову списка. Однако entry может указывать на голову списка, и в этом случае подпрограмма удаляет ее из списка, чтобы создать список без заголовка. Если removeEntryList используется таким образом, возвращаемое значение обычно следует игнорировать. Чтобы определить, пуст ли список, используйте подпрограмму IsListEmpty .
Сведения об использовании этой процедуры при реализации списка с удвоениями см. в разделе Singly и Doubly Linked Списки.
Вызывающие функции RemoveEntryList могут выполняться в любом IRQL. Если метод RemoveEntryList вызывается в irQL >= DISPATCH_LEVEL, хранилище для записей списка должно быть резидентным.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h) |
IRQL | Любой уровень (см. раздел "Примечания") |
Правила соответствия DDI | DoubleExFreePool(storport) |