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 例程之前调用 RtlInitializeBitMap。 BitMapHeader 指针是所有后续 RtlXxx 调用中的输入参数,在 BitMapBuffer 上对调用方位图变量进行操作。 调用方负责同步对位图变量的访问。
RtlInitializeBitMap 通过将调用方提供的 BitMapBuffer 和 SizeOfBitMap 值复制到其中来初始化调用方提供的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 及更早版本上 |