STRUCT _ATA_IDENTIFY_DEVICE_DATA ;Reserved1 bit 0 ;Retired3 bit 1 ;ResponseIncomplete bit 2 ;Retired2 bit 3..5 ;FixedDevice bit 6 ;RemovableMedia bit 7 ;Retired1 bit 8..14 ;DeviceType bit 15 GeneralConfiguration WORD ; 0 0 NumCylinders WORD ; 1 2 SpecificConfiguration WORD ; 2 4 NumHeads WORD ; 3 6 NumUnformattedBytesPerTrack WORD ; 4 8 NumUnformattedBytesPerSector WORD ; 5 10 NumSectorsPerTrack WORD ; 6 12 VendorUnique7 BLOCK 6 ; 7 14 SerialNumber BLOCK 20 ; 10 20 BufferType WORD ; 20 40 BufferSizeMul_512 WORD ; 21 42 Obsolete22 WORD ; 22 44 FirmwareRevision BLOCK 8 ; 23 46 ModelNumber BLOCK 40 ; 27 54 MaximumBlockTransfer BYTE ; 47 94 VendorUnique2 BYTE ; 95 ;FeatureSupported bit 0 ;Reserved bit 1..15 TrustedComputing WORD ; 48 96 ;CurrentLongPhysicalSectorAlignment bit 0..1 ;Reserved bit 2..7 Capabilities_low BYTE ; 49 98 ;DMAsupported bit 8 ;LBAsupported bit 9 ;IORDYdisable bit 10 ;IORDYsupported bit 11 ;Obsolete1 bit 12 ;OverlapOperationSupported bit 13 ;CommandQueuingSupported bit 14 ;InterleavedDMAsupported bit 15 Capabilities_high WORD ; 99 Reserved50 WORD ; 50 100 ObsoleteWords51 WORD ; 51 102 ObsoleteWords52 WORD ; 52 104 ;FieldsInWords54_58Valid bit 0 ;FieldsInWords64_70Valid bit 1 ;FieldsInWord88_Valid bit 2 ;Reserved bit 3..15 TranslationFieldsValid WORD ; 53 106 NumberOfCurrentCylinders_low BYTE ; 54 108 NumberOfCurrentCylinders_high BYTE ; 109 NumberOfCurrentHeads_low BYTE ; 55 110 NumberOfCurrentHeads_high BYTE ; 111 CurrentSectorsPerTrack_low WORD ; 56 112 CurrentSectorsPerTrack_high WORD ; 113 CurrentSectorCapacity DWORD ; 57 114 ;SectorsPerInt bit 0..7 ;MultiSectorSettingValid bit 8 ;Reserved bit 9..11 ;SanitizeFeatureSupported bit 12 ;CryptoScrambleExtCommandSupported bit 13 ;OverwriteExtCommandSupported bit 14 ;BlockEraseExtCommandSupported bit 15 CurrentMultiSectorSetting WORD ; 59 118 UserAddressableSectors DWORD ; 60 120 ;TransferModesSupported bit 0..7 ;TransferModeActive bit 8..15 SingleWordDMA WORD ; 62 124 ;TransferModesSupported bit 0..7 ;TransferModeActive bit 8..15 MultiWordDMA WORD ; 63 126 AdvancedPIOModes BYTE ; 64 128 ReservedByte129 BYTE ; 129 MinimumMWXferCycleTime WORD ; 65 130 RecommendedMWXferCycleTime WORD ; 66 132 MinimumPIOCycleTime WORD ; 67 134 MinimumPIOCycleTimeIORDY WORD ; 68 136 ;ZonedCapabilities bit 0..1 ;NonVolatileWriteCache bit 2 ;ExtendedUserAddressableSectors bit 3 ;DeviceEncryptsAllUserData bit 4 ;ReadZeroAfterTrim bit 5 ;Optional28BitCommands bit 6 ;IEEE1667 bit 7 AdditionalSupported_low BYTE ; 69 138 ;DownloadMicrocodeDma bit 8 ;SetMaxSetPasswordUnlockDMA bit 9 ;WriteBufferDMA bit 10 ;ReadBufferDMA bit 11 ;DeviceConfigIdentifySetDMA bit 12 ;LPSAERC bit 13 ;DeterministicReadAfterTrim bit 14 ;CFastSpec bit 15 AdditionalSupported_high BYTE ; 139 ReservedWords70 BLOCK 10 ; 70 140 QueueDepth WORD ; 75 150 SerialAtaCapabilities DWORD ; 76 152 SerialAtaFeaturesSupported WORD ; 78 156 SerialAtaFeaturesEnabled WORD ; 79 158 MajorRevision WORD ; 80 160 MinorRevision WORD ; 81 162 ;SmartCommands bit 0 ;SecurityMode bit 1 ;RemovableMediaFeature bit 2 ;PowerManagement bit 3 ;Reserved1 bit 4 ;WriteCache bit 5 ;LookAhead bit 6 ;ReleaseInterrupt bit 7 ;ServiceInterrupt bit 8 ;DeviceReset bit 9 ;HostProtectedArea bit 10 ;Obsolete1 bit 11 ;WriteBuffer bit 12 ;ReadBuffer bit 13 ;Nop bit 14 ;Obsolete2 bit 15 ;DownloadMicrocode bit 16 ;DmaQueued bit 17 ;Cfa bit 18 ;AdvancedPm bit 19 ;Msn bit 20 ;PowerUpInStandby bit 21 ;ManualPowerUp bit 22 ;Reserved2 bit 23 ;SetMax bit 24 ;Acoustics bit 25 ;BigLba bit 26 ;DeviceConfigOverlay bit 27 ;FlushCache bit 28 ;FlushCacheExt bit 29 ;WordValid83 bit 30..31 ;SmartErrorLog bit 32 ;SmartSelfTest bit 33 ;MediaSerialNumber bit 34 ;MediaCardPassThrough bit 35 ;StreamingFeature bit 36 ;GpLogging bit 37 ;WriteFua bit 38 ;WriteQueuedFua bit 39 ;WWN64Bit bit 40 ;URGReadStream bit 41 ;URGWriteStream bit 42 ;ReservedForTechReport bit 43.44 ;IdleWithUnloadFeature bit 45 ;WordValid bit 46..47 CommandSetSupport BLOCK 6 ; 82 164 ;SmartCommands bit 0 ;SecurityMode bit 1 ;RemovableMediaFeature bit 2 ;PowerManagement bit 3 ;Reserved1 bit 4 ;WriteCache bit 5 ;LookAhead bit 6 ;ReleaseInterrupt bit 7 ;ServiceInterrupt bit 8 ;DeviceReset bit 9 ;HostProtectedArea bit 10 ;Obsolete1 bit 11 ;WriteBuffer bit 12 ;ReadBuffer bit 13 ;Nop bit 14 ;Obsolete2 bit 15 ;DownloadMicrocode bit 16 ;DmaQueued bit 17 ;Cfa bit 18 ;AdvancedPm bit 19 ;Msn bit 20 ;PowerUpInStandby bit 21 ;ManualPowerUp bit 22 ;Reserved2 bit 23 ;SetMax bit 24 ;Acoustics bit 25 ;BigLba bit 26 ;DeviceConfigOverlay bit 27 ;FlushCache bit 28 ;FlushCacheExt bit 29 ;Resrved3 bit 30 ;Words119_120Valid bit 31 ;SmartErrorLog bit 32 ;SmartSelfTest bit 33 ;MediaSerialNumber bit 34 ;MediaCardPassThrough bit 35 ;StreamingFeature bit 36 ;GpLogging bit 37 ;WriteFua bit 38 ;WriteQueuedFua bit 39 ;WWN64Bit bit 40 ;URGReadStream bit 41 ;URGWriteStream bit 42 ;ReservedForTechReport bit 43..44 ;IdleWithUnloadFeature bit 45 ;Reserved4 bit 46..47 CommandSetActive BLOCK 6 ; 85 170 UltraDMASupport BYTE ; 88 176 UltraDMAActive BYTE ; 177 ;USHORT TimeRequired : 15 ;USHORT ExtendedTimeReported : 1 NormalSecurityEraseUnit WORD ; 89 178 ;USHORT TimeRequired : 15 ;USHORT ExtendedTimeReported : 1 EnhancedSecurityEraseUnit WORD ; 90 180 CurrentAPMLevel BYTE ; 91 182 ReservedByte183 BYTE ; 183 MasterPasswordID WORD ; 92 184 HardwareResetResult WORD ; 93 186 CurrentAcousticValue BYTE ; 94 188 RecommendedAcousticValue BYTE ; 189 StreamMinRequestSize WORD ; 95 190 StreamingTransferTimeDMA WORD ; 96 192 StreamingAccessLatencyDMAPIO WORD ; 97 194 StreamingPerfGranularity DWORD ; 98 196 Max48BitLBA BLOCK 8 ; 100 200 StreamingTransferTime WORD ; 104 208 DsmCap WORD ; 105 210 ;LogicalSectorsPerPhysicalSector : 4 ;Reserved0 : 8 ;LogicalSectorLongerThan256Words : 1 ;MultipleLogicalSectorsPerPhysicalSector : 1 ;Reserved1 : 2 PhysicalLogicalSectorSize WORD ; 106 212 InterSeekDelay WORD ; 107 214 WorldWideName[4] BLOCK 8 ; 108 216 ReservedForWorldWideName128[4] BLOCK 8 ; 112 224 ReservedForTlcTechnicalReport WORD ; 116 232 WordsPerLogicalSector[2] DWORD ; 117 234 ;ReservedForDrqTechnicalReport : 1 ;WriteReadVerify : 1 ;WriteUncorrectableExt : 1 ;ReadWriteLogDmaExt : 1 ;DownloadMicrocodeMode3 : 1 ;FreefallControl : 1 ;SenseDataReporting : 1 ;ExtendedPowerConditions : 1 ;Reserved0 : 6 ;WordValid : 2 CommandSetSupportExt WORD ; 119 238 ;ReservedForDrqTechnicalReport : 1 ;WriteReadVerify : 1 ;WriteUncorrectableExt : 1 ;ReadWriteLogDmaExt : 1 ;DownloadMicrocodeMode3 : 1 ;FreefallControl : 1 ;SenseDataReporting : 1 ;ExtendedPowerConditions : 1 ;Reserved0 : 6 ;Reserved1 : 2 CommandSetActiveExt WORD ; 120 240 Reserved121 BLOCK 12 ; 121 242 MsnSupport BYTE ; 127 254 ReservedByte255 BYTE ; 255 ;SecuritySupported : 1 ;SecurityEnabled : 1 ;SecurityLocked : 1 ;SecurityFrozen : 1 ;SecurityCountExpired : 1 ;EnhancedSecurityEraseSupported : 1 ;Reserved0 : 2 ;SecurityLevel : 1 ;Reserved1 : 7 SecurityStatus WORD ; 128 256 ReservedBlock129 BLOCK 62 ; 129 258 ;MaximumCurrentInMA : 12 ;CfaPowerMode1Disabled : 1 ;CfaPowerMode1Required : 1 ;Reserved0 : 1 ;Word160Supported : 1 CfaPowerMode1 WORD ; 160 320 ReservedBlock161 BLOCK 14 ; 161 322 NominalFormFactor WORD ; 168 336 struct { USHORT SupportsTrim : 1 USHORT Reserved0 : 15 } DataSetManagementFeature USHORT AdditionalProductID[4] USHORT ReservedForCfaWord174[2] USHORT CurrentMediaSerialNumber[30] struct { USHORT Supported : 1 USHORT Reserved0 : 1 USHORT WriteSameSuported : 1 USHORT ErrorRecoveryControlSupported : 1 USHORT FeatureControlSuported : 1 USHORT DataTablesSuported : 1 USHORT Reserved1 : 6 USHORT VendorSpecific : 4 } SCTCommandTransport 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 WriteReadVerifySectorCountMode : 8 USHORT ReservedWord220 : 8 USHORT ReservedWord221 struct { USHORT MajorVersion : 12 USHORT TransportType : 4 } TransportMajorVersion USHORT TransportMinorVersion USHORT ReservedWord224[6] ULONG ExtendedNumberOfUserAddressableSectors[2] USHORT MinBlocksPerDownloadMicrocodeMode03 USHORT MaxBlocksPerDownloadMicrocodeMode03 USHORT ReservedWord236[19] USHORT Signature : 8 USHORT CheckSum : 8 ENDS