AttachVirtualHardDisk method of the Msvm_ImageManagementService class
Attaches a virtual hard disk file in loopback mode.
Syntax
uint32 AttachVirtualHardDisk(
[in] string Path,
[in] boolean AssignDriveLetter,
[in] boolean ReadOnly,
[out] CIM_ConcreteJob REF Job
);
Parameters
-
Path [in]
-
A fully qualified path that specifies the location of the virtual hard disk file to attach.
-
AssignDriveLetter [in]
-
Indicates if drive letters are assigned to the disk's volumes.
-
ReadOnly [in]
-
Indicates if the attached hard disk should be read-only.
-
Job [out]
-
If the operation is performed asynchronously, this method will return 4096, and this parameter will contain a reference to an object derived from CIM_ConcreteJob.
Return value
This method returns one of the following values.
-
Completed with No Error (0)
-
Method Parameters Checked - Job Started (4096)
-
Failed (32768)
-
Access Denied (32769)
-
Not Supported (32770)
-
Status is unknown (32771)
-
Timeout (32772)
-
Invalid parameter (32773)
-
System is in use (32774)
-
Invalid state for this operation (32775)
-
Incorrect data type (32776)
-
System is not available (32777)
-
Out of memory (32778)
-
File not found (32779)
Remarks
To detach the virtual hard disk, use the Msvm_MountedStorageImage.DetachVirtualHardDisk method.
Access to the Msvm_ImageManagementService class might be restricted by UAC Filtering. For more information, see User Account Control and WMI.
Examples
The following C# example shows how to attach a virtual hard disk file. The referenced utilities can be found in Common utilities for the virtualization samples (V2).
public static void AttachVirtualHardDisk(string path)
{
ManagementScope scope = new ManagementScope(@"root\virtualization\V2", null);
ManagementObject imageService = Utility.GetServiceObject(scope, "Msvm_ImageManagementService");
ManagementBaseObject inParams = imageService.GetMethodParameters("AttachVirtualHardDisk");
inParams["Path"] = path;
inParams["AssignDriveLetter"] = true;
inParams["ReadOnly"] = false;
ManagementBaseObject outParams = imageService.InvokeMethod("AttachVirtualHardDisk", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("{0} was attached successfully.", inParams["Path"]);
}
else
{
Console.WriteLine("Unable to attach {0}", inParams["Path"]);
}
}
outParams.Dispose();
inParams.Dispose();
imageService.Dispose();
}
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows 8 [desktop apps only] |
Minimum supported server |
Windows Server 2012 [desktop apps only] |
Namespace |
Root\Virtualization\V2 |
MOF |
|
DLL |
|