DXGKDDI_SAVEIMMUTABLEMIGRATIONDATA回调函数 (d3dkmddi.h)
KMD 的 DxgkDdiSaveImmutableMigrationData 函数为即将开始的实时迁移保存不可变数据。
语法
DXGKDDI_SAVEIMMUTABLEMIGRATIONDATA DxgkddiSaveimmutablemigrationdata;
NTSTATUS DxgkddiSaveimmutablemigrationdata(
IN_CONST_HANDLE hAdapter,
INOUT_PDXGKARG_GPUP_SAVE_IMMUTABLE_MIGRATION_DATA pArgs
)
{...}
参数
hAdapter
[in]与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序之前在 DXGKDDI_ADD_DEVICE 函数的 MiniportDeviceContext 输出参数中向 Dxgkrnl 提供了此句柄。
pArgs
[in/out]指向 DXGKARG_GPUP_SAVE_IMMUTABLE_MIGRATION_DATA 结构的指针,以获取与调用相关的信息。
返回值
如果调用成功,DxgkDdiSaveImmutableMigrationData 将返回STATUS_SUCCESS。 否则,它将返回相应的 NTSTATUS 代码。
注解
调用 KMD 的 DxgkDdiPrepareLiveMigration 函数后, Dxgkrnl 然后调用DxgkDdiSaveImmutableMigrationData 收集有关设备的信息,以在目标端还原。 这一点也是系统验证远程配置的机会,因此 DxgkDdiSaveImmutableMigrationData 应打包足够的信息来验证任何硬件、固件或驱动程序验证数据,这些数据可以检测将 VF 移到目标配置的功能。
驱动程序应存储有关 VF 的数据,这些数据在目标 KMD 可用于帮助初始化新 VF 时不会更改。 此数据不需要包含 vGPU 创建参数,因为这些参数将在较低级别传输,并用于使用普通 DDI 创建 vGPU。 这可以包括与 VF 不可变绑定的所有数据,并且不需要全部在目标端还原。 发送数据纯粹是为了验证目的,这是此接口的关键部分。
DxgkDdiSaveImmutableMigrationData 在经典动态缓冲区模式中调用:
- 在第一次调用时, DataSize 设置为 0,Data 设置为 NULL。 KMD 应将 DataSize 更改为存储不可变数据所需的字节总数。
- Dxgkrnl 创建 DataSize 字节的缓冲区,并执行第二次调用,并将 DataSize 设置为 KMD 返回的值, 并且数据 指向分配的缓冲区。 Dxgkrnl 控制调用后此分配的内存的生存期。
在实时迁移结束时调用 DxgkDdiSaveMutableMigrationData 以收集可变数据。
有关详细信息,请参阅 GPU-P 设备上的实时迁移。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 11,版本 24H2 (WDDM 3.2) |
标头 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |