[DDK]
authorPierre Schweitzer <pierre@reactos.org>
Sat, 29 Oct 2016 16:53:45 +0000 (16:53 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 29 Oct 2016 16:53:45 +0000 (16:53 +0000)
Define IDENTIFY_DEVICE_DATA (from MSDN).

CORE-12223

svn path=/trunk/; revision=73061

reactos/sdk/include/ddk/ata.h [new file with mode: 0644]

diff --git a/reactos/sdk/include/ddk/ata.h b/reactos/sdk/include/ddk/ata.h
new file mode 100644 (file)
index 0000000..218d45d
--- /dev/null
@@ -0,0 +1,255 @@
+#ifndef _NTATA_
+#define _NTATA_
+
+#include <pshpack1.h>
+typedef struct _IDENTIFY_DEVICE_DATA {
+  struct {
+    USHORT Reserved1  :1;
+    USHORT Retired3  :1;
+    USHORT ResponseIncomplete  :1;
+    USHORT Retired2  :3;
+    USHORT FixedDevice  :1;
+    USHORT RemovableMedia  :1;
+    USHORT Retired1  :7;
+    USHORT DeviceType  :1;
+  } GeneralConfiguration;
+  USHORT NumCylinders;
+  USHORT ReservedWord2;
+  USHORT NumHeads;
+  USHORT Retired1[2];
+  USHORT NumSectorsPerTrack;
+  USHORT VendorUnique1[3];
+  UCHAR  SerialNumber[20];
+  USHORT Retired2[2];
+  USHORT Obsolete1;
+  UCHAR  FirmwareRevision[8];
+  UCHAR  ModelNumber[40];
+  UCHAR  MaximumBlockTransfer;
+  UCHAR  VendorUnique2;
+  USHORT ReservedWord48;
+  struct {
+    UCHAR  ReservedByte49;
+    UCHAR  DmaSupported  :1;
+    UCHAR  LbaSupported  :1;
+    UCHAR  IordyDisable  :1;
+    UCHAR  IordySupported  :1;
+    UCHAR  Reserved1  :1;
+    UCHAR  StandybyTimerSupport  :1;
+    UCHAR  Reserved2  :2;
+    USHORT ReservedWord50;
+  } Capabilities;
+  USHORT ObsoleteWords51[2];
+  USHORT TranslationFieldsValid  :3;
+  USHORT Reserved3  :13;
+  USHORT NumberOfCurrentCylinders;
+  USHORT NumberOfCurrentHeads;
+  USHORT CurrentSectorsPerTrack;
+  ULONG  CurrentSectorCapacity;
+  UCHAR  CurrentMultiSectorSetting;
+  UCHAR  MultiSectorSettingValid  :1;
+  UCHAR  ReservedByte59  :7;
+  ULONG  UserAddressableSectors;
+  USHORT ObsoleteWord62;
+  USHORT MultiWordDMASupport  :8;
+  USHORT MultiWordDMAActive  :8;
+  USHORT AdvancedPIOModes  :8;
+  USHORT ReservedByte64  :8;
+  USHORT MinimumMWXferCycleTime;
+  USHORT RecommendedMWXferCycleTime;
+  USHORT MinimumPIOCycleTime;
+  USHORT MinimumPIOCycleTimeIORDY;
+  USHORT ReservedWords69[6];
+  USHORT QueueDepth  :5;
+  USHORT ReservedWord75  :11;
+  USHORT ReservedWords76[4];
+  USHORT MajorRevision;
+  USHORT MinorRevision;
+  struct {
+    USHORT SmartCommands  :1;
+    USHORT SecurityMode  :1;
+    USHORT RemovableMediaFeature  :1;
+    USHORT PowerManagement  :1;
+    USHORT Reserved1  :1;
+    USHORT WriteCache  :1;
+    USHORT LookAhead  :1;
+    USHORT ReleaseInterrupt  :1;
+    USHORT ServiceInterrupt  :1;
+    USHORT DeviceReset  :1;
+    USHORT HostProtectedArea  :1;
+    USHORT Obsolete1  :1;
+    USHORT WriteBuffer  :1;
+    USHORT ReadBuffer  :1;
+    USHORT Nop  :1;
+    USHORT Obsolete2  :1;
+    USHORT DownloadMicrocode  :1;
+    USHORT DmaQueued  :1;
+    USHORT Cfa  :1;
+    USHORT AdvancedPm  :1;
+    USHORT Msn  :1;
+    USHORT PowerUpInStandby  :1;
+    USHORT ManualPowerUp  :1;
+    USHORT Reserved2  :1;
+    USHORT SetMax  :1;
+    USHORT Acoustics  :1;
+    USHORT BigLba  :1;
+    USHORT DeviceConfigOverlay  :1;
+    USHORT FlushCache  :1;
+    USHORT FlushCacheExt  :1;
+    USHORT Resrved3  :2;
+    USHORT SmartErrorLog  :1;
+    USHORT SmartSelfTest  :1;
+    USHORT MediaSerialNumber  :1;
+    USHORT MediaCardPassThrough  :1;
+    USHORT StreamingFeature  :1;
+    USHORT GpLogging  :1;
+    USHORT WriteFua  :1;
+    USHORT WriteQueuedFua  :1;
+    USHORT WWN64Bit  :1;
+    USHORT URGReadStream  :1;
+    USHORT URGWriteStream  :1;
+    USHORT ReservedForTechReport  :2;
+    USHORT IdleWithUnloadFeature  :1;
+    USHORT Reserved4  :2;
+  } CommandSetSupport;
+  struct {
+    USHORT SmartCommands  :1;
+    USHORT SecurityMode  :1;
+    USHORT RemovableMediaFeature  :1;
+    USHORT PowerManagement  :1;
+    USHORT Reserved1  :1;
+    USHORT WriteCache  :1;
+    USHORT LookAhead  :1;
+    USHORT ReleaseInterrupt  :1;
+    USHORT ServiceInterrupt  :1;
+    USHORT DeviceReset  :1;
+    USHORT HostProtectedArea  :1;
+    USHORT Obsolete1  :1;
+    USHORT WriteBuffer  :1;
+    USHORT ReadBuffer  :1;
+    USHORT Nop  :1;
+    USHORT Obsolete2  :1;
+    USHORT DownloadMicrocode  :1;
+    USHORT DmaQueued  :1;
+    USHORT Cfa  :1;
+    USHORT AdvancedPm  :1;
+    USHORT Msn  :1;
+    USHORT PowerUpInStandby  :1;
+    USHORT ManualPowerUp  :1;
+    USHORT Reserved2  :1;
+    USHORT SetMax  :1;
+    USHORT Acoustics  :1;
+    USHORT BigLba  :1;
+    USHORT DeviceConfigOverlay  :1;
+    USHORT FlushCache  :1;
+    USHORT FlushCacheExt  :1;
+    USHORT Resrved3  :2;
+    USHORT SmartErrorLog  :1;
+    USHORT SmartSelfTest  :1;
+    USHORT MediaSerialNumber  :1;
+    USHORT MediaCardPassThrough  :1;
+    USHORT StreamingFeature  :1;
+    USHORT GpLogging  :1;
+    USHORT WriteFua  :1;
+    USHORT WriteQueuedFua  :1;
+    USHORT WWN64Bit  :1;
+    USHORT URGReadStream  :1;
+    USHORT URGWriteStream  :1;
+    USHORT ReservedForTechReport  :2;
+    USHORT IdleWithUnloadFeature  :1;
+    USHORT Reserved4  :2;
+  } CommandSetActive;
+  USHORT UltraDMASupport  :8;
+  USHORT UltraDMAActive  :8;
+  USHORT ReservedWord89[4];
+  USHORT HardwareResetResult;
+  USHORT CurrentAcousticValue  :8;
+  USHORT RecommendedAcousticValue  :8;
+  USHORT ReservedWord95[5];
+  ULONG  Max48BitLBA[2];
+  USHORT StreamingTransferTime;
+  USHORT ReservedWord105;
+  struct {
+    USHORT LogicalSectorsPerPhysicalSector  :4;
+    USHORT Reserved0  :8;
+    USHORT LogicalSectorLongerThan256Words  :1;
+    USHORT MultipleLogicalSectorsPerPhysicalSector  :1;
+    USHORT Reserved1  :2;
+  } PhysicalLogicalSectorSize;
+  USHORT InterSeekDelay;
+  USHORT WorldWideName[4];
+  USHORT ReservedForWorldWideName128[4];
+  USHORT ReservedForTlcTechnicalReport;
+  USHORT WordsPerLogicalSector[2];
+  struct {
+    USHORT ReservedForDrqTechnicalReport  :1;
+    USHORT WriteReadVerifySupported  :1;
+    USHORT Reserved01  :11;
+    USHORT Reserved1  :2;
+  } CommandSetSupportExt;
+  struct {
+    USHORT ReservedForDrqTechnicalReport  :1;
+    USHORT WriteReadVerifyEnabled  :1;
+    USHORT Reserved01  :11;
+    USHORT Reserved1  :2;
+  } CommandSetActiveExt;
+  USHORT ReservedForExpandedSupportandActive[6];
+  USHORT MsnSupport  :2;
+  USHORT ReservedWord1274  :14;
+  struct {
+    USHORT SecuritySupported  :1;
+    USHORT SecurityEnabled  :1;
+    USHORT SecurityLocked  :1;
+    USHORT SecurityFrozen  :1;
+    USHORT SecurityCountExpired  :1;
+    USHORT EnhancedSecurityEraseSupported  :1;
+    USHORT Reserved0  :2;
+    USHORT SecurityLevel  :1;
+    USHORT Reserved1  :7;
+  } SecurityStatus;
+  USHORT ReservedWord129[31];
+  struct {
+    USHORT MaximumCurrentInMA2  :12;
+    USHORT CfaPowerMode1Disabled  :1;
+    USHORT CfaPowerMode1Required  :1;
+    USHORT Reserved0  :1;
+    USHORT Word160Supported  :1;
+  } CfaPowerModel;
+  USHORT ReservedForCfaWord161[8];
+  struct {
+    USHORT SupportsTrim  :1;
+    USHORT Reserved0  :15;
+  } DataSetManagementFeature;
+  USHORT ReservedForCfaWord170[6];
+  USHORT CurrentMediaSerialNumber[30];
+  USHORT ReservedWord206;
+  USHORT ReservedWord207[2];
+  struct {
+    USHORT AlignmentOfLogicalWithinPhysical  :14;
+    USHORT Word209Supported  :1;
+    USHORT Reserved0  :1;
+  } BlockAlignment;
+  USHORT WriteReadVerifySectorCountMode3Only[2];
+  USHORT WriteReadVerifySectorCountMode2Only[2];
+  struct {
+    USHORT NVCachePowerModeEnabled  :1;
+    USHORT Reserved0  :3;
+    USHORT NVCacheFeatureSetEnabled  :1;
+    USHORT Reserved1  :3;
+    USHORT NVCachePowerModeVersion  :4;
+    USHORT NVCacheFeatureSetVersion  :4;
+  } NVCacheCapabilities;
+  USHORT NVCacheSizeLSW;
+  USHORT NVCacheSizeMSW;
+  USHORT NominalMediaRotationRate;
+  USHORT ReservedWord218;
+  struct {
+    UCHAR NVCacheEstimatedTimeToSpinUpInSeconds;
+    UCHAR Reserved;
+  } NVCacheOptions;
+  USHORT ReservedWord220[35];
+  USHORT Signature  :8;
+  USHORT CheckSum  :8;
+} IDENTIFY_DEVICE_DATA, *PIDENTIFY_DEVICE_DATA;
+#include <poppack.h>
+
+#endif