DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA回调函数 (d3dkmddi.h)

接收方 OS 调用 DxgkDdiRestoreImmutableMigrationData 以还原发送方驱动程序在上一次调用 DxgkDdiSaveImmutableMigrationData 时保存的不可变数据。

语法

DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA DxgkddiRestoreimmutablemigrationdata;

NTSTATUS DxgkddiRestoreimmutablemigrationdata(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA pArgs
)
{...}

参数

hAdapter

[in]与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序之前在 DXGKDDI_ADD_DEVICE 函数的 MiniportDeviceContext 输出参数中向 Dxgkrnl 提供了此句柄。

pArgs

[in]指向 DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA 结构的指针,该结构包含还原不可变数据所需的信息。

返回值

如果调用成功,DxgkDdiRestoreImmutableMigrationData 将返回STATUS_SUCCESS。 否则,它将返回相应的 NTSTATUS 代码,例如STATUS_OBJECT_TYPE_MISMATCH错误代码 (请参阅备注) 。

注解

与调用两次的保存/发送端不同, DxgkDdiRestoreImmutableMigrationData 只调用一次,因为它具有向接收方 KMD 提供完整数据缓冲区所需的所有数据。 驱动程序应获取数据并将其应用于正在构造的 VF,以及对其的任何跟踪,并且应验证成功还原所需的数据不变性。

缓冲区是在 DxgkDdiSaveImmutableMigrationData 的源端填充的内容,因此 KMD 应跟踪通用类型的数据。 如果数据可能需要使用新驱动程序进行更改,则内容数据中还应实现版本控制方案,并且此方案应是针对目标完成的版本检查的一部分。

如果数据指示目标系统未正确配置为从源迁移 VF,则 KMD 应执行以下操作:

  1. 通过 DxgkCbLogEtwEvent 报告此问题,其中包含GUID_DxgkAzureTriageEvent标识符和有关失败验证的具体详细信息,以便可以会审和更正问题。
  2. 从此 DDI 调用返回,出现STATUS_OBJECT_TYPE_MISMATCH错误。

仅应对当前暂停的 VF 调用 DxgkDdiRestoreImmutableMigrationData

有关详细信息,请参阅 GPU-P 设备上的实时迁移

要求

要求
最低受支持的客户端 Windows 11,版本 24H2 (WDDM 3.2)
标头 d3dkmddi.h
IRQL PASSIVE_LEVEL

另请参阅

DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData