MmMapLockedPages 函数 (wdm.h)
mmMapLockedPages 例程 适用于 Windows 2000 及更高版本的 Windows 以及 Windows Me 的过时。 它仅支持必须在 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 检查。如果 AccessModeUserMode 且无法映射指定的页面,则例程将引发异常。 指定 UserMode 的调用方必须在 try/except 块中包装对 MmMapLockedPages 的调用。 有关详细信息,请参阅 处理异常。
如果 AccessModeKernelMode,则 mmMapLockedPages 的调用方必须在 IRQL <= DISPATCH_LEVEL运行。 否则,调用方必须在 IRQL <= APC_LEVEL上运行。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 及更高版本的 Windows 和 Windows Me 已过时。 此例程仅支持必须在 Windows 98 上运行的 WDM 驱动程序。 否则,请使用 MmMapLockedPagesSpecifyCache。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport) |