gpt4 book ai didi

c++ - ConvertToReferencePoint 方法不起作用,作业参数为 NULL (HyperV 2016)

转载 作者:行者123 更新时间:2023-12-02 10:38:29 29 4
gpt4 key购买 nike

我正在尝试先创建快照,然后将快照转换为引用点。快照创建成功,我可以在 HyperV 管理器中看到它。但是,当我尝试使用快照引用调用 ConvertToReferencePoint 方法时,作业输出为 NULL。

创建快照后,我将获取与其关联的设置数据并对其进行编辑以重命名创建的快照。我从中提取 InstanceID 字段并生成发送到 ConvertToReferencePoint 方法的作业路径。CComVariant((L"Msvm_VirtualSystemSettingData.CreationClassName=\"Msvm_VirtualSystemSettingData\",InstanceID=\"" + snapRef + L"\"").c_str()));
即使 DeleteSnapshot 和 DeleteSnapshotTree 方法将 Msvm_VirtualSystemSettingData 路径作为参数,它们也可以正常工作。我是不是错过了什么。

相似的主题但不同的问题
: (WMI) ExecMethod out parameter - ResultingSnapshot is NULL irrespective of the result of the call, Why?

我什至尝试使用 WMI Explorer 工具在参数下方进行硬编码。

AffectedSnapshot=\\hostname\ROOT\virtualization\v2:Msvm_VirtualSystemSettingData.InstanceID="Microsoft:5A58EE16-48E8-46E2-8162-065826537142"
ReferencePointSettings=""

ConvertToReferencePoint:空响应。
        Wbem::Parameters inParams;
//inParams.add(L"AffectedSnapshot", CComVariant((L"Msvm_VirtualSystemSettingData.CreationClassName=\"Msvm_VirtualSystemSettingData\",InstanceID=\"" + snapRef + L"\"").c_str()));
inParams.add(L"AffectedSnapshot", CComVariant(L"\\\\IWF1117030\\ROOT\\virtualization\\v2:Msvm_VirtualSystemSettingData.InstanceID=\"Microsoft:5A58EE16-48E8-46E2-8162-065826537142\""));
inParams.add(L"ReferencePointSettings", CComVariant(L""));
Wbem::ParametersPtr outParams(new Wbem::Parameters);
outParams->add(L"Job", CComVariant());
m_wbemServices->execObjectMethod(L"Msvm_VirtualSystemSnapshotService", L"Name=\"" + instanceName + L"\"", L"ConvertToReferencePoint", inParams, outParams);

DeleteSnapshot:工作正常。
std::wstring instanceName = getSingleInstanceNameForWMIClass(L"Msvm_VirtualSystemSnapshotService");
Wbem::Parameters inParams;
inParams.add(L"AffectedSnapshot", CComVariant((L"Msvm_VirtualSystemSettingData.CreationClassName=\"Msvm_VirtualSystemSettingData\",InstanceID=\"" + snapRef + L"\"").c_str()));
Wbem::ParametersPtr outParams(new Wbem::Parameters);
outParams->add(L"Job", CComVariant());
m_wbemServices->execObjectMethod(L"Msvm_VirtualSystemSnapshotService", L"Name=\"" + instanceName + L"\"", L"DestroySnapshot", inParams, outParams);

没有错误信息。只是获得 NULL 值。
如果有人有示例代码来实现这一点,请分享。

最佳答案

检查您是如何在 WMI 资源管理器中创建快照的。它应该是“恢复”类型,ConvertToReferencePoint 才能工作。

关于c++ - ConvertToReferencePoint 方法不起作用,作业参数为 NULL (HyperV 2016),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57724008/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com