Функция RtlDeleteElementGenericTableAvl (ntddk.h)

Подпрограмма RtlDeleteElementGenericTableAvl удаляет элемент из универсальной таблицы.

Синтаксис

NTSYSAPI BOOLEAN RtlDeleteElementGenericTableAvl(
  [in] PRTL_AVL_TABLE Table,
  [in] PVOID          Buffer
);

Параметры

[in] Table

Указатель на универсальную таблицу (RTL_AVL_TABLE). Таблица должна быть инициализирована путем вызова RtlInitializeGenericTableAvl.

[in] Buffer

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

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

RtlDeleteElementGenericTableAvl возвращает значение TRUE , если элемент был успешно удален, в противном случае — FALSE .

Комментарии

RtlDeleteElementGenericTableAvl вызывает CompareRoutine и FreeRoutine , которые были зарегистрированы в вызове RtlInitializeGenericTableAvl.

По умолчанию операционная система использует деревья splay для реализации универсальных таблиц, но подпрограмма RtlDeleteElementGenericTableAvl работает только с деревьями Adelson-Velsky/Landis (AVL). Чтобы настроить в универсальных подпрограммах таблицы использование деревьев AVL вместо деревьев splay в драйвере, вставьте следующую инструкцию define в общий файл заголовка перед включением Ntddk.h:

#define RTL_USE_AVL_TABLES 0

Если RTL_USE_AVL_TABLES не определен, необходимо использовать форму AVL универсальных подпрограмм таблиц. Например, используйте подпрограмму RtlDeleteElementGenericTableAvl вместо RtlDeleteElementGenericTable. При вызове RtlDeleteElementGenericTableAvl вызывающий объект должен передать RTL_AVL_TABLE структуру таблицы, а не RTL_GENERIC_TABLE.

Вызывающие объект Rtl.. Подпрограммы GenericTableAvl отвечают за исключительно синхронизацию доступа к универсальной таблице. Эксклюзивный быстрый мьютекс является наиболее эффективным механизмом синхронизации для этой цели.

Вызывающие элементы RtlDeleteElementGenericTableAvl должны выполняться на DISPATCH_LEVEL IRQL < , если выполняется одно из следующих условий:

  • Память, выделенная вызывающим объектом в table или в буфере , доступна на страницы.
  • Предоставленный вызывающим элементом CompareRoutine или FreeRoutine содержит страничный код.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows XP.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".

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

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl