#pragma namespace("\\\\.\\root\\wmi")

[WMI,Dynamic,Provider("WMIProv"),Description("SiSRAID4 AHCI Information Description"),guid("{DD277BC9-8522-4fa8-9FEC-4F2E91F18FFD}"),HeaderName("AHCIWMIRaidInfo"),GuidName1("AHCI_RaidInfo_GUID")] 
class SIS_WMI_RaidInfo
{
  [read,key] string InstanceName;
  [read] boolean Active;
  [WmiDataId(1)] uint8 HotPlugInitialize;
  [WmiDataId(2)] uint8 ForcePIO;
  [WmiDataId(3),MAX(4)] uint8 PartialCapable[];
  [WmiDataId(4),MAX(4)] uint8 PartialEnable[];
  [WmiDataId(5),MAX(4)] uint8 ICCPartialEnable[];
  [WmiDataId(6),MAX(4)] uint8 SlumberCapable[];
  [WmiDataId(7),MAX(4)] uint8 SlumberEnable[];
  [WmiDataId(8),MAX(4)] uint8 ICCSlumberEnable[];
  [WmiDataId(9),MAX(4)] uint8 PMAttached[];
  [WmiDataId(10),MAX(4)] uint8 PMEnable[];
  [WmiDataId(11),MAX(4)] uint8 NCQCapable[];
  [WmiDataId(12),MAX(4)] uint8 NCQEnable[];
  [WmiDataId(13),MAX(4)] uint8 ReEnumeratePM[];
  [WmiDataId(14),MAX(60)] uint8 IsPresent[];
  [WmiDataId(15),MAX(60)] uint32 Capacity[];
  [WmiDataId(16)] uint8 NoOfPort;
  [WmiDataId(17),MAX(4)] uint8 NoOfSubport[];
  [WmiDataId(18),MAX(4)] uint8 ICCPartialTimer[];
  [WmiDataId(19),MAX(4)] uint8 ICCSlumberTimer[];
  [WmiDataId(20),MAX(60)] uint8 UDMAMode[];
  [WmiDataId(21),MAX(60)] uint8 CurrentMode[];
  [WmiDataId(22),MAX(60)] uint8 HIPM[];
  [WmiDataId(23),MAX(60)] uint8 DIPM[];
  [WmiDataId(24),MAX(60)] uint8 GEN[];
  [WmiDataId(25),MAX(60)] uint8 DMAAuto[];
  [WmiDataId(26),MAX(60)] uint8 SNZBO[];
  [WmiDataId(27),MAX(60)] uint8 PhyEventCounter[];
  [WmiDataId(28),MAX(60)] uint8 SWSetting[];
  [WmiDataId(29),MAX(60)] uint8 AsyncNotification[];
  [WmiDataId(30),MAX(60)] uint8 InOrderDD[];
  [WmiDataId(31),MAX(60)] uint8 NCQ[];
  [WmiDataId(32),MAX(2048)] uint8 ModelName[];
  [WmiDataId(33),MAX(20)] uint8 XX[];
};

[Dynamic,WMI,Provider("WmiProv"),Description("SiSRAID4 HotPlug Event Provider"),guid("{88cc8ad7-17d4-42d7-a176-f6c1c8e5e968}"),HeaderName("SiS_WMI_Event"),GuidName1("SiSRAID4_HotPlugEvent_GUID"),DisplayName("SiSRAID4 Hot Plug Event Provider")] 
class SiS_WMI_Event : WmiEvent
{
  [key,read] string InstanceName;
  [read] boolean Active;
  [WmiDataId(1)] uint8 PortID;
  [WmiDataId(2)] uint8 SubportID;
  [WmiDataId(3)] uint32 Option;
};
