Поделиться через


Функция 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.

По умолчанию операционная система использует деревья воспроизведения для реализации универсальных таблиц, но RtlDeleteElementGenericTableAvl подпрограмма работает только с деревьями Adelson-Velsky/Landis (AVL). Чтобы настроить универсальные подпрограммы таблиц для использования деревьев AVL вместо деревьев воспроизведения в драйвере, вставьте следующую инструкцию определения в общий файл заголовка перед включением 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 должны выполняться в IRQL < DISPATCH_LEVEL, если имеет одно из следующих условий:

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows XP.
целевая платформа Всеобщий
заголовка ntddk.h (include Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".

См. также

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl