Metode CreateSnapshot dari kelas Msvm_VirtualSystemSnapshotService
Membuat rekam jepret komputer virtual.
Sintaks
uint32 CreateSnapshot(
[in] CIM_ComputerSystem REF AffectedSystem,
[in] string SnapshotSettings,
[in] uint16 SnapshotType,
[in, out] CIM_VirtualSystemSettingData REF ResultingSnapshot,
[out] CIM_ConcreteJob REF Job
);
Parameter
-
AffectedSystem [in]
-
Referensi ke kelas CIM_ComputerSystem yang mewakili komputer virtual untuk membuat rekam jepret.
-
SnapshotSettings [in]
-
String yang berisi instans yang disematkan dari kelas CIM_SettingData yang berisi pengaturan parameter untuk rekam jepret. Parameter ini bersifat opsional dan mungkin merupakan string kosong.
-
SnapshotType [in]
-
Menentukan jenis rekam jepret yang diminta. Ini harus menjadi salah satu nilai berikut.
-
Rekam Jepret Lengkap (2)
-
Rekam jepret lengkap komputer virtual.
-
Rekam Jepret Disk (3)
-
Rekam jepret disk komputer virtual.
-
DMTF Dicadangkan (..)
-
Spesifikasi Vendor (32768..65535)
ResultingSnapshot [masuk, keluar]
Referensi ke objek CIM_VirtualSystemSettingData yang mewakili rekam jepret komputer virtual yang dihasilkan.
Job [out]
Jika operasi dilakukan secara asinkron, metode ini akan mengembalikan 4096, dan parameter ini akan berisi referensi ke objek yang berasal dari CIM_ConcreteJob.
Menampilkan nilai
Metode ini mengembalikan salah satu nilai berikut.
-
Selesai tanpa Kesalahan (0)
-
Tidak Didukung (1)
-
Gagal (2)
-
Waktu habis (3)
-
Parameter Tidak Valid (4)
-
Status Tidak Valid (5)
-
Tipe Tidak Valid (6)
-
DMTF Dicadangkan (..)
-
Parameter Metode Diperiksa - Pekerjaan Dimulai (4096)
-
Metode Khusus (4097..32767)
-
Spesifikasi Vendor (32768..65535)
Contoh
Kode contoh C# berikut membuat komputer virtual. Utilitas yang dirujuk dapat ditemukan di Utilitas umum untuk sampel virtualisasi (V2).
Penting
Agar berfungsi dengan benar, kode berikut harus dijalankan di server host komputer virtual, dan harus dijalankan dengan hak istimewa Administrator.
public static void CreateSnapshot(string vmName)
{
ManagementScope scope = new ManagementScope(@"root\virtualization\v2", null);
ManagementObject virtualSystemService = Utility.GetServiceObject(scope, "Msvm_VirtualSystemSnapshotService");
ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("CreateSnapshot");
// Set the AffectedSystem property.
ManagementObject vm = Utility.GetTargetComputer(vmName, scope);
if (null == vm)
{
throw new ArgumentException(string.Format("The virtual machine \"{0}\" could not be found.", vmName));
}
inParams["AffectedSystem"] = vm.Path.Path;
// Set the SnapshotSettings property.
#if(true)
inParams["SnapshotSettings"] = "";
#else
ManagementObject snapshotSettings = Utility.GetServiceObject(scope, "CIM_SettingData");
inParams["SnapshotSettings"] = snapshotSettings.ToString();
#endif
// Set the SnapshotType property.
inParams["SnapshotType"] = 2; // Full snapshot.
ManagementBaseObject outParams = virtualSystemService.InvokeMethod("CreateSnapshot", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("Snapshot was created successfully.");
MiscClass.GetAffectedElement(outParams, scope);
}
else
{
Console.WriteLine("Failed to create snapshot VM");
}
}
else if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
{
Console.WriteLine("Snapshot was created successfully.");
}
else
{
Console.WriteLine("Create virtual system snapshot failed with error {0}", outParams["ReturnValue"]);
}
inParams.Dispose();
outParams.Dispose();
vm.Dispose();
virtualSystemService.Dispose();
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 8 [khusus aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2012 [hanya aplikasi desktop] |
Ruang nama |
Root\Virtualization\V2 |
Header |
|
MOF |
|
DLL |
|