Bagikan melalui


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
Dbdaoint.h
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Lihat juga

Msvm_VirtualSystemSnapshotService

CreateVirtualSystemSnapshot (V1)