Функция RtlIsGenericTableEmpty (ntddk.h)
Подпрограмма RtlIsGenericTableEmpty определяет, пуста ли универсальная таблица.
Синтаксис
NTSYSAPI BOOLEAN RtlIsGenericTableEmpty(
[in] PRTL_GENERIC_TABLE Table
);
Параметры
[in] Table
Указатель на универсальную таблицу (RTL_GENERIC_TABLE). Таблица должна быть инициализирована путем вызова RtlInitializeGenericTable.
Возвращаемое значение
RtlIsGenericTableEmpty возвращает FALSE, если таблица содержит один или несколько элементов, TRUE в противном случае.
Замечания
По умолчанию операционная система использует деревья воспроизведения для реализации универсальных таблиц. При некоторых обстоятельствах операции с деревом воспроизведения сделают дерево глубоким и узким и даже может превратить его в прямую линию. Очень глубокие деревья ухудшают производительность поиска. Вы можете обеспечить более сбалансированную, неглубокую реализацию универсальных таблиц с помощью деревьев Adelson-Velsky/Landis (AVL). Если вы хотите настроить универсальные подпрограммы таблиц для использования деревьев AVL вместо деревьев воспроизведения в драйвере, вставьте следующую инструкцию определения в общий файл заголовка перед включением Ntddk.h:
#define RTL_USE_AVL_TABLES 0
Если RTL_USE_AVL_TABLES не определен, необходимо использовать форму AVL универсальных подпрограмм таблиц. Например, используйте подпрограмму структуры RtlIsGenericTableEmptyAvl структура вместо RtlIsGenericTableEmpty. В вызове RtlIsGenericTableEmptyAvlвызывающий объект должен передать структуру таблицы RTL_AVL_TABLE, а не RTL_GENERIC_TABLE.
Вызывающие RtlIsGenericTableEmpty должны выполняться в ≤ APC_LEVEL, если выделенная вызывающим объектом память в таблица доступно для страницы.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Эта подпрограмма доступна в Microsoft Windows 2000 и более поздних версиях. |
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL (см. раздел "Примечания") |