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

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

Синтаксис

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

Параметры

[in] BitMapHeader

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

[in] NumberToFind

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

[in] HintIndex

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

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

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

Комментарии

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

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

Требования

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

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

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBits

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlInitializeBitMap

RtlNumberOfClearBits

RtlSetAllBits

RtlSetBits