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
指定从零开始的位位置,从该位置开始查找给定大小的清晰位范围。
返回值
RtlFindClearBits 返回至少为所请求大小的清晰位范围的从零开始的起始位索引,或者如果无法在给定位图中找到此类范围,则返回0xFFFFFFFF。
注解
对于成功的调用,返回的位位置不一定等效于给定的 HintIndex。 如有必要, RtlFindClearBits 将搜索整个位图,以查找所请求大小的清晰位范围。 当调用方可以提供有关开始查找位置的适当提示时,可以更快地找到此类范围。
如果在提示索引和位图末尾之间找不到匹配的范围, RtlFindClearBits 将继续从位图的开头搜索回提示索引。
如果只希望返回大于或等于某个值的索引,请改用 RtlFindNextForwardRunClear 。
如果包含位图变量的内存可分页或 BitMapHeader 上的内存可分页,则 RtlFindClearBits 的调用方必须在 IRQL <= APC_LEVEL 运行。 否则,可以在任何 IRQL 中调用 RtlFindClearBits 。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL (请参阅备注部分) |