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

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

반환 값

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

설명

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

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

요구 사항

   
지원되는 최소 클라이언트 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