mmMapLockedPages 函数 (wdm.h)
对于 Windows 2000 及更高版本的 Windows 以及 Windows Me,MmMapLockedPages 例程 已过时 。 仅支持必须在 Windows 98 上运行的 WDM 驱动程序。 否则,请使用 MmMapLockedPagesSpecifyCache。
MmMapLockedPages 例程映射由给定 MDL 描述的物理页面。
语法
PVOID MmMapLockedPages(
[in] PMDL MemoryDescriptorList,
[in] __drv_strictType(KPROCESSOR_MODE / enum _MODE,__drv_typeConst)KPROCESSOR_MODE AccessMode
);
参数
[in] MemoryDescriptorList
指向由 MmProbeAndLockPages 更新的 MDL 的指针。
[in] AccessMode
指定要映射 MDL 的访问模式,即 KernelMode 或 UserMode。 几乎所有驱动程序都应使用 KernelMode。
返回值
MmMapLockedPages 返回映射页的起始地址。 (对于 Windows NT 4.0 Service Pack 4 (SP4) 之前的基于 NT 的操作系统,MmMapLockedPages 返回映射页的第一页的起始地址。)
注解
使用 MmUnmapLockedPages 取消映射 由 MmMapLockedPages 映射的物理页面。
如果 AccessMode 是 KernelMode 且 MmMapLockedPages 无法映射指定的页面,则系统会检查发出 bug。 (因此,驱动程序应使用 MmMapLockedPagesSpecifyCache(如果可用);该例程在失败时返回 NULL,而不是导致 bug 检查.) 如果 AccessMode 是 UserMode 且无法映射指定的页面,则例程将引发异常。 指定 UserMode 的 调用方必须将对 MmMapLockedPages 的 调用包装在 try/except 块中。 有关详细信息,请参阅 处理异常。
如果 AccessMode 为 KernelMode,MmMapLockedPages的调用方必须在 IRQL <= DISPATCH_LEVEL 运行。 否则,调用方必须在 IRQL <= APC_LEVEL 运行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 对于 Windows 2000 及更高版本的 Windows 和 Windows Me,已过时。 此例程仅支持必须在 Windows 98 上运行的 WDM 驱动程序。 否则,请使用 MmMapLockedPagesSpecifyCache。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参见“备注”部分。 |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) |