This commit is contained in:
Anatoliy Belyanskiy 2023-08-26 03:00:00 +10:00
parent 5ae09d139a
commit 2673d4234b
2 changed files with 752 additions and 0 deletions

View File

@ -0,0 +1,408 @@
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 SpecificConfiguration;
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;
struct {
USHORT FeatureSupported : 1;
USHORT Reserved : 15;
} TrustedComputing;
struct {
UCHAR CurrentLongPhysicalSectorAlignment : 2;
UCHAR ReservedByte49 : 6;
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 : 5;
USHORT FreeFallControlSensitivity : 8;
USHORT NumberOfCurrentCylinders;
USHORT NumberOfCurrentHeads;
USHORT CurrentSectorsPerTrack;
ULONG CurrentSectorCapacity;
UCHAR CurrentMultiSectorSetting;
UCHAR MultiSectorSettingValid : 1;
UCHAR ReservedByte59 : 3;
UCHAR SanitizeFeatureSupported : 1;
UCHAR CryptoScrambleExtCommandSupported : 1;
UCHAR OverwriteExtCommandSupported : 1;
UCHAR BlockEraseExtCommandSupported : 1;
ULONG UserAddressableSectors;
USHORT ObsoleteWord62;
USHORT MultiWordDMASupport : 8;
USHORT MultiWordDMAActive : 8;
USHORT AdvancedPIOModes : 8;
USHORT ReservedByte64 : 8;
USHORT MinimumMWXferCycleTime;
USHORT RecommendedMWXferCycleTime;
USHORT MinimumPIOCycleTime;
USHORT MinimumPIOCycleTimeIORDY;
struct {
USHORT ZonedCapabilities : 2;
USHORT NonVolatileWriteCache : 1;
USHORT ExtendedUserAddressableSectorsSupported : 1;
USHORT DeviceEncryptsAllUserData : 1;
USHORT ReadZeroAfterTrimSupported : 1;
USHORT Optional28BitCommandsSupported : 1;
USHORT IEEE1667 : 1;
USHORT DownloadMicrocodeDmaSupported : 1;
USHORT SetMaxSetPasswordUnlockDmaSupported : 1;
USHORT WriteBufferDmaSupported : 1;
USHORT ReadBufferDmaSupported : 1;
USHORT DeviceConfigIdentifySetDmaSupported : 1;
USHORT LPSAERCSupported : 1;
USHORT DeterministicReadAfterTrimSupported : 1;
USHORT CFastSpecSupported : 1;
} AdditionalSupported;
USHORT ReservedWords70[5];
USHORT QueueDepth : 5;
USHORT ReservedWord75 : 11;
struct {
USHORT Reserved0 : 1;
USHORT SataGen1 : 1;
USHORT SataGen2 : 1;
USHORT SataGen3 : 1;
USHORT Reserved1 : 4;
USHORT NCQ : 1;
USHORT HIPM : 1;
USHORT PhyEvents : 1;
USHORT NcqUnload : 1;
USHORT NcqPriority : 1;
USHORT HostAutoPS : 1;
USHORT DeviceAutoPS : 1;
USHORT ReadLogDMA : 1;
USHORT Reserved2 : 1;
USHORT CurrentSpeed : 3;
USHORT NcqStreaming : 1;
USHORT NcqQueueMgmt : 1;
USHORT NcqReceiveSend : 1;
USHORT DEVSLPtoReducedPwrState : 1;
USHORT Reserved3 : 8;
} SerialAtaCapabilities;
struct {
USHORT Reserved0 : 1;
USHORT NonZeroOffsets : 1;
USHORT DmaSetupAutoActivate : 1;
USHORT DIPM : 1;
USHORT InOrderData : 1;
USHORT HardwareFeatureControl : 1;
USHORT SoftwareSettingsPreservation : 1;
USHORT NCQAutosense : 1;
USHORT DEVSLP : 1;
USHORT HybridInformation : 1;
USHORT Reserved1 : 6;
} SerialAtaFeaturesSupported;
struct {
USHORT Reserved0 : 1;
USHORT NonZeroOffsets : 1;
USHORT DmaSetupAutoActivate : 1;
USHORT DIPM : 1;
USHORT InOrderData : 1;
USHORT HardwareFeatureControl : 1;
USHORT SoftwareSettingsPreservation : 1;
USHORT DeviceAutoPS : 1;
USHORT DEVSLP : 1;
USHORT HybridInformation : 1;
USHORT Reserved1 : 6;
} SerialAtaFeaturesEnabled;
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 WordValid83 : 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 WordValid : 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 : 1;
USHORT Words119_120Valid : 1;
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;
struct {
USHORT TimeRequired : 15;
USHORT ExtendedTimeReported : 1;
} NormalSecurityEraseUnit;
struct {
USHORT TimeRequired : 15;
USHORT ExtendedTimeReported : 1;
} EnhancedSecurityEraseUnit;
USHORT CurrentAPMLevel : 8;
USHORT ReservedWord91 : 8;
USHORT MasterPasswordID;
USHORT HardwareResetResult;
USHORT CurrentAcousticValue : 8;
USHORT RecommendedAcousticValue : 8;
USHORT StreamMinRequestSize;
USHORT StreamingTransferTimeDMA;
USHORT StreamingAccessLatencyDMAPIO;
ULONG StreamingPerfGranularity;
ULONG Max48BitLBA[2];
USHORT StreamingTransferTime;
USHORT DsmCap;
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 WriteReadVerify : 1;
USHORT WriteUncorrectableExt : 1;
USHORT ReadWriteLogDmaExt : 1;
USHORT DownloadMicrocodeMode3 : 1;
USHORT FreefallControl : 1;
USHORT SenseDataReporting : 1;
USHORT ExtendedPowerConditions : 1;
USHORT Reserved0 : 6;
USHORT WordValid : 2;
} CommandSetSupportExt;
struct {
USHORT ReservedForDrqTechnicalReport : 1;
USHORT WriteReadVerify : 1;
USHORT WriteUncorrectableExt : 1;
USHORT ReadWriteLogDmaExt : 1;
USHORT DownloadMicrocodeMode3 : 1;
USHORT FreefallControl : 1;
USHORT SenseDataReporting : 1;
USHORT ExtendedPowerConditions : 1;
USHORT Reserved0 : 6;
USHORT Reserved1 : 2;
} CommandSetActiveExt;
USHORT ReservedForExpandedSupportandActive[6];
USHORT MsnSupport : 2;
USHORT ReservedWord127 : 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 MaximumCurrentInMA : 12;
USHORT CfaPowerMode1Disabled : 1;
USHORT CfaPowerMode1Required : 1;
USHORT Reserved0 : 1;
USHORT Word160Supported : 1;
} CfaPowerMode1;
USHORT ReservedForCfaWord161[7];
USHORT NominalFormFactor : 4;
USHORT ReservedWord168 : 12;
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;
} IDENTIFY_DEVICE_DATA, *PIDENTIFY_DEVICE_DATA;

View File

@ -0,0 +1,344 @@
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
NumCylinders WORD ; 1
SpecificConfiguration WORD ; 2
NumHeads WORD ; 3
NumUnformattedBytesPerTrack WORD ; 4
NumUnformattedBytesPerSector WORD ; 5
NumSectorsPerTrack WORD ; 6
VendorUnique7 BLOCK 6 ; 6
SerialNumber BLOCK 20 ; 10
BufferType WORD ; 20
BufferSizeMul_512 WORD ; 21
Obsolete22 WORD ; 22
FirmwareRevision BLOCK 8 ; 23
ModelNumber BLOCK 40 ; 27
MaximumBlockTransfer BYTE ; 47
VendorUnique2 BYTE
;FeatureSupported bit 0
;Reserved bit 1..15
TrustedComputing WORD ; 48
;CurrentLongPhysicalSectorAlignment bit 0..1
;Reserved bit 2..7
;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 WORD ; 49
Reserved50 WORD ; 50
ObsoleteWords51 WORD ; 51
ObsoleteWords52 WORD ; 52
;FieldsInWords54_58Valid bit 0
;FieldsInWords64_70Valid bit 1
;FieldsInWord88_Valid bit 2
;Reserved bit 3..15
TranslationFieldsValid WORD ; 53
NumberOfCurrentCylinders WORD ; 54
NumberOfCurrentHeads WORD ; 55
CurrentSectorsPerTrack WORD ; 56
CurrentSectorCapacity DWORD ; 57
;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
UserAddressableSectors DWORD ; 60
;TransferModesSupported bit 0..7
;TransferModeActive bit 8..15
SingleWordDMA WORD ; 62
;TransferModesSupported bit 0..7
;TransferModeActive bit 8..15
MultiWordDMA WORD ; 63
AdvancedPIOModes BYTE ; 64
ReservedByte129 BYTE
MinimumMWXferCycleTime WORD ; 65
RecommendedMWXferCycleTime WORD ; 66
MinimumPIOCycleTime WORD ; 67
MinimumPIOCycleTimeIORDY WORD ; 68
;ZonedCapabilities bit 0..1
;NonVolatileWriteCache bit 2
;ExtendedUserAddressableSectorsSupported bit 3
;DeviceEncryptsAllUserData bit 4
;ReadZeroAfterTrimSupported bit 5
;Optional28BitCommandsSupported bit 6
;IEEE1667 bit 7
;DownloadMicrocodeDmaSupported bit 8
;SetMaxSetPasswordUnlockDmaSupported bit 9
;WriteBufferDmaSupported bit 10
;ReadBufferDmaSupported bit 11
;DeviceConfigIdentifySetDmaSupported bit 12
;LPSAERCSupported bit 13
;DeterministicReadAfterTrimSupported bit 14
;CFastSpecSupported bit 15
AdditionalSupported WORD ; 69
ReservedWords70 BLOCK 10 ; 70
QueueDepth WORD ; 75
SerialAtaCapabilities DWORD ; 76
SerialAtaFeaturesSupported WORD ; 78
SerialAtaFeaturesEnabled WORD ; 79
MajorRevision WORD ; 80
MinorRevision WORD ; 81
;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
;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
UltraDMASupport BYTE ; 88
UltraDMAActive BYTE
; USHORT TimeRequired : 15
; USHORT ExtendedTimeReported : 1
NormalSecurityEraseUnit WORD ; 89
; USHORT TimeRequired : 15
; USHORT ExtendedTimeReported : 1
EnhancedSecurityEraseUnit WORD ; 90
CurrentAPMLevel BYTE ; 91
ReservedByte183 BYTE
MasterPasswordID WORD ; 92
HardwareResetResult WORD ; 93
CurrentAcousticValue BYTE ; 94
RecommendedAcousticValue BYTE
StreamMinRequestSize WORD ; 95
StreamingTransferTimeDMA WORD ; 96
StreamingAccessLatencyDMAPIO WORD ; 97
StreamingPerfGranularity DWORD ; 98
Max48BitLBA BLOCK 8 ; 100
StreamingTransferTime WORD ; 104
DsmCap WORD ; 105
;LogicalSectorsPerPhysicalSector : 4
;Reserved0 : 8
;LogicalSectorLongerThan256Words : 1
;MultipleLogicalSectorsPerPhysicalSector : 1
;Reserved1 : 2
PhysicalLogicalSectorSize WORD ; 106
InterSeekDelay WORD ; 107
WorldWideName[4] BLOCK 8 ; 108
ReservedForWorldWideName128[4] BLOCK 8 ; 112
ReservedForTlcTechnicalReport WORD ; 116
WordsPerLogicalSector[2] DWORD ; 117
;ReservedForDrqTechnicalReport : 1
;WriteReadVerify : 1
;WriteUncorrectableExt : 1
;ReadWriteLogDmaExt : 1
;DownloadMicrocodeMode3 : 1
;FreefallControl : 1
;SenseDataReporting : 1
;ExtendedPowerConditions : 1
;Reserved0 : 6
;WordValid : 2
CommandSetSupportExt WORD ; 119
;ReservedForDrqTechnicalReport : 1
;WriteReadVerify : 1
;WriteUncorrectableExt : 1
;ReadWriteLogDmaExt : 1
;DownloadMicrocodeMode3 : 1
;FreefallControl : 1
;SenseDataReporting : 1
;ExtendedPowerConditions : 1
;Reserved0 : 6
;Reserved1 : 2
CommandSetActiveExt WORD ; 120
Reserved121 BLOCK 12 ; 121
MsnSupport BYTE ; 127
ReservedByte255 BYTE
;SecuritySupported : 1
;SecurityEnabled : 1
;SecurityLocked : 1
;SecurityFrozen : 1
;SecurityCountExpired : 1
;EnhancedSecurityEraseSupported : 1
;Reserved0 : 2
;SecurityLevel : 1
;Reserved1 : 7
SecurityStatus WORD ; 128
ReservedBlock129 BLOCK 62 ; 129
;MaximumCurrentInMA : 12
;CfaPowerMode1Disabled : 1
;CfaPowerMode1Required : 1
;Reserved0 : 1
;Word160Supported : 1
CfaPowerMode1 WORD ; 160
ReservedBlock161 BLOCK 14 ; 161
NominalFormFactor WORD ; 168
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