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 开始搜索请求的范围,因此当调用方可以提供有关开始查找位置的适当提示时,可以更快地重置此类范围。

如果包含位图变量的内存可分页或 BitMapHeader 处的内存可分页,则 RtlFindClearBitsAndSet 的调用方必须在 IRQL <= APC_LEVEL 运行。 否则,可以在任何 IRQL 中调用 RtlFindClearBitsAndSet

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (请参阅备注部分)

另请参阅

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBits

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlInitializeBitMap

RtlNumberOfClearBits

RtlSetAllBits

RtlSetBits