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

另请参阅

mmGetSystemAddressForMdl

mmGetSystemAddressForMdlSafe

mmMapLockedPagesSpecifyCache

mmProbeAndLockPages

mmUnmapLockedPages