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 的访问模式,即 KernelModeUserMode。 几乎所有驱动程序都应使用 KernelMode

返回值

MmMapLockedPages 返回映射页的起始地址。 (对于 Windows NT 4.0 Service Pack 4 (SP4) 之前的基于 NT 的操作系统,MmMapLockedPages 返回映射页的第一页的起始地址。)

注解

使用 MmUnmapLockedPages 取消映射 由 MmMapLockedPages 映射的物理页面。

如果 AccessMode 是 KernelMode 且 MmMapLockedPages 无法映射指定的页面,则系统会检查发出 bug。 (因此,驱动程序应使用 MmMapLockedPagesSpecifyCache(如果可用);该例程在失败时返回 NULL,而不是导致 bug 检查.) 如果 AccessModeUserMode 且无法映射指定的页面,则例程将引发异常。 指定 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)

另请参阅

MmGetSystemAddressForMdl

MmGetSystemAddressForMdlSafe

MmMapLockedPagesSpecifyCache

MmProbeAndLockPages

MmUnmapLockedPages