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

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

Синтаксис

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

Параметры

[in] BitMapHeader

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

[in] NumberToFind

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

[in] HintIndex

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

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

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

Комментарии

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

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

Требования

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

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

RTL_BITMAP

RtlAreBitsSet

RtlClearBits

RtlFindClearBits

RtlFindSetBitsAndClear

RtlInitializeBitMap

RtlNumberOfSetBits