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

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

반환 값

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

설명

성공적인 호출의 경우 반환된 비트 위치가 지정된 HintIndex와 반드시 동일하지는 않습니다. 필요한 경우 RtlFindSetBitsAndClear 는 전체 비트맵을 검색하여 요청된 크기의 설정된 비트 범위를 찾습니다. 그러나 HintIndex 근처에서 요청된 범위를 검색하기 시작하므로 호출자는 검색을 시작할 위치에 대한 적절한 힌트를 제공할 수 있을 때 이러한 범위를 더 빨리 지울 수 있습니다.

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

요구 사항

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