DXGKCB_ALLOCATECONTIGUOUSMEMORY回调函数 (d3dkmddi.h)

DXGKCB_ALLOCATECONTIGUOUSMEMORY 在 IOMMU 的逻辑地址空间中分配连续内存区域。

语法

DXGKCB_ALLOCATECONTIGUOUSMEMORY DxgkcbAllocatecontiguousmemory;

NTSTATUS DxgkcbAllocatecontiguousmemory(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_ALLOCATECONTIGUOUSMEMORY pAllocateContiguousMemory
)
{...}

参数

[in] hAdapter

显示适配器的句柄。

[in/out] pAllocateContiguousMemory

指向 DXGKARGCB_ALLOCATECONTIGUOUSMEMORY 结构的指针,该结构包含用于分配连续内存的参数。

返回值

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

注解

此回调函数与 MmAllocateContiguousMemory 函数等效于 Dxgkrnl

DXGKCB_XXX 函数由 Dxgkrnl 实现。 若要使用此回调函数,请设置DXGKARGCB_ALLOCATECONTIGUOUSMEMORY的适当成员,然后通过 DXGKRNL_INTERFACE调用 DxgkCbAllocateContiguousMemory

GPU 在分页操作期间访问或通过 GpuMmu 映射的所有内存都必须映射到 IOMMU。 Dxgkrnl 为 KMD 提供回调,以允许在一个步骤中分配和重新映射。

注意

驱动程序不应锁定任何内存。 Dxgkrnl 将管理驱动程序的锁定页,重新映射内存后,提供给驱动程序的页面的逻辑地址可能不再与物理地址匹配。

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

要求

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

另请参阅

DXGKARGCB_ALLOCATECONTIGUOUSMEMORY

DXGKCB_FREECONTIGUOUSMEMORY

DXGKRNL_INTERFACE