#pragma autorecover
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\Storage")

Instance of __Win32Provider as $prov
{
  Name = "iSCSIWMIv2";
  ClsId = "{52C84ACA-027A-4536-A74A-E0BB50C44782}";
  ImpersonationLevel = 1;
  HostingModel = "NetworkServiceHost";
  version = 1073741825;
};

Instance of __MethodProviderRegistration
{
  Provider = $prov;
};

Instance of __InstanceProviderRegistration
{
  Provider = $prov;
  supportsGet = TRUE;
  supportsPut = TRUE;
  supportsDelete = TRUE;
  supportsEnumeration = TRUE;
  QuerySupportLevels = {"WQL:UnarySelect"};
};

[Indication,Exception : ToSubclass DisableOverride,UMLPackagePath("CIM::Interop") : ToSubclass,locale(1033)] 
class CIM_Error
{
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.OtherErrorType"} : ToSubclass] uint16 ErrorType;
  [ModelCorrespondence{"CIM_Error.ErrorType"} : ToSubclass] string OtherErrorType;
  string OwningEntity;
  [Required : ToSubclass DisableOverride,ModelCorrespondence{"CIM_Error.Message", "CIM_Error.MessageArguments"} : ToSubclass] string MessageID;
  [ModelCorrespondence{"CIM_Error.MessageID", "CIM_Error.MessageArguments"} : ToSubclass] string Message;
  [ModelCorrespondence{"CIM_Error.MessageID", "CIM_Error.Message"} : ToSubclass] string MessageArguments[];
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", ".."} : ToSubclass] uint16 PerceivedSeverity;
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.ProbableCauseDescription"} : ToSubclass] uint16 ProbableCause;
  [ModelCorrespondence{"CIM_Error.ProbableCause"} : ToSubclass] string ProbableCauseDescription;
  string RecommendedActions[];
  [ModelCorrespondence{"CIM_Error.ErrorSourceFormat"} : ToSubclass] string ErrorSource;
  [ValueMap{"0", "1", "2", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.ErrorSource", "CIM_Error.OtherErrorSourceFormat"} : ToSubclass] uint16 ErrorSourceFormat = 0;
  [ModelCorrespondence{"CIM_Error.ErrorSourceFormat"} : ToSubclass] string OtherErrorSourceFormat;
  [ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.CIMStatusCodeDescription"} : ToSubclass] uint32 CIMStatusCode;
  [ModelCorrespondence{"CIM_Error.CIMStatusCode"} : ToSubclass] string CIMStatusCodeDescription;
};

[locale(1033)] 
class MSFT_Disk
{
  [key,read : ToSubclass] string ObjectId;
  [read : ToSubclass,Required : ToSubclass DisableOverride] string Path;
  [read : ToSubclass] string Location;
  [read : ToSubclass,Required : ToSubclass DisableOverride] string FriendlyName;
  [read : ToSubclass] string UniqueId;
  [read : ToSubclass,ValueMap{"0", "1", "2", "3", "8"} : ToSubclass] uint16 UniqueIdFormat;
  [read : ToSubclass,Required : ToSubclass DisableOverride] uint32 Number;
  [read : ToSubclass] string SerialNumber;
  [read : ToSubclass] string FirmwareVersion;
  [read : ToSubclass] string Manufacturer;
  [read : ToSubclass] string Model;
  [read : ToSubclass,Required : ToSubclass DisableOverride] uint64 Size;
  [read : ToSubclass,Required : ToSubclass DisableOverride] uint64 AllocatedSize;
  [read : ToSubclass] uint32 LogicalSectorSize;
  [read : ToSubclass] uint32 PhysicalSectorSize;
  [read : ToSubclass] uint64 LargestFreeExtent;
  [read : ToSubclass] uint32 NumberOfPartitions;
  [read : ToSubclass,ValueMap{"0", "1", "2"} : ToSubclass] uint16 ProvisioningType;
  [read : ToSubclass,Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6"} : ToSubclass] uint16 OperationalStatus;
  [read : ToSubclass,Required : ToSubclass DisableOverride,ValueMap{"0", "1", "4", "8"} : ToSubclass] uint16 HealthStatus;
  [read : ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"} : ToSubclass] uint16 BusType;
  [read : ToSubclass,Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2"} : ToSubclass] uint16 PartitionStyle;
  [read : ToSubclass] uint32 Signature;
  [read : ToSubclass] string Guid;
  [read : ToSubclass] boolean IsOffline;
  [read : ToSubclass] boolean IsReadOnly;
  [read : ToSubclass] boolean IsSystem;
  [read : ToSubclass] boolean IsClustered;
  [read : ToSubclass] boolean IsBoot;
  [read : ToSubclass] boolean BootFromDisk;
  [Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6", "4097", "40000", "40001", "40002", "40003", "40005", "41000", "41002", "41003", "41004", "41005", "41006", "41010", "41011", "41012", "42002", "42004", "42007"} : ToSubclass] uint32 CreatePartition([In] uint64 Size,[In] boolean UseMaximumSize,[In] uint64 Offset,[In] uint32 Alignment,[In] char16 DriveLetter,[In] boolean AssignDriveLetter,[In,ValueMap{"1", "4", "5", "6", "7", "12"} : ToSubclass] uint16 MbrType,[In,ValueMap{"{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}", "{e3c9e316-0b5c-4db8-817d-f92df00215ae}", "{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}", "{5808c8aa-7e8f-42e0-85d2-e1e90434cfb3}", "{af9b60a0-1431-4f62-bc68-3311714a69ad}", "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}"} : ToSubclass] string GptType,[In] boolean IsHidden,[In] boolean IsActive,[Out,EmbeddedInstance("MSFT_Partition") : ToSubclass] MSFT_Partition CreatedPartition,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41001"} : ToSubclass] uint32 Initialize([In,ValueMap{"1", "2"} : ToSubclass] uint16 PartitionStyle,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41000", "41003", "41007", "41008", "41009"} : ToSubclass] uint32 Clear([In] boolean RemoveData,[In] boolean RemoveOEM,[In] boolean ZeroOutEntireDisk,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41000", "41002", "41003", "41009", "41013", "41014"} : ToSubclass] uint32 ConvertStyle([In,Required : ToSubclass DisableOverride,ValueMap{"1", "2"} : ToSubclass] uint16 PartitionStyle,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41009"} : ToSubclass] uint32 Offline([Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003"} : ToSubclass] uint32 Online([Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41000", "41003", "41006", "41009"} : ToSubclass] uint32 SetAttributes([In] boolean IsReadOnly,[In] uint32 Signature,[In] string Guid,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41000", "41003"} : ToSubclass] uint32 Refresh([Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
};

[Indication,Exception : ToSubclass DisableOverride,UMLPackagePath("CIM::Interop") : ToSubclass,locale(1033)] 
class MSFT_ExtendedStatus : CIM_Error
{
};

[locale(1033)] 
class MSFT_InitiatorPort
{
  [key,read : ToSubclass] string ObjectId;
  [read : ToSubclass] string PortAddress;
  [read : ToSubclass] string NodeAddress;
  [read : ToSubclass] string InstanceName;
  [read : ToSubclass] string AlternatePortAddress[];
  [read : ToSubclass] string AlternateNodeAddress[];
  [read : ToSubclass,ValueMap{"1", "2", "3", "5", "6", "7", "8", "9", "10", "20", "21"} : ToSubclass] uint16 PortType;
  [read : ToSubclass,ValueMap{"0", "1", "2", "3"} : ToSubclass] uint16 ConnectionType;
  [read : ToSubclass] string OtherConnectionTypeDescription;
  [read : ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6", "7", "8"} : ToSubclass] uint16 OperationalStatus[];
  [read : ToSubclass] string OtherOperationalStatusDescription;
  [ValueMap{"0", "1", "2", "3", "4", "5"} : ToSubclass] uint32 SetNodeAddress([In,Required : ToSubclass DisableOverride] string NodeAddress,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_InitiatorPortToiSCSIConnection
{
  [key] MSFT_InitiatorPort Ref InitiatorPort;
  [key] MSFT_iSCSIConnection Ref iSCSIConnection;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_InitiatorPortToiSCSISession
{
  [key] MSFT_InitiatorPort Ref InitiatorPort;
  [key] MSFT_iSCSISession Ref iSCSISession;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_InitiatorPortToiSCSITarget
{
  [key] MSFT_InitiatorPort Ref InitiatorPort;
  [key] MSFT_iSCSITarget Ref iSCSITarget;
};

[locale(1033)] 
class MSFT_Partition
{
  [key,read : ToSubclass] string DiskId;
  [read : ToSubclass,Required : ToSubclass DisableOverride] uint32 DiskNumber;
  [read : ToSubclass,Required : ToSubclass DisableOverride] uint32 PartitionNumber;
  [read : ToSubclass] char16 DriveLetter;
  [read : ToSubclass] string AccessPaths[];
  [read : ToSubclass,ValueMap{"0", "1", "3", "5", "4"} : ToSubclass] uint16 OperationalStatus;
  [read : ToSubclass] uint16 TransitionState;
  [key,read : ToSubclass] uint64 Offset;
  [read : ToSubclass,Required : ToSubclass DisableOverride] uint64 Size;
  [read : ToSubclass,ValueMap{"1", "4", "5", "6", "7", "12"} : ToSubclass] uint16 MbrType;
  [read : ToSubclass,ValueMap{"{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}", "{e3c9e316-0b5c-4db8-817d-f92df00215ae}", "{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}", "{5808c8aa-7e8f-42e0-85d2-e1e90434cfb3}", "{af9b60a0-1431-4f62-bc68-3311714a69ad}", "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}"} : ToSubclass] string GptType;
  [read : ToSubclass] string Guid;
  [read : ToSubclass] boolean IsReadOnly;
  [read : ToSubclass] boolean IsOffline;
  [read : ToSubclass] boolean IsSystem;
  [read : ToSubclass] boolean IsBoot;
  [read : ToSubclass] boolean IsActive;
  [read : ToSubclass] boolean IsHidden;
  [read : ToSubclass] boolean IsShadowCopy;
  [read : ToSubclass] boolean NoDefaultDriveLetter;
  [Required : ToSubclass DisableOverride,ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "42000", "42001"} : ToSubclass] uint32 DeleteObject([Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5"} : ToSubclass] uint32 GetAccessPaths([Out] string AccessPaths[],[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "40001", "40002", "42002", "42004", "42007"} : ToSubclass] uint32 AddAccessPath([In] string AccessPath,[In] boolean AssignDriveLetter,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "40001", "40002", "42005", "42006", "42007"} : ToSubclass] uint32 RemoveAccessPath([In,Required : ToSubclass DisableOverride] string AccessPath,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "4097", "40001", "40002", "42008", "42009"} : ToSubclass] uint32 Resize([In,Required : ToSubclass DisableOverride] uint64 Size,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "42008", "42009"} : ToSubclass] uint32 GetSupportedSize([Out] uint64 SizeMin,[Out] uint64 SizeMax,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "42011"} : ToSubclass] uint32 Online([Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "42011"} : ToSubclass] uint32 Offline([Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "40001", "40002", "40003", "41000", "41003", "41006", "42010"} : ToSubclass] uint32 SetAttributes([In] boolean IsReadOnly,[In] boolean NoDefaultDriveLetter,[In] boolean IsActive,[In] boolean IsHidden,[Out,EmbeddedInstance("MSFT_ExtendedStatus") : ToSubclass] MSFT_ExtendedStatus ExtendedStatus);
};

[locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSIConnection
{
  [key] string ConnectionIdentifier;
  string InitiatorAddress;
  string TargetAddress;
  uint32 InitiatorPortNumber;
  uint32 TargetPortNumber;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSIConnectionToDisk
{
  [key] MSFT_iSCSIConnection Ref iSCSIConnection;
  [key] MSFT_Disk Ref Disk;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSIConnectionToiSCSITargetPortal
{
  [key] MSFT_iSCSIConnection Ref iSCSIConnection;
  [key] MSFT_iSCSITargetPortal Ref iSCSITargetPortal;
};

[locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSISession
{
  [key] string SessionIdentifier;
  string InitiatorSideIdentifier;
  string TargetSideIdentifier;
  uint32 NumberOfConnections;
  string TargetNodeAddress;
  string InitiatorPortalAddress;
  boolean IsDataDigest;
  boolean IsHeaderDigest;
  string AuthenticationType;
  string InitiatorNodeAddress;
  string InitiatorInstanceName;
  boolean IsConnected;
  boolean IsPersistent;
  boolean IsDiscovered;
  [implemented] uint32 Register([In] boolean IsMultipathEnabled,[In] string ChapUsername,[In] string ChapSecret);
  [implemented] uint32 Unregister();
  [implemented,static : ToSubclass DisableOverride] uint32 SetCHAPSecret([In] string ChapSecret);
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSISessionToDisk
{
  [key] MSFT_iSCSISession Ref iSCSISession;
  [key] MSFT_Disk Ref Disk;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSISessionToiSCSIConnection
{
  [key] MSFT_iSCSISession Ref iSCSISession;
  [key] MSFT_iSCSIConnection Ref iSCSIConnection;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSISessionToiSCSITargetPortal
{
  [key] MSFT_iSCSISession Ref iSCSISession;
  [key] MSFT_iSCSITargetPortal Ref iSCSITargetPortal;
};

[locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSITarget
{
  [key] string NodeAddress;
  boolean IsConnected;
  [implemented] uint32 Disconnect([In] string SessionIdentifier);
  [implemented] uint32 Update();
  [implemented,static : ToSubclass DisableOverride] uint32 Connect([In] string NodeAddress,[In] string TargetPortalAddress,[In] uint16 TargetPortalPortNumber,[In] string InitiatorPortalAddress,[In] boolean IsDataDigest,[In] boolean IsHeaderDigest,[In] boolean ReportToPnP,[In] string AuthenticationType,[In] string ChapUsername,[In] string ChapSecret,[In] boolean IsMultipathEnabled,[In] boolean IsPersistent,[In] string InitiatorInstanceName,[Out,EmbeddedInstance("MSFT_iSCSISession") : ToSubclass] MSFT_iSCSISession CreatediSCSISession);
};

[locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSITargetPortal
{
  [key] string TargetPortalAddress;
  uint16 TargetPortalPortNumber;
  string InitiatorInstanceName;
  string InitiatorPortalAddress;
  boolean IsHeaderDigest;
  boolean IsDataDigest;
  [implemented,static : ToSubclass DisableOverride] uint32 New([In] string TargetPortalAddress,[In] uint16 TargetPortalPortNumber,[In] string InitiatorInstanceName,[In] string InitiatorPortalAddress,[In] string AuthenticationType,[In] string ChapUsername,[In] string ChapSecret,[In] boolean IsHeaderDigest,[In] boolean IsDataDigest,[Out,EmbeddedInstance("MSFT_iSCSITargetPortal") : ToSubclass] MSFT_iSCSITargetPortal CreatedTargetPortal);
  [implemented] uint32 Remove([In] string InitiatorInstanceName,[In] string InitiatorPortalAddress,[In] uint16 TargetPortalPortNumber,[In] string TargetPortalAddress);
  [implemented] uint32 Update([In] string InitiatorInstanceName,[In] string InitiatorPortalAddress,[In] string TargetPortalAddress,[In] uint16 TargetPortalPortNumber);
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSITargetToiSCSIConnection
{
  [key] MSFT_iSCSITarget Ref iSCSITarget;
  [key] MSFT_iSCSIConnection Ref iSCSIConnection;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSITargetToiSCSISession
{
  [key] MSFT_iSCSITarget Ref iSCSITarget;
  [key] MSFT_iSCSISession Ref iSCSISession;
};

[Association,locale(1033),dynamic : ToInstance,provider("iSCSIWMIv2") : ToInstance] 
class MSFT_iSCSITargetToiSCSITargetPortal
{
  [key] MSFT_iSCSITarget Ref iSCSITarget;
  [key] MSFT_iSCSITargetPortal Ref iSCSITargetPortal;
};
