Функция RtlFindSetBitsAndClear (wdm.h)

Подпрограмма RtlFindSetBitsAndClear ищет диапазон заданных битов запрошенного размера в растровом рисунке и очищает все биты в диапазоне при его обнаружении.

Синтаксис

NTSYSAPI ULONG RtlFindSetBitsAndClear(
  [in] PRTL_BITMAP BitMapHeader,
  [in] ULONG       NumberToFind,
  [in] ULONG       HintIndex
);

Параметры

[in] BitMapHeader

Указатель на структуру RTL_BITMAP , описывающую растровое изображение. Эта структура должна быть инициализирована подпрограммой RtlInitializeBitMap .

[in] NumberToFind

Указывает, сколько битов непрерывного набора будет удовлетворять этому запросу.

[in] HintIndex

Задает отсчитываемую от нуля позицию бита, вокруг которой начинается поиск заданного битового диапазона заданного размера.

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

RtlFindSetBitsAndClear либо возвращает отсчитываемый от нуля начальный битовый индекс для заданного битового диапазона запрошенного размера, который он очищен, либо возвращает 0xFFFFFFFF, если не удается найти такой диапазон в заданной переменной растрового изображения.

Комментарии

Для успешного вызова возвращаемое битовое положение не обязательно эквивалентно заданному элементу HintIndex. При необходимости RtlFindSetBitsAndClear выполняет поиск всего растрового изображения, чтобы найти заданный диапазон битов запрошенного размера. Тем не менее, он начинает поиск запрошенного диапазона рядом с HintIndex, поэтому вызывающие пользователи могут быстрее очистить такой диапазон, когда они могут предоставить соответствующие подсказки о том, с чего начать поиск.

Вызывающие элементы RtlFindSetBitsAndClear должны выполняться в среде IRQL <= APC_LEVEL, если память, содержащая переменную растрового изображения, доступна для страниц или память BitMapHeader является страничной. В противном случае RtlFindSetBitsAndClear можно вызвать в любом IRQL.

Требования

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

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

RTL_BITMAP

RtlAreBitsSet

RtlClearAllBits

RtlClearBits

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfSetBits