Utilizing the Common utilities for the virtualization samples (V2)
I created a class that queries Msvm_VirtualSystemSettingData -
public static ManagementObject GetVirtualMachineSettings(ManagementObject virtualMachine)
{
using (ManagementObjectCollection settingsCollection =
virtualMachine.GetRelated("Msvm_VirtualSystemSettingData", "Msvm_SettingsDefineState",
null, null, null, null, false, null))
{
ManagementObject virtualMachineSettings =
GetFirstObjectFromCollection(settingsCollection);
return virtualMachineSettings;
}
}
In Main, I'm utilizing the class as follows -
ManagementObject vmSettings = GetVirtualMachineSettings(vm);
ManagementObjectCollection scsiController = vmSettings.GetRelated("Msvm_ResourceAllocationSettingData");
foreach (ManagementObject controller in scsiController)
{
if (controller["ResourceType"].ToString() == "6")
{
Console.WriteLine("\nCaption: {0}\nDescription: {1}\nInstance ID: {2}\nElementName: {3}\nResource Type: {4}\nResource SubType: {5}\n",
controller["Caption"].ToString(),
controller["Description"].ToString(),
controller["InstanceID"].ToString(),
controller["ElementName"].ToString(),
controller["ResourceType"].ToString(),
controller["ResourceSubType"].ToString());
}
}
How exactly do I see which one is SCSI 0, SCSI 1, SCSI 2, SCSI 3? I know that the "HyperV:Synthetic Scsi Device" all have an Instance ID, but what I mean is how does Hyper-V translate each SCSI Controller to 0, 1, 2, and 3?