Функция 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 | См. раздел "Примечания". |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по