DXGKARG_RESTOREMEMORYFORHOTUPDATE 结构 (d3dkmddi.h)

用于还原驱动程序热更新内存的参数。

语法

typedef struct _DXGKARG_RESTOREMEMORYFORHOTUPDATE {
  [in] DXGK_RESTOREMEMORYFORHOTUPDATEFLAGS Flags;
  [in] PMDL                                pDataMdl;
  [in] UINT                                MetaDataSize;
  [in] PVOID                               pMetaData;
} DXGKARG_RESTOREMEMORYFORHOTUPDATE;

成员

[in] Flags

DXGK_RESTOREMEMORYFORHOTUPDATEFLAGS结构。 设置标志后,所有其他输入数据都设置为 NULL。 驱动程序可以删除还原操作期间分配的所有内存。

[in] pDataMdl

MDL (内存描述符列表) ,用于描述要还原的内存页。

如果驱动程序从此函数返回STATUS_SUCCESS,则驱动程序将假定 MDL 的所有权。 驱动程序可以保留指向 MDL 的指针,直到它不再使用。 之后,驱动程序必须通过调用 MmFreePagesFromMdl (pDataMdl) ExFreePool (pDataMdl) 来释放 MDL 页和 MDL 本身。

驱动程序可以使用 MmMapLockedPagesSpecifyCacheMmGetSystemAddressForMdlSafe 获取指向缓冲区的 CPU 指针。

下面是如何获取指向缓冲区的 CPU 指针的示例:

pBuffer = MmMapLockedPagesSpecifyCache(
    pMdl,
    KernelMode,
    MmCached,
    NULL,
    FALSE,
    NormalPagePriority | MdlMappingNoExecute);

pBuffer = MmGetSystemAddressForMdlSafe(pMdl, NormalPagePriority | MdlMappingNoExecute);

[in] MetaDataSize

pMetaData 指向的缓冲区中的字节数。

[in] pMetaData

指向与内存块关联的元数据的虚拟内存指针。

要求

要求
最低受支持的客户端 Windows 10 版本 1903
标头 d3dkmddi.h