RtlInitializeBitMap 函数 (wdm.h)

RtlInitializeBitMap 例程初始化位图变量的标头。

语法

NTSYSAPI VOID RtlInitializeBitMap(
  [out] PRTL_BITMAP             BitMapHeader,
  [in]  __drv_aliasesMem PULONG BitMapBuffer,
  [in]  ULONG                   SizeOfBitMap
);

参数

[out] BitMapHeader

指向空 RTL_BITMAP 结构的指针。

[in] BitMapBuffer

指向位图本身调用方分配的内存的指针。 此缓冲区的基址必须是 ULONG 对齐的。 分配的缓冲区的大小必须是 大小 为 (ULONG) 字节的整数倍数。

[in] SizeOfBitMap

指定位图中的位数。 此值可以是为位图分配的缓冲区中的任意位数。

返回值

备注

驱动程序可以使用位图变量作为跟踪一组可重用项的经济方式。 例如,文件系统使用位图变量来跟踪磁盘上已分配哪些群集/扇区来保存文件数据。 系统提供的 SCSI 端口驱动程序使用位图变量跟踪哪些队列标记已分配给 SCSI 请求块 (SRB) 。

必须在对位图变量执行操作的任何其他 RtlXxx 例程之前调用 RtlInitializeBitMapBitMapHeader 指针是所有后续 RtlXxx 调用中的输入参数,在 BitMapBuffer 上对调用方位图变量进行操作。 调用方负责同步对位图变量的访问。

RtlInitializeBitMap 通过将调用方提供的 BitMapBufferSizeOfBitMap 值复制到其中来初始化调用方提供的RTL_BITMAP结构。 随后,可以将 结构传递给其他例程以操作位图。 RtlInitializeBitMap 不会修改位图的内容。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe (内核模式) ;Ntdll.dll (用户模式)
IRQL 如果 BitMapHeader 是内存驻留的,则为任何 IRQL; <= APC_LEVEL BitMapHeader 是否可分页或在 Windows 7 及更早版本上

另请参阅

RTL_BITMAP

RtlAreBitsClear

RtlAreBitsSet

RtlCheckBit

RtlClearAllBits

RtlClearBits

RtlFindClearBits

RtlFindClearBitsAndSet

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlFindSetBits

RtlFindSetBitsAndClear

RtlNumberOfClearBits

RtlNumberOfSetBits

RtlSetAllBits

RtlSetBits