DXGKCB_ALLOCATEPAGESFORMDL回调函数 (d3dkmddi.h)

DXGKCB_ALLOCATEPAGESFORMDL 为要映射到 IOMMU 逻辑地址空间的内存描述符列表(MDL)分配物理内存页。

语法

DXGKCB_ALLOCATEPAGESFORMDL DxgkcbAllocatepagesformdl;

NTSTATUS DxgkcbAllocatepagesformdl(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_ALLOCATEPAGESFORMDL pAllocatePagesForMdl
)
{...}

参数

[in] hAdapter

显示适配器的句柄。

[in/out] pAllocatePagesForMdl

指向包含为 MDL 分配页的参数的 DXGKARGCB_ALLOCATEPAGESFORMDL 结构的指针。

返回值

如果作成功,则返回STATUS_SUCCESS。 否则,返回相应的 NTSTATUS 错误代码。

言论

此回调函数是一个 Windows 图形端口驱动程序函数,等效于 MmAllocatePagesForMdl 函数

DXGKCB_XXX 函数由 Dxgkrnl实现。 若要使用此回调函数,请设置 DXGKARGCB_ALLOCATEPAGESFORMDL 的相应成员,然后通过 DXGKRNL_INTERFACE调用 DxgkCbAllocatePagesForMdl

在分页作期间或通过 GpuMmu 映射的所有内存都必须映射到 IOMMU。 Dxgkrnl 提供内核模式驱动程序的回调,以允许在一个步骤中分配和重新映射。

注意

DXGKCB_ALLOCATEPAGESFORMDL 的调用仅限于 4GB PAGE_SIZE MDL 限制,Dxgkrnl 始终指定对 MmAllocatePagesForMdlEx 函数的内部调用中的 MM_ALLOCATE_FULLY_REQUIRED 标志。 驱动程序也不应锁定任何内存。 Dxgkrnl 将管理驱动程序的锁定页,在重新映射内存后,提供给驱动程序的页面的逻辑地址可能不再与物理地址匹配。

有关详细信息,请参阅 基于 IOMMU 的 GPU 隔离

要求

要求 价值
最低支持的客户端 Windows 10 版本 1803 (WDDM 2.4)
标头 d3dkmddi.h
IRQL PASSIVE_LEVEL

另请参阅

DXGKARGCB_ALLOCATEPAGESFORMDL

DXGKCB_FREEPAGESFROMMDL

DXGKRNL_INTERFACE