RtlFindClearBits 함수(wdm.h)

RtlFindClearBits 루틴은 비트맵 내에서 요청된 크기의 명확한 비트 범위를 검색합니다.

구문

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

매개 변수

[in] BitMapHeader

비트맵을 설명하는 RTL_BITMAP 구조체에 대한 포인터입니다. 이 구조체는 RtlInitializeBitMap 루틴에 의해 초기화되어야 합니다.

[in] NumberToFind

이 요청을 충족하는 연속 지우기 비트 수를 지정합니다.

[in] HintIndex

지정된 크기의 명확한 비트 범위를 찾기 시작할 0부터 시작하는 비트 위치를 지정합니다.

반환 값

RtlFindClearBits 는 적어도 요청된 크기의 명확한 비트 범위에 대해 0부터 시작하는 비트 인덱스를 반환하거나 지정된 비트맵 내에서 이러한 범위를 찾을 수 없는 경우 0xFFFFFFFF 반환합니다.

설명

성공적인 호출의 경우 반환된 비트 위치가 지정된 HintIndex와 반드시 동일하지는 않습니다. 필요한 경우 RtlFindClearBits 는 전체 비트맵을 검색하여 요청된 크기의 명확한 비트 범위를 찾습니다. 호출자는 검색을 시작할 위치에 대한 적절한 힌트를 제공할 수 있을 때 이러한 범위를 더 빠르게 찾을 수 있습니다.

힌트 인덱스와 비트맵의 끝 사이에 일치하는 범위를 찾을 수 없는 경우 RtlFindClearBits 는 비트맵의 시작 부분에서 다시 힌트 인덱스로 검색을 계속합니다.

일부 값보다 크거나 같은 인덱스만 반환하려면 RtlFindNextForwardRunClear 를 대신 사용합니다.

비트맵 변수가 포함된 메모리가 페이징 가능하거나 BitMapHeader의 메모리를 페이징할 수 있는 경우 RtlFindClearBits 호출자는 IRQL <= APC_LEVEL 실행되어야 합니다. 그렇지 않으면 모든 IRQL에서 RtlFindClearBits 를 호출할 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL(설명 섹션 참조)

추가 정보

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBitsAndSet

RtlFindFirstRunClear

RtlFindLongestRunClear

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfClearBits