mmAllocateMappingAddress 例程保留指定大小的系统虚拟地址空间范围。
语法
PVOID MmAllocateMappingAddress(
[in] SIZE_T NumberOfBytes,
[in] ULONG PoolTag
);
参数
[in] NumberOfBytes
指定要保留的字节数。
[in] PoolTag
指定用于标识缓冲区的四个字符标记。 为每个分配代码路径使用不同的 PoolTag 标记。 有关池标记的说明,请参阅 ExAllocatePoolWithTag。
返回值
MmAllocateMappingAddress 返回指向保留内存缓冲区开头的指针(如果作成功);否则,它将返回 NULL。
言论
mmAllocateMappingAddress 保留系统虚拟地址范围供调用方使用。 没有为虚拟地址范围分配物理内存,在 MmMapLockedPagesWithReservedMapping 例程映射虚拟内存之前,无法访问虚拟内存。 调用方通过调用 MmUnmapReservedMapping 例程取消映射保留的内存范围。 最后,调用方可以通过调用 MmFreeMappingAddress 来释放保留范围。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows XP |
| 目标平台 | 普遍 |
| 标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | <=APC_LEVEL |