| 1 |
/** |
| 2 |
* This file has no copyright assigned and is placed in the Public Domain. |
| 3 |
* This file is part of the mingw-w64 runtime package. |
| 4 |
* No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 |
*/ |
| 6 |
|
| 7 |
#ifndef _NTATA_ |
| 8 |
#define _NTATA_ |
| 9 |
|
| 10 |
#pragma pack(push,1) |
| 11 |
|
| 12 |
typedef struct _IDENTIFY_DEVICE_DATA { |
| 13 |
struct { |
| 14 |
USHORT Reserved1 : 1; |
| 15 |
USHORT Retired3 : 1; |
| 16 |
USHORT ResponseIncomplete : 1; |
| 17 |
USHORT Retired2 : 3; |
| 18 |
USHORT FixedDevice : 1; |
| 19 |
USHORT RemovableMedia : 1; |
| 20 |
USHORT Retired1 : 7; |
| 21 |
USHORT DeviceType : 1; |
| 22 |
} GeneralConfiguration; |
| 23 |
USHORT NumCylinders; |
| 24 |
USHORT SpecificConfiguration; |
| 25 |
USHORT NumHeads; |
| 26 |
USHORT Retired1[2]; |
| 27 |
USHORT NumSectorsPerTrack; |
| 28 |
USHORT VendorUnique1[3]; |
| 29 |
UCHAR SerialNumber[20]; |
| 30 |
USHORT Retired2[2]; |
| 31 |
USHORT Obsolete1; |
| 32 |
UCHAR FirmwareRevision[8]; |
| 33 |
UCHAR ModelNumber[40]; |
| 34 |
UCHAR MaximumBlockTransfer; |
| 35 |
UCHAR VendorUnique2; |
| 36 |
struct { |
| 37 |
USHORT FeatureSupported : 1; |
| 38 |
USHORT Reserved : 15; |
| 39 |
} TrustedComputing; |
| 40 |
struct { |
| 41 |
UCHAR CurrentLongPhysicalSectorAlignment : 2; |
| 42 |
UCHAR ReservedByte49 : 6; |
| 43 |
UCHAR DmaSupported : 1; |
| 44 |
UCHAR LbaSupported : 1; |
| 45 |
UCHAR IordyDisable : 1; |
| 46 |
UCHAR IordySupported : 1; |
| 47 |
UCHAR Reserved1 : 1; |
| 48 |
UCHAR StandybyTimerSupport : 1; |
| 49 |
UCHAR Reserved2 : 2; |
| 50 |
USHORT ReservedWord50; |
| 51 |
} Capabilities; |
| 52 |
USHORT ObsoleteWords51[2]; |
| 53 |
USHORT TranslationFieldsValid : 3; |
| 54 |
USHORT Reserved3 : 5; |
| 55 |
USHORT FreeFallControlSensitivity : 8; |
| 56 |
USHORT NumberOfCurrentCylinders; |
| 57 |
USHORT NumberOfCurrentHeads; |
| 58 |
USHORT CurrentSectorsPerTrack; |
| 59 |
ULONG CurrentSectorCapacity; |
| 60 |
UCHAR CurrentMultiSectorSetting; |
| 61 |
UCHAR MultiSectorSettingValid : 1; |
| 62 |
UCHAR ReservedByte59 : 3; |
| 63 |
UCHAR SanitizeFeatureSupported : 1; |
| 64 |
UCHAR CryptoScrambleExtCommandSupported : 1; |
| 65 |
UCHAR OverwriteExtCommandSupported : 1; |
| 66 |
UCHAR BlockEraseExtCommandSupported : 1; |
| 67 |
ULONG UserAddressableSectors; |
| 68 |
USHORT ObsoleteWord62; |
| 69 |
USHORT MultiWordDMASupport : 8; |
| 70 |
USHORT MultiWordDMAActive : 8; |
| 71 |
USHORT AdvancedPIOModes : 8; |
| 72 |
USHORT ReservedByte64 : 8; |
| 73 |
USHORT MinimumMWXferCycleTime; |
| 74 |
USHORT RecommendedMWXferCycleTime; |
| 75 |
USHORT MinimumPIOCycleTime; |
| 76 |
USHORT MinimumPIOCycleTimeIORDY; |
| 77 |
struct { |
| 78 |
USHORT ZonedCapabilities : 2; |
| 79 |
USHORT NonVolatileWriteCache : 1; |
| 80 |
USHORT ExtendedUserAddressableSectorsSupported : 1; |
| 81 |
USHORT DeviceEncryptsAllUserData : 1; |
| 82 |
USHORT ReadZeroAfterTrimSupported : 1; |
| 83 |
USHORT Optional28BitCommandsSupported : 1; |
| 84 |
USHORT IEEE1667 : 1; |
| 85 |
USHORT DownloadMicrocodeDmaSupported : 1; |
| 86 |
USHORT SetMaxSetPasswordUnlockDmaSupported : 1; |
| 87 |
USHORT WriteBufferDmaSupported : 1; |
| 88 |
USHORT ReadBufferDmaSupported : 1; |
| 89 |
USHORT DeviceConfigIdentifySetDmaSupported : 1; |
| 90 |
USHORT LPSAERCSupported : 1; |
| 91 |
USHORT DeterministicReadAfterTrimSupported : 1; |
| 92 |
USHORT CFastSpecSupported : 1; |
| 93 |
} AdditionalSupported; |
| 94 |
USHORT ReservedWords70[5]; |
| 95 |
USHORT QueueDepth : 5; |
| 96 |
USHORT ReservedWord75 : 11; |
| 97 |
struct { |
| 98 |
USHORT Reserved0 : 1; |
| 99 |
USHORT SataGen1 : 1; |
| 100 |
USHORT SataGen2 : 1; |
| 101 |
USHORT SataGen3 : 1; |
| 102 |
USHORT Reserved1 : 4; |
| 103 |
USHORT NCQ : 1; |
| 104 |
USHORT HIPM : 1; |
| 105 |
USHORT PhyEvents : 1; |
| 106 |
USHORT NcqUnload : 1; |
| 107 |
USHORT NcqPriority : 1; |
| 108 |
USHORT HostAutoPS : 1; |
| 109 |
USHORT DeviceAutoPS : 1; |
| 110 |
USHORT ReadLogDMA : 1; |
| 111 |
USHORT Reserved2 : 1; |
| 112 |
USHORT CurrentSpeed : 3; |
| 113 |
USHORT NcqStreaming : 1; |
| 114 |
USHORT NcqQueueMgmt : 1; |
| 115 |
USHORT NcqReceiveSend : 1; |
| 116 |
USHORT DEVSLPtoReducedPwrState : 1; |
| 117 |
USHORT Reserved3 : 8; |
| 118 |
} SerialAtaCapabilities; |
| 119 |
struct { |
| 120 |
USHORT Reserved0 : 1; |
| 121 |
USHORT NonZeroOffsets : 1; |
| 122 |
USHORT DmaSetupAutoActivate : 1; |
| 123 |
USHORT DIPM : 1; |
| 124 |
USHORT InOrderData : 1; |
| 125 |
USHORT HardwareFeatureControl : 1; |
| 126 |
USHORT SoftwareSettingsPreservation : 1; |
| 127 |
USHORT NCQAutosense : 1; |
| 128 |
USHORT DEVSLP : 1; |
| 129 |
USHORT HybridInformation : 1; |
| 130 |
USHORT Reserved1 : 6; |
| 131 |
} SerialAtaFeaturesSupported; |
| 132 |
struct { |
| 133 |
USHORT Reserved0 : 1; |
| 134 |
USHORT NonZeroOffsets : 1; |
| 135 |
USHORT DmaSetupAutoActivate : 1; |
| 136 |
USHORT DIPM : 1; |
| 137 |
USHORT InOrderData : 1; |
| 138 |
USHORT HardwareFeatureControl : 1; |
| 139 |
USHORT SoftwareSettingsPreservation : 1; |
| 140 |
USHORT DeviceAutoPS : 1; |
| 141 |
USHORT DEVSLP : 1; |
| 142 |
USHORT HybridInformation : 1; |
| 143 |
USHORT Reserved1 : 6; |
| 144 |
} SerialAtaFeaturesEnabled; |
| 145 |
USHORT MajorRevision; |
| 146 |
USHORT MinorRevision; |
| 147 |
struct { |
| 148 |
USHORT SmartCommands : 1; |
| 149 |
USHORT SecurityMode : 1; |
| 150 |
USHORT RemovableMediaFeature : 1; |
| 151 |
USHORT PowerManagement : 1; |
| 152 |
USHORT Reserved1 : 1; |
| 153 |
USHORT WriteCache : 1; |
| 154 |
USHORT LookAhead : 1; |
| 155 |
USHORT ReleaseInterrupt : 1; |
| 156 |
USHORT ServiceInterrupt : 1; |
| 157 |
USHORT DeviceReset : 1; |
| 158 |
USHORT HostProtectedArea : 1; |
| 159 |
USHORT Obsolete1 : 1; |
| 160 |
USHORT WriteBuffer : 1; |
| 161 |
USHORT ReadBuffer : 1; |
| 162 |
USHORT Nop : 1; |
| 163 |
USHORT Obsolete2 : 1; |
| 164 |
USHORT DownloadMicrocode : 1; |
| 165 |
USHORT DmaQueued : 1; |
| 166 |
USHORT Cfa : 1; |
| 167 |
USHORT AdvancedPm : 1; |
| 168 |
USHORT Msn : 1; |
| 169 |
USHORT PowerUpInStandby : 1; |
| 170 |
USHORT ManualPowerUp : 1; |
| 171 |
USHORT Reserved2 : 1; |
| 172 |
USHORT SetMax : 1; |
| 173 |
USHORT Acoustics : 1; |
| 174 |
USHORT BigLba : 1; |
| 175 |
USHORT DeviceConfigOverlay : 1; |
| 176 |
USHORT FlushCache : 1; |
| 177 |
USHORT FlushCacheExt : 1; |
| 178 |
USHORT WordValid83 : 2; |
| 179 |
USHORT SmartErrorLog : 1; |
| 180 |
USHORT SmartSelfTest : 1; |
| 181 |
USHORT MediaSerialNumber : 1; |
| 182 |
USHORT MediaCardPassThrough : 1; |
| 183 |
USHORT StreamingFeature : 1; |
| 184 |
USHORT GpLogging : 1; |
| 185 |
USHORT WriteFua : 1; |
| 186 |
USHORT WriteQueuedFua : 1; |
| 187 |
USHORT WWN64Bit : 1; |
| 188 |
USHORT URGReadStream : 1; |
| 189 |
USHORT URGWriteStream : 1; |
| 190 |
USHORT ReservedForTechReport : 2; |
| 191 |
USHORT IdleWithUnloadFeature : 1; |
| 192 |
USHORT WordValid : 2; |
| 193 |
} CommandSetSupport; |
| 194 |
struct { |
| 195 |
USHORT SmartCommands : 1; |
| 196 |
USHORT SecurityMode : 1; |
| 197 |
USHORT RemovableMediaFeature : 1; |
| 198 |
USHORT PowerManagement : 1; |
| 199 |
USHORT Reserved1 : 1; |
| 200 |
USHORT WriteCache : 1; |
| 201 |
USHORT LookAhead : 1; |
| 202 |
USHORT ReleaseInterrupt : 1; |
| 203 |
USHORT ServiceInterrupt : 1; |
| 204 |
USHORT DeviceReset : 1; |
| 205 |
USHORT HostProtectedArea : 1; |
| 206 |
USHORT Obsolete1 : 1; |
| 207 |
USHORT WriteBuffer : 1; |
| 208 |
USHORT ReadBuffer : 1; |
| 209 |
USHORT Nop : 1; |
| 210 |
USHORT Obsolete2 : 1; |
| 211 |
USHORT DownloadMicrocode : 1; |
| 212 |
USHORT DmaQueued : 1; |
| 213 |
USHORT Cfa : 1; |
| 214 |
USHORT AdvancedPm : 1; |
| 215 |
USHORT Msn : 1; |
| 216 |
USHORT PowerUpInStandby : 1; |
| 217 |
USHORT ManualPowerUp : 1; |
| 218 |
USHORT Reserved2 : 1; |
| 219 |
USHORT SetMax : 1; |
| 220 |
USHORT Acoustics : 1; |
| 221 |
USHORT BigLba : 1; |
| 222 |
USHORT DeviceConfigOverlay : 1; |
| 223 |
USHORT FlushCache : 1; |
| 224 |
USHORT FlushCacheExt : 1; |
| 225 |
USHORT Resrved3 : 1; |
| 226 |
USHORT Words119_120Valid : 1; |
| 227 |
USHORT SmartErrorLog : 1; |
| 228 |
USHORT SmartSelfTest : 1; |
| 229 |
USHORT MediaSerialNumber : 1; |
| 230 |
USHORT MediaCardPassThrough : 1; |
| 231 |
USHORT StreamingFeature : 1; |
| 232 |
USHORT GpLogging : 1; |
| 233 |
USHORT WriteFua : 1; |
| 234 |
USHORT WriteQueuedFua : 1; |
| 235 |
USHORT WWN64Bit : 1; |
| 236 |
USHORT URGReadStream : 1; |
| 237 |
USHORT URGWriteStream : 1; |
| 238 |
USHORT ReservedForTechReport : 2; |
| 239 |
USHORT IdleWithUnloadFeature : 1; |
| 240 |
USHORT Reserved4 : 2; |
| 241 |
} CommandSetActive; |
| 242 |
USHORT UltraDMASupport : 8; |
| 243 |
USHORT UltraDMAActive : 8; |
| 244 |
struct { |
| 245 |
USHORT TimeRequired : 15; |
| 246 |
USHORT ExtendedTimeReported : 1; |
| 247 |
} NormalSecurityEraseUnit; |
| 248 |
struct { |
| 249 |
USHORT TimeRequired : 15; |
| 250 |
USHORT ExtendedTimeReported : 1; |
| 251 |
} EnhancedSecurityEraseUnit; |
| 252 |
USHORT CurrentAPMLevel : 8; |
| 253 |
USHORT ReservedWord91 : 8; |
| 254 |
USHORT MasterPasswordID; |
| 255 |
USHORT HardwareResetResult; |
| 256 |
USHORT CurrentAcousticValue : 8; |
| 257 |
USHORT RecommendedAcousticValue : 8; |
| 258 |
USHORT StreamMinRequestSize; |
| 259 |
USHORT StreamingTransferTimeDMA; |
| 260 |
USHORT StreamingAccessLatencyDMAPIO; |
| 261 |
ULONG StreamingPerfGranularity; |
| 262 |
ULONG Max48BitLBA[2]; |
| 263 |
USHORT StreamingTransferTime; |
| 264 |
USHORT DsmCap; |
| 265 |
struct { |
| 266 |
USHORT LogicalSectorsPerPhysicalSector : 4; |
| 267 |
USHORT Reserved0 : 8; |
| 268 |
USHORT LogicalSectorLongerThan256Words : 1; |
| 269 |
USHORT MultipleLogicalSectorsPerPhysicalSector : 1; |
| 270 |
USHORT Reserved1 : 2; |
| 271 |
} PhysicalLogicalSectorSize; |
| 272 |
USHORT InterSeekDelay; |
| 273 |
USHORT WorldWideName[4]; |
| 274 |
USHORT ReservedForWorldWideName128[4]; |
| 275 |
USHORT ReservedForTlcTechnicalReport; |
| 276 |
USHORT WordsPerLogicalSector[2]; |
| 277 |
struct { |
| 278 |
USHORT ReservedForDrqTechnicalReport : 1; |
| 279 |
USHORT WriteReadVerify : 1; |
| 280 |
USHORT WriteUncorrectableExt : 1; |
| 281 |
USHORT ReadWriteLogDmaExt : 1; |
| 282 |
USHORT DownloadMicrocodeMode3 : 1; |
| 283 |
USHORT FreefallControl : 1; |
| 284 |
USHORT SenseDataReporting : 1; |
| 285 |
USHORT ExtendedPowerConditions : 1; |
| 286 |
USHORT Reserved0 : 6; |
| 287 |
USHORT WordValid : 2; |
| 288 |
} CommandSetSupportExt; |
| 289 |
struct { |
| 290 |
USHORT ReservedForDrqTechnicalReport : 1; |
| 291 |
USHORT WriteReadVerify : 1; |
| 292 |
USHORT WriteUncorrectableExt : 1; |
| 293 |
USHORT ReadWriteLogDmaExt : 1; |
| 294 |
USHORT DownloadMicrocodeMode3 : 1; |
| 295 |
USHORT FreefallControl : 1; |
| 296 |
USHORT SenseDataReporting : 1; |
| 297 |
USHORT ExtendedPowerConditions : 1; |
| 298 |
USHORT Reserved0 : 6; |
| 299 |
USHORT Reserved1 : 2; |
| 300 |
} CommandSetActiveExt; |
| 301 |
USHORT ReservedForExpandedSupportandActive[6]; |
| 302 |
USHORT MsnSupport : 2; |
| 303 |
USHORT ReservedWord127 : 14; |
| 304 |
struct { |
| 305 |
USHORT SecuritySupported : 1; |
| 306 |
USHORT SecurityEnabled : 1; |
| 307 |
USHORT SecurityLocked : 1; |
| 308 |
USHORT SecurityFrozen : 1; |
| 309 |
USHORT SecurityCountExpired : 1; |
| 310 |
USHORT EnhancedSecurityEraseSupported : 1; |
| 311 |
USHORT Reserved0 : 2; |
| 312 |
USHORT SecurityLevel : 1; |
| 313 |
USHORT Reserved1 : 7; |
| 314 |
} SecurityStatus; |
| 315 |
USHORT ReservedWord129[31]; |
| 316 |
struct { |
| 317 |
USHORT MaximumCurrentInMA : 12; |
| 318 |
USHORT CfaPowerMode1Disabled : 1; |
| 319 |
USHORT CfaPowerMode1Required : 1; |
| 320 |
USHORT Reserved0 : 1; |
| 321 |
USHORT Word160Supported : 1; |
| 322 |
} CfaPowerMode1; |
| 323 |
USHORT ReservedForCfaWord161[7]; |
| 324 |
USHORT NominalFormFactor : 4; |
| 325 |
USHORT ReservedWord168 : 12; |
| 326 |
struct { |
| 327 |
USHORT SupportsTrim : 1; |
| 328 |
USHORT Reserved0 : 15; |
| 329 |
} DataSetManagementFeature; |
| 330 |
USHORT AdditionalProductID[4]; |
| 331 |
USHORT ReservedForCfaWord174[2]; |
| 332 |
USHORT CurrentMediaSerialNumber[30]; |
| 333 |
struct { |
| 334 |
USHORT Supported : 1; |
| 335 |
USHORT Reserved0 : 1; |
| 336 |
USHORT WriteSameSuported : 1; |
| 337 |
USHORT ErrorRecoveryControlSupported : 1; |
| 338 |
USHORT FeatureControlSuported : 1; |
| 339 |
USHORT DataTablesSuported : 1; |
| 340 |
USHORT Reserved1 : 6; |
| 341 |
USHORT VendorSpecific : 4; |
| 342 |
} SCTCommandTransport; |
| 343 |
USHORT ReservedWord207[2]; |
| 344 |
struct { |
| 345 |
USHORT AlignmentOfLogicalWithinPhysical : 14; |
| 346 |
USHORT Word209Supported : 1; |
| 347 |
USHORT Reserved0 : 1; |
| 348 |
} BlockAlignment; |
| 349 |
USHORT WriteReadVerifySectorCountMode3Only[2]; |
| 350 |
USHORT WriteReadVerifySectorCountMode2Only[2]; |
| 351 |
struct { |
| 352 |
USHORT NVCachePowerModeEnabled : 1; |
| 353 |
USHORT Reserved0 : 3; |
| 354 |
USHORT NVCacheFeatureSetEnabled : 1; |
| 355 |
USHORT Reserved1 : 3; |
| 356 |
USHORT NVCachePowerModeVersion : 4; |
| 357 |
USHORT NVCacheFeatureSetVersion : 4; |
| 358 |
} NVCacheCapabilities; |
| 359 |
USHORT NVCacheSizeLSW; |
| 360 |
USHORT NVCacheSizeMSW; |
| 361 |
USHORT NominalMediaRotationRate; |
| 362 |
USHORT ReservedWord218; |
| 363 |
struct { |
| 364 |
UCHAR NVCacheEstimatedTimeToSpinUpInSeconds; |
| 365 |
UCHAR Reserved; |
| 366 |
} NVCacheOptions; |
| 367 |
USHORT WriteReadVerifySectorCountMode : 8; |
| 368 |
USHORT ReservedWord220 : 8; |
| 369 |
USHORT ReservedWord221; |
| 370 |
struct { |
| 371 |
USHORT MajorVersion : 12; |
| 372 |
USHORT TransportType : 4; |
| 373 |
} TransportMajorVersion; |
| 374 |
USHORT TransportMinorVersion; |
| 375 |
USHORT ReservedWord224[6]; |
| 376 |
ULONG ExtendedNumberOfUserAddressableSectors[2]; |
| 377 |
USHORT MinBlocksPerDownloadMicrocodeMode03; |
| 378 |
USHORT MaxBlocksPerDownloadMicrocodeMode03; |
| 379 |
USHORT ReservedWord236[19]; |
| 380 |
USHORT Signature : 8; |
| 381 |
USHORT CheckSum : 8; |
| 382 |
} IDENTIFY_DEVICE_DATA, *PIDENTIFY_DEVICE_DATA; |
| 383 |
|
| 384 |
typedef struct _IDENTIFY_PACKET_DATA { |
| 385 |
struct { |
| 386 |
USHORT PacketType : 2; |
| 387 |
USHORT IncompleteResponse : 1; |
| 388 |
USHORT Reserved1 : 2; |
| 389 |
USHORT DrqDelay : 2; |
| 390 |
USHORT RemovableMedia : 1; |
| 391 |
USHORT CommandPacketType : 5; |
| 392 |
USHORT Reserved2 : 1; |
| 393 |
USHORT DeviceType : 2; |
| 394 |
} GeneralConfiguration; |
| 395 |
USHORT ResevedWord1; |
| 396 |
USHORT UniqueConfiguration; |
| 397 |
USHORT ReservedWords3[7]; |
| 398 |
UCHAR SerialNumber[20]; |
| 399 |
USHORT ReservedWords20[3]; |
| 400 |
UCHAR FirmwareRevision[8]; |
| 401 |
UCHAR ModelNumber[40]; |
| 402 |
USHORT ReservedWords47[2]; |
| 403 |
struct { |
| 404 |
USHORT VendorSpecific : 8; |
| 405 |
USHORT DmaSupported : 1; |
| 406 |
USHORT LbaSupported : 1; |
| 407 |
USHORT IordyDisabled : 1; |
| 408 |
USHORT IordySupported : 1; |
| 409 |
USHORT Obsolete : 1; |
| 410 |
USHORT OverlapSupported : 1; |
| 411 |
USHORT QueuedCommandsSupported : 1; |
| 412 |
USHORT InterleavedDmaSupported : 1; |
| 413 |
USHORT DeviceSpecificStandbyTimerValueMin : 1; |
| 414 |
USHORT Obsolete1 : 1; |
| 415 |
USHORT ReservedWord50 : 12; |
| 416 |
USHORT WordValid : 2; |
| 417 |
} Capabilities; |
| 418 |
USHORT ObsoleteWords51[2]; |
| 419 |
USHORT TranslationFieldsValid : 3; |
| 420 |
USHORT Reserved3 : 13; |
| 421 |
USHORT ReservedWords54[8]; |
| 422 |
struct { |
| 423 |
USHORT UDMA0Supported : 1; |
| 424 |
USHORT UDMA1Supported : 1; |
| 425 |
USHORT UDMA2Supported : 1; |
| 426 |
USHORT UDMA3Supported : 1; |
| 427 |
USHORT UDMA4Supported : 1; |
| 428 |
USHORT UDMA5Supported : 1; |
| 429 |
USHORT UDMA6Supported : 1; |
| 430 |
USHORT MDMA0Supported : 1; |
| 431 |
USHORT MDMA1Supported : 1; |
| 432 |
USHORT MDMA2Supported : 1; |
| 433 |
USHORT DMASupported : 1; |
| 434 |
USHORT ReservedWord62 : 4; |
| 435 |
USHORT DMADIRBitRequired : 1; |
| 436 |
} DMADIR; |
| 437 |
USHORT MultiWordDMASupport : 8; |
| 438 |
USHORT MultiWordDMAActive : 8; |
| 439 |
USHORT AdvancedPIOModes : 8; |
| 440 |
USHORT ReservedByte64 : 8; |
| 441 |
USHORT MinimumMWXferCycleTime; |
| 442 |
USHORT RecommendedMWXferCycleTime; |
| 443 |
USHORT MinimumPIOCycleTime; |
| 444 |
USHORT MinimumPIOCycleTimeIORDY; |
| 445 |
USHORT ReservedWords69[2]; |
| 446 |
USHORT BusReleaseDelay; |
| 447 |
USHORT ServiceCommandDelay; |
| 448 |
USHORT ReservedWords73[2]; |
| 449 |
USHORT QueueDepth : 5; |
| 450 |
USHORT ReservedWord75 : 11; |
| 451 |
struct { |
| 452 |
USHORT Reserved0 : 1; |
| 453 |
USHORT SataGen1 : 1; |
| 454 |
USHORT SataGen2 : 1; |
| 455 |
USHORT SataGen3 : 1; |
| 456 |
USHORT Reserved1 : 5; |
| 457 |
USHORT HIPM : 1; |
| 458 |
USHORT PhyEvents : 1; |
| 459 |
USHORT Reserved3 : 2; |
| 460 |
USHORT HostAutoPS : 1; |
| 461 |
USHORT DeviceAutoPS : 1; |
| 462 |
USHORT Reserved4 : 1; |
| 463 |
USHORT Reserved5 : 1; |
| 464 |
USHORT CurrentSpeed : 3; |
| 465 |
USHORT SlimlineDeviceAttention : 1; |
| 466 |
USHORT HostEnvironmentDetect : 1; |
| 467 |
USHORT Reserved : 10; |
| 468 |
} SerialAtaCapabilities; |
| 469 |
struct { |
| 470 |
USHORT Reserved0 : 1; |
| 471 |
USHORT Reserved1 : 2; |
| 472 |
USHORT DIPM : 1; |
| 473 |
USHORT Reserved2 : 1; |
| 474 |
USHORT AsynchronousNotification : 1; |
| 475 |
USHORT SoftwareSettingsPreservation : 1; |
| 476 |
USHORT Reserved3 : 9; |
| 477 |
} SerialAtaFeaturesSupported; |
| 478 |
struct { |
| 479 |
USHORT Reserved0 : 1; |
| 480 |
USHORT Reserved1 : 2; |
| 481 |
USHORT DIPM : 1; |
| 482 |
USHORT Reserved2 : 1; |
| 483 |
USHORT AsynchronousNotification : 1; |
| 484 |
USHORT SoftwareSettingsPreservation : 1; |
| 485 |
USHORT DeviceAutoPS : 1; |
| 486 |
USHORT Reserved3 : 8; |
| 487 |
} SerialAtaFeaturesEnabled; |
| 488 |
USHORT MajorRevision; |
| 489 |
USHORT MinorRevision; |
| 490 |
struct { |
| 491 |
USHORT SmartCommands : 1; |
| 492 |
USHORT SecurityMode : 1; |
| 493 |
USHORT RemovableMedia : 1; |
| 494 |
USHORT PowerManagement : 1; |
| 495 |
USHORT PacketCommands : 1; |
| 496 |
USHORT WriteCache : 1; |
| 497 |
USHORT LookAhead : 1; |
| 498 |
USHORT ReleaseInterrupt : 1; |
| 499 |
USHORT ServiceInterrupt : 1; |
| 500 |
USHORT DeviceReset : 1; |
| 501 |
USHORT HostProtectedArea : 1; |
| 502 |
USHORT Obsolete1 : 1; |
| 503 |
USHORT WriteBuffer : 1; |
| 504 |
USHORT ReadBuffer : 1; |
| 505 |
USHORT Nop : 1; |
| 506 |
USHORT Obsolete2 : 1; |
| 507 |
USHORT DownloadMicrocode : 1; |
| 508 |
USHORT Reserved1 : 2; |
| 509 |
USHORT AdvancedPm : 1; |
| 510 |
USHORT Msn : 1; |
| 511 |
USHORT PowerUpInStandby : 1; |
| 512 |
USHORT ManualPowerUp : 1; |
| 513 |
USHORT Reserved2 : 1; |
| 514 |
USHORT SetMax : 1; |
| 515 |
USHORT Reserved3 : 3; |
| 516 |
USHORT FlushCache : 1; |
| 517 |
USHORT Reserved4 : 1; |
| 518 |
USHORT WordValid : 2; |
| 519 |
} CommandSetSupport; |
| 520 |
struct { |
| 521 |
USHORT Reserved0 : 5; |
| 522 |
USHORT GpLogging : 1; |
| 523 |
USHORT Reserved1 : 2; |
| 524 |
USHORT WWN64Bit : 1; |
| 525 |
USHORT Reserved2 : 5; |
| 526 |
USHORT WordValid : 2; |
| 527 |
} CommandSetSupportExt; |
| 528 |
struct { |
| 529 |
USHORT SmartCommands : 1; |
| 530 |
USHORT SecurityMode : 1; |
| 531 |
USHORT RemovableMedia : 1; |
| 532 |
USHORT PowerManagement : 1; |
| 533 |
USHORT PacketCommands : 1; |
| 534 |
USHORT WriteCache : 1; |
| 535 |
USHORT LookAhead : 1; |
| 536 |
USHORT ReleaseInterrupt : 1; |
| 537 |
USHORT ServiceInterrupt : 1; |
| 538 |
USHORT DeviceReset : 1; |
| 539 |
USHORT HostProtectedArea : 1; |
| 540 |
USHORT Obsolete1 : 1; |
| 541 |
USHORT WriteBuffer : 1; |
| 542 |
USHORT ReadBuffer : 1; |
| 543 |
USHORT Nop : 1; |
| 544 |
USHORT Obsolete2 : 1; |
| 545 |
USHORT DownloadMicrocode : 1; |
| 546 |
USHORT Reserved1 : 2; |
| 547 |
USHORT AdvancedPm : 1; |
| 548 |
USHORT Msn : 1; |
| 549 |
USHORT PowerUpInStandby : 1; |
| 550 |
USHORT ManualPowerUp : 1; |
| 551 |
USHORT Reserved2 : 1; |
| 552 |
USHORT SetMax : 1; |
| 553 |
USHORT Reserved3 : 3; |
| 554 |
USHORT FlushCache : 1; |
| 555 |
USHORT Reserved : 3; |
| 556 |
} CommandSetActive; |
| 557 |
struct { |
| 558 |
USHORT Reserved0 : 5; |
| 559 |
USHORT GpLogging : 1; |
| 560 |
USHORT Reserved1 : 2; |
| 561 |
USHORT WWN64Bit : 1; |
| 562 |
USHORT Reserved2 : 5; |
| 563 |
USHORT WordValid : 2; |
| 564 |
} CommandSetActiveExt; |
| 565 |
USHORT UltraDMASupport : 8; |
| 566 |
USHORT UltraDMAActive : 8; |
| 567 |
USHORT TimeRequiredForNormalEraseModeSecurityEraseUnit; |
| 568 |
USHORT TimeRequiredForEnhancedEraseModeSecurityEraseUnit; |
| 569 |
USHORT CurrentAPMLevel; |
| 570 |
USHORT MasterPasswordID; |
| 571 |
USHORT HardwareResetResult; |
| 572 |
USHORT ReservedWords94[14]; |
| 573 |
USHORT WorldWideName[4]; |
| 574 |
USHORT ReservedWords112[13]; |
| 575 |
USHORT AtapiZeroByteCount; |
| 576 |
USHORT ReservedWord126; |
| 577 |
USHORT MsnSupport : 2; |
| 578 |
USHORT ReservedWord127 : 14; |
| 579 |
USHORT SecurityStatus; |
| 580 |
USHORT VendorSpecific[31]; |
| 581 |
USHORT ReservedWord160[16]; |
| 582 |
USHORT ReservedWord176[46]; |
| 583 |
struct { |
| 584 |
USHORT MajorVersion : 12; |
| 585 |
USHORT TransportType : 4; |
| 586 |
} TransportMajorVersion; |
| 587 |
USHORT TransportMinorVersion; |
| 588 |
USHORT ReservedWord224[31]; |
| 589 |
USHORT Signature : 8; |
| 590 |
USHORT CheckSum : 8; |
| 591 |
} IDENTIFY_PACKET_DATA, *PIDENTIFY_PACKET_DATA; |
| 592 |
|
| 593 |
typedef struct _REGISTER_FIS { |
| 594 |
UCHAR FisType; |
| 595 |
UCHAR Reserved0 : 7; |
| 596 |
UCHAR CmdReg : 1; |
| 597 |
UCHAR Command; |
| 598 |
UCHAR Features; |
| 599 |
UCHAR SectorNumber; |
| 600 |
UCHAR CylinderLow; |
| 601 |
UCHAR CylinderHigh; |
| 602 |
UCHAR DeviceHead; |
| 603 |
UCHAR SectorNumberExp; |
| 604 |
UCHAR CylinderLowExp; |
| 605 |
UCHAR CylinderHighExp; |
| 606 |
UCHAR FeaturesExp; |
| 607 |
UCHAR SectorCount; |
| 608 |
UCHAR SectorCountExp; |
| 609 |
UCHAR Reserved2; |
| 610 |
UCHAR Control; |
| 611 |
ULONG Reserved3; |
| 612 |
} REGISTER_FIS, *PREGISTER_FIS; |
| 613 |
|
| 614 |
typedef union _ATA_HYBRID_INFO_FIELDS { |
| 615 |
_ANONYMOUS_STRUCT struct { |
| 616 |
UCHAR HybridPriority : 4; |
| 617 |
UCHAR Reserved0 : 1; |
| 618 |
UCHAR InfoValid : 1; |
| 619 |
UCHAR Reserved1 : 2; |
| 620 |
} DUMMYSTRUCTNAME; |
| 621 |
UCHAR AsUchar; |
| 622 |
} ATA_HYBRID_INFO_FIELDS, *PATA_HYBRID_INFO_FIELDS; |
| 623 |
|
| 624 |
typedef struct _DEVICE_SET_PASSWORD { |
| 625 |
struct { |
| 626 |
USHORT PasswordIdentifier : 1; |
| 627 |
USHORT Reserved1 : 7; |
| 628 |
USHORT MasterPasswordCapability : 1; |
| 629 |
USHORT Reserved2 : 7; |
| 630 |
} ControlWord; |
| 631 |
USHORT Password[16]; |
| 632 |
USHORT MasterPasswordIdentifier; |
| 633 |
USHORT Reserved[238]; |
| 634 |
} DEVICE_SET_PASSWORD, *PDEVICE_SET_PASSWORD; |
| 635 |
|
| 636 |
typedef struct _IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER { |
| 637 |
ULONGLONG RevisionNumber : 16; |
| 638 |
ULONGLONG PageNumber : 8; |
| 639 |
ULONGLONG Reserved : 39; |
| 640 |
ULONGLONG Valid : 1; |
| 641 |
} IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER, *PIDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER; |
| 642 |
|
| 643 |
typedef struct _IDENTIFY_DEVICE_DATA_LOG_PAGE_SUPPORTED_CAPABILITIES { |
| 644 |
IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER Header; |
| 645 |
struct { |
| 646 |
ULONGLONG WRV : 1; |
| 647 |
ULONGLONG WriteUncorrectable : 1; |
| 648 |
ULONGLONG GplDma : 1; |
| 649 |
ULONGLONG DmMode3 : 1; |
| 650 |
ULONGLONG FreeFall : 1; |
| 651 |
ULONGLONG SenseData : 1; |
| 652 |
ULONGLONG EPC : 1; |
| 653 |
ULONGLONG SmartErrorLogging : 1; |
| 654 |
ULONGLONG SmartSelfTest : 1; |
| 655 |
ULONGLONG Reserved9 : 1; |
| 656 |
ULONGLONG Streaming : 1; |
| 657 |
ULONGLONG GPL : 1; |
| 658 |
ULONGLONG WriteFuaExt : 1; |
| 659 |
ULONGLONG Unload : 1; |
| 660 |
ULONGLONG DownloadMicrocode : 1; |
| 661 |
ULONGLONG Reserved15ForCFA : 1; |
| 662 |
ULONGLONG APM : 1; |
| 663 |
ULONGLONG PUIS : 1; |
| 664 |
ULONGLONG SpinUp : 1; |
| 665 |
ULONGLONG Reserved19 : 1; |
| 666 |
ULONGLONG Cmd48Bit : 1; |
| 667 |
ULONGLONG Reserved21 : 1; |
| 668 |
ULONGLONG FlushCacheExt : 1; |
| 669 |
ULONGLONG Smart : 1; |
| 670 |
ULONGLONG VolatileWriteCache : 1; |
| 671 |
ULONGLONG ReadLookahead : 1; |
| 672 |
ULONGLONG Reserved26 : 1; |
| 673 |
ULONGLONG WriteBuffer : 1; |
| 674 |
ULONGLONG ReadBuffer : 1; |
| 675 |
ULONGLONG NOP : 1; |
| 676 |
ULONGLONG Reserved30 : 1; |
| 677 |
ULONGLONG RZAT : 1; |
| 678 |
ULONGLONG Cmd28bit : 1; |
| 679 |
ULONGLONG DownloadMicrocodeDma : 1; |
| 680 |
ULONGLONG Reserved34 : 1; |
| 681 |
ULONGLONG WriteBufferDma : 1; |
| 682 |
ULONGLONG ReadBufferDma : 1; |
| 683 |
ULONGLONG Reserved37 : 1; |
| 684 |
ULONGLONG LpsMisalignmentReporting : 1; |
| 685 |
ULONGLONG DRAT : 1; |
| 686 |
ULONGLONG Reserved40ForCFA : 1; |
| 687 |
ULONGLONG AmaxAddr : 1; |
| 688 |
ULONGLONG SetEpcPowerSource : 1; |
| 689 |
ULONGLONG LowPowerStandby : 1; |
| 690 |
ULONGLONG DSN : 1; |
| 691 |
ULONGLONG RequestSenseDeviceFault : 1; |
| 692 |
ULONGLONG Reserved : 17; |
| 693 |
ULONGLONG Valid : 1; |
| 694 |
} SupportedCapabilities; |
| 695 |
struct { |
| 696 |
ULONGLONG DmMinTransferSize : 16; |
| 697 |
ULONGLONG DmMaxTransferSize : 16; |
| 698 |
ULONGLONG DmOffsetsImmediateSupported : 1; |
| 699 |
ULONGLONG DmImmediateSupported : 1; |
| 700 |
ULONGLONG DmOffsetsDeferredSupported : 1; |
| 701 |
ULONGLONG Reserved : 28; |
| 702 |
ULONGLONG Valid : 1; |
| 703 |
} DownloadMicrocodeCapabilities; |
| 704 |
struct { |
| 705 |
ULONGLONG Rate : 16; |
| 706 |
ULONGLONG Reserved : 47; |
| 707 |
ULONGLONG Valid : 1; |
| 708 |
} NominalMediaRotationRate; |
| 709 |
struct { |
| 710 |
ULONGLONG Factor : 4; |
| 711 |
ULONGLONG Reserved : 59; |
| 712 |
ULONGLONG Valid : 1; |
| 713 |
} NominalFormFactor; |
| 714 |
struct { |
| 715 |
ULONGLONG Count : 32; |
| 716 |
ULONGLONG Reserved : 31; |
| 717 |
ULONGLONG Valid : 1; |
| 718 |
} WRVSectorCountMode3; |
| 719 |
struct { |
| 720 |
ULONGLONG Count : 32; |
| 721 |
ULONGLONG Reserved : 31; |
| 722 |
ULONGLONG Valid : 1; |
| 723 |
} WRVSectorCountMode2; |
| 724 |
struct { |
| 725 |
ULONGLONG Name; |
| 726 |
ULONGLONG Reserved : 63; |
| 727 |
ULONGLONG Valid : 1; |
| 728 |
} WorldWideName; |
| 729 |
struct { |
| 730 |
ULONGLONG TrimSupported : 1; |
| 731 |
ULONGLONG Reserved : 62; |
| 732 |
ULONGLONG Valid : 1; |
| 733 |
} DataSetManagement; |
| 734 |
struct { |
| 735 |
ULONGLONG UtilizationA : 32; |
| 736 |
ULONGLONG UtilizationB : 32; |
| 737 |
ULONGLONG Reserved0 : 32; |
| 738 |
ULONGLONG UtilizationInterval : 8; |
| 739 |
ULONGLONG UtilizationUnit : 8; |
| 740 |
ULONGLONG UtilizationType : 8; |
| 741 |
ULONGLONG Reserved1 : 7; |
| 742 |
ULONGLONG Valid : 1; |
| 743 |
} UtilizationPerUnitTime; |
| 744 |
struct { |
| 745 |
ULONGLONG DateTimeRateBasisSupported : 1; |
| 746 |
ULONGLONG Reserved0 : 3; |
| 747 |
ULONGLONG PowerOnHoursRateBasisSupported : 1; |
| 748 |
ULONGLONG Reserved1 : 3; |
| 749 |
ULONGLONG SincePowerOnRateBasisSupported : 1; |
| 750 |
ULONGLONG Reserved2 : 14; |
| 751 |
ULONGLONG SettingRateBasisSupported : 1; |
| 752 |
ULONGLONG Reserved3 : 39; |
| 753 |
ULONGLONG Valid : 1; |
| 754 |
} UtilizationUsageRateSupport; |
| 755 |
struct { |
| 756 |
ULONGLONG Zoned : 2; |
| 757 |
ULONGLONG Reserved : 61; |
| 758 |
ULONGLONG Valid : 1; |
| 759 |
} ZonedCapabilities; |
| 760 |
struct { |
| 761 |
ULONGLONG ReportZonesExtSupported : 1; |
| 762 |
ULONGLONG NonDataOpenZoneExtSupported : 1; |
| 763 |
ULONGLONG NonDataCloseZoneExtSupported : 1; |
| 764 |
ULONGLONG NonDataFinishZoneExtSupported : 1; |
| 765 |
ULONGLONG NonDataResetWritePointersExtSupported : 1; |
| 766 |
ULONGLONG Reserved : 58; |
| 767 |
ULONGLONG Valid : 1; |
| 768 |
} SupportedZacCapabilities; |
| 769 |
UCHAR Reserved[392]; |
| 770 |
} IDENTIFY_DEVICE_DATA_LOG_PAGE_SUPPORTED_CAPABILITIES, *PIDENTIFY_DEVICE_DATA_LOG_PAGE_SUPPORTED_CAPABILITIES; |
| 771 |
|
| 772 |
typedef struct _IDENTIFY_DEVICE_DATA_LOG_PAGE_ZONED_DEVICE_INFO { |
| 773 |
IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER Header; |
| 774 |
struct { |
| 775 |
ULONGLONG URSWRZ : 1; |
| 776 |
ULONGLONG Reserved : 62; |
| 777 |
ULONGLONG Valid : 1; |
| 778 |
} ZonedDeviceCapabilities; |
| 779 |
struct { |
| 780 |
ULONGLONG Reserved : 63; |
| 781 |
ULONGLONG Valid : 1; |
| 782 |
} ZonedDeviceSettings; |
| 783 |
struct { |
| 784 |
ULONGLONG Number : 32; |
| 785 |
ULONGLONG Reserved : 31; |
| 786 |
ULONGLONG Valid : 1; |
| 787 |
} OptimalNumberOfOpenSequentialWritePreferredZones; |
| 788 |
struct { |
| 789 |
ULONGLONG Number : 32; |
| 790 |
ULONGLONG Reserved : 31; |
| 791 |
ULONGLONG Valid : 1; |
| 792 |
} OptimalNumberOfNonSequentiallyWrittenSequentialWritePreferredZones; |
| 793 |
struct { |
| 794 |
ULONGLONG Number : 32; |
| 795 |
ULONGLONG Reserved : 31; |
| 796 |
ULONGLONG Valid : 1; |
| 797 |
} MaxNumberOfOpenSequentialWriteRequiredZones; |
| 798 |
struct { |
| 799 |
ULONGLONG ZacMinorVersion : 16; |
| 800 |
ULONGLONG Reserved0 : 47; |
| 801 |
ULONGLONG Valid : 1; |
| 802 |
} Version; |
| 803 |
UCHAR Reserved[456]; |
| 804 |
} IDENTIFY_DEVICE_DATA_LOG_PAGE_ZONED_DEVICE_INFO, *PIDENTIFY_DEVICE_DATA_LOG_PAGE_ZONED_DEVICE_INFO; |
| 805 |
|
| 806 |
typedef struct _CURRENT_DEVICE_INTERNAL_STATUS_LOG { |
| 807 |
UCHAR LogAddress; |
| 808 |
UCHAR Reserved0[3]; |
| 809 |
ULONG OrganizationID; |
| 810 |
USHORT Area1LastLogPage; |
| 811 |
USHORT Area2LastLogPage; |
| 812 |
USHORT Area3LastLogPage; |
| 813 |
UCHAR Reserved2[368]; |
| 814 |
UCHAR SavedDataAvailable; |
| 815 |
UCHAR SavedDataGenerationNumber; |
| 816 |
UCHAR ReasonIdentifier[128]; |
| 817 |
} CURRENT_DEVICE_INTERNAL_STATUS_LOG, *PCURRENT_DEVICE_INTERNAL_STATUS_LOG; |
| 818 |
|
| 819 |
typedef struct _SAVED_DEVICE_INTERNAL_STATUS_LOG { |
| 820 |
UCHAR LogAddress; |
| 821 |
UCHAR Reserved0[3]; |
| 822 |
ULONG OrganizationID; |
| 823 |
USHORT Area1LastLogPage; |
| 824 |
USHORT Area2LastLogPage; |
| 825 |
USHORT Area3LastLogPage; |
| 826 |
UCHAR Reserved2[368]; |
| 827 |
UCHAR SavedDataAvailable; |
| 828 |
UCHAR GenerationNumber; |
| 829 |
UCHAR ReasonIdentifier[128]; |
| 830 |
} SAVED_DEVICE_INTERNAL_STATUS_LOG, *PSAVED_DEVICE_INTERNAL_STATUS_LOG; |
| 831 |
|
| 832 |
typedef struct _DEVICE_STATISTICS_LOG_PAGE_HEADER { |
| 833 |
ULONGLONG RevisionNumber : 16; |
| 834 |
ULONGLONG PageNumber : 8; |
| 835 |
ULONGLONG Reserved : 40; |
| 836 |
} DEVICE_STATISTICS_LOG_PAGE_HEADER, *PDEVICE_STATISTICS_LOG_PAGE_HEADER; |
| 837 |
|
| 838 |
typedef struct _GP_LOG_SUPPORTED_DEVICE_STATISTICS { |
| 839 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 840 |
UCHAR NumberOfEntries; |
| 841 |
UCHAR LogPageNumbers[503]; |
| 842 |
} GP_LOG_SUPPORTED_DEVICE_STATISTICS, *PGP_LOG_SUPPORTED_DEVICE_STATISTICS; |
| 843 |
|
| 844 |
typedef struct _GP_LOG_GENERAL_STATISTICS { |
| 845 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 846 |
struct { |
| 847 |
ULONGLONG Count : 32; |
| 848 |
ULONGLONG Reserved : 24; |
| 849 |
ULONGLONG ReservedFlags : 3; |
| 850 |
ULONGLONG MonitoredConditionMet : 1; |
| 851 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 852 |
ULONGLONG Normalized : 1; |
| 853 |
ULONGLONG ValidValue : 1; |
| 854 |
ULONGLONG Supported : 1; |
| 855 |
} LifeTimePoweronResets; |
| 856 |
struct { |
| 857 |
ULONGLONG Count : 32; |
| 858 |
ULONGLONG Reserved : 24; |
| 859 |
ULONGLONG ReservedFlags : 3; |
| 860 |
ULONGLONG MonitoredConditionMet : 1; |
| 861 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 862 |
ULONGLONG Normalized : 1; |
| 863 |
ULONGLONG ValidValue : 1; |
| 864 |
ULONGLONG Supported : 1; |
| 865 |
} PoweronHours; |
| 866 |
struct { |
| 867 |
ULONGLONG Count : 48; |
| 868 |
ULONGLONG Reserved : 8; |
| 869 |
ULONGLONG ReservedFlags : 3; |
| 870 |
ULONGLONG MonitoredConditionMet : 1; |
| 871 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 872 |
ULONGLONG Normalized : 1; |
| 873 |
ULONGLONG ValidValue : 1; |
| 874 |
ULONGLONG Supported : 1; |
| 875 |
} LogicalSectorsWritten; |
| 876 |
struct { |
| 877 |
ULONGLONG Count : 48; |
| 878 |
ULONGLONG Reserved : 8; |
| 879 |
ULONGLONG ReservedFlags : 3; |
| 880 |
ULONGLONG MonitoredConditionMet : 1; |
| 881 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 882 |
ULONGLONG Normalized : 1; |
| 883 |
ULONGLONG ValidValue : 1; |
| 884 |
ULONGLONG Supported : 1; |
| 885 |
} WriteCommandCount; |
| 886 |
struct { |
| 887 |
ULONGLONG Count : 48; |
| 888 |
ULONGLONG Reserved : 8; |
| 889 |
ULONGLONG ReservedFlags : 3; |
| 890 |
ULONGLONG MonitoredConditionMet : 1; |
| 891 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 892 |
ULONGLONG Normalized : 1; |
| 893 |
ULONGLONG ValidValue : 1; |
| 894 |
ULONGLONG Supported : 1; |
| 895 |
} LogicalSectorsRead; |
| 896 |
struct { |
| 897 |
ULONGLONG Count : 48; |
| 898 |
ULONGLONG Reserved : 8; |
| 899 |
ULONGLONG ReservedFlags : 3; |
| 900 |
ULONGLONG MonitoredConditionMet : 1; |
| 901 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 902 |
ULONGLONG Normalized : 1; |
| 903 |
ULONGLONG ValidValue : 1; |
| 904 |
ULONGLONG Supported : 1; |
| 905 |
} ReadCommandCount; |
| 906 |
struct { |
| 907 |
ULONGLONG TimeStamp : 48; |
| 908 |
ULONGLONG Reserved : 8; |
| 909 |
ULONGLONG ReservedFlags : 3; |
| 910 |
ULONGLONG MonitoredConditionMet : 1; |
| 911 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 912 |
ULONGLONG Normalized : 1; |
| 913 |
ULONGLONG ValidValue : 1; |
| 914 |
ULONGLONG Supported : 1; |
| 915 |
} DateAndTime; |
| 916 |
struct { |
| 917 |
ULONGLONG Count : 32; |
| 918 |
ULONGLONG Reserved : 24; |
| 919 |
ULONGLONG ReservedFlags : 3; |
| 920 |
ULONGLONG MonitoredConditionMet : 1; |
| 921 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 922 |
ULONGLONG Normalized : 1; |
| 923 |
ULONGLONG ValidValue : 1; |
| 924 |
ULONGLONG Supported : 1; |
| 925 |
} PendingErrorCount; |
| 926 |
struct { |
| 927 |
ULONGLONG Value : 16; |
| 928 |
ULONGLONG Reserved : 40; |
| 929 |
ULONGLONG ReservedFlags : 3; |
| 930 |
ULONGLONG MonitoredConditionMet : 1; |
| 931 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 932 |
ULONGLONG Normalized : 1; |
| 933 |
ULONGLONG ValidValue : 1; |
| 934 |
ULONGLONG Supported : 1; |
| 935 |
} WorkloadUtilizaton; |
| 936 |
struct { |
| 937 |
ULONGLONG Value : 8; |
| 938 |
ULONGLONG Reserved0 : 28; |
| 939 |
ULONGLONG RateBasis : 4; |
| 940 |
ULONGLONG RateValidity : 8; |
| 941 |
ULONGLONG Reserved1 : 8; |
| 942 |
ULONGLONG ReservedFlags : 3; |
| 943 |
ULONGLONG MonitoredConditionMet : 1; |
| 944 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 945 |
ULONGLONG Normalized : 1; |
| 946 |
ULONGLONG ValidValue : 1; |
| 947 |
ULONGLONG Supported : 1; |
| 948 |
} UtilizationUsageRate; |
| 949 |
UCHAR Reserved[424]; |
| 950 |
} GP_LOG_GENERAL_STATISTICS, *PGP_LOG_GENERAL_STATISTICS; |
| 951 |
|
| 952 |
typedef struct _GP_LOG_FREE_FALL_STATISTICS { |
| 953 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 954 |
struct { |
| 955 |
ULONGLONG Count : 32; |
| 956 |
ULONGLONG Reserved : 24; |
| 957 |
ULONGLONG ReservedFlags : 3; |
| 958 |
ULONGLONG MonitoredConditionMet : 1; |
| 959 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 960 |
ULONGLONG Normalized : 1; |
| 961 |
ULONGLONG ValidValue : 1; |
| 962 |
ULONGLONG Supported : 1; |
| 963 |
} NumberofFreeFallEventsDetected; |
| 964 |
struct { |
| 965 |
ULONGLONG Count : 32; |
| 966 |
ULONGLONG Reserved : 24; |
| 967 |
ULONGLONG ReservedFlags : 3; |
| 968 |
ULONGLONG MonitoredConditionMet : 1; |
| 969 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 970 |
ULONGLONG Normalized : 1; |
| 971 |
ULONGLONG ValidValue : 1; |
| 972 |
ULONGLONG Supported : 1; |
| 973 |
} OverlimitShockEvents; |
| 974 |
UCHAR Reserved[488]; |
| 975 |
} GP_LOG_FREE_FALL_STATISTICS, *PGP_LOG_FREE_FALL_STATISTICS; |
| 976 |
|
| 977 |
typedef struct _GP_LOG_ROTATING_MEDIA_STATISTICS { |
| 978 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 979 |
struct { |
| 980 |
ULONGLONG Count : 32; |
| 981 |
ULONGLONG Reserved : 24; |
| 982 |
ULONGLONG ReservedFlags : 3; |
| 983 |
ULONGLONG MonitoredConditionMet : 1; |
| 984 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 985 |
ULONGLONG Normalized : 1; |
| 986 |
ULONGLONG ValidValue : 1; |
| 987 |
ULONGLONG Supported : 1; |
| 988 |
} SpindleMotorPoweronHours; |
| 989 |
struct { |
| 990 |
ULONGLONG Count : 32; |
| 991 |
ULONGLONG Reserved : 24; |
| 992 |
ULONGLONG ReservedFlags : 3; |
| 993 |
ULONGLONG MonitoredConditionMet : 1; |
| 994 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 995 |
ULONGLONG Normalized : 1; |
| 996 |
ULONGLONG ValidValue : 1; |
| 997 |
ULONGLONG Supported : 1; |
| 998 |
} HeadFlyingHours; |
| 999 |
struct { |
| 1000 |
ULONGLONG Count : 32; |
| 1001 |
ULONGLONG Reserved : 24; |
| 1002 |
ULONGLONG ReservedFlags : 3; |
| 1003 |
ULONGLONG MonitoredConditionMet : 1; |
| 1004 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1005 |
ULONGLONG Normalized : 1; |
| 1006 |
ULONGLONG ValidValue : 1; |
| 1007 |
ULONGLONG Supported : 1; |
| 1008 |
} HeadLoadEvents; |
| 1009 |
struct { |
| 1010 |
ULONGLONG Count : 32; |
| 1011 |
ULONGLONG Reserved : 24; |
| 1012 |
ULONGLONG ReservedFlags : 3; |
| 1013 |
ULONGLONG MonitoredConditionMet : 1; |
| 1014 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1015 |
ULONGLONG Normalized : 1; |
| 1016 |
ULONGLONG ValidValue : 1; |
| 1017 |
ULONGLONG Supported : 1; |
| 1018 |
} NumberOfReallocatedLogicalSectors; |
| 1019 |
struct { |
| 1020 |
ULONGLONG Count : 32; |
| 1021 |
ULONGLONG Reserved : 24; |
| 1022 |
ULONGLONG ReservedFlags : 3; |
| 1023 |
ULONGLONG MonitoredConditionMet : 1; |
| 1024 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1025 |
ULONGLONG Normalized : 1; |
| 1026 |
ULONGLONG ValidValue : 1; |
| 1027 |
ULONGLONG Supported : 1; |
| 1028 |
} ReadRecoveryAttempts; |
| 1029 |
struct { |
| 1030 |
ULONGLONG Count : 32; |
| 1031 |
ULONGLONG Reserved : 24; |
| 1032 |
ULONGLONG ReservedFlags : 3; |
| 1033 |
ULONGLONG MonitoredConditionMet : 1; |
| 1034 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1035 |
ULONGLONG Normalized : 1; |
| 1036 |
ULONGLONG ValidValue : 1; |
| 1037 |
ULONGLONG Supported : 1; |
| 1038 |
} NumberOfMechanicalStartFailures; |
| 1039 |
struct { |
| 1040 |
ULONGLONG Count : 32; |
| 1041 |
ULONGLONG Reserved : 24; |
| 1042 |
ULONGLONG ReservedFlags : 3; |
| 1043 |
ULONGLONG MonitoredConditionMet : 1; |
| 1044 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1045 |
ULONGLONG Normalized : 1; |
| 1046 |
ULONGLONG ValidValue : 1; |
| 1047 |
ULONGLONG Supported : 1; |
| 1048 |
} NumberOfReallocationCandidateLogicalSectors; |
| 1049 |
struct { |
| 1050 |
ULONGLONG Count : 32; |
| 1051 |
ULONGLONG Reserved : 24; |
| 1052 |
ULONGLONG ReservedFlags : 3; |
| 1053 |
ULONGLONG MonitoredConditionMet : 1; |
| 1054 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1055 |
ULONGLONG Normalized : 1; |
| 1056 |
ULONGLONG ValidValue : 1; |
| 1057 |
ULONGLONG Supported : 1; |
| 1058 |
} NumberOfHighPriorityUnloadEvents; |
| 1059 |
UCHAR Reserved[440]; |
| 1060 |
} GP_LOG_ROTATING_MEDIA_STATISTICS, *PGP_LOG_ROTATING_MEDIA_STATISTICS; |
| 1061 |
|
| 1062 |
typedef struct _GP_LOG_GENERAL_ERROR_STATISTICS { |
| 1063 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 1064 |
struct { |
| 1065 |
ULONGLONG Count : 32; |
| 1066 |
ULONGLONG Reserved : 24; |
| 1067 |
ULONGLONG ReservedFlags : 3; |
| 1068 |
ULONGLONG MonitoredConditionMet : 1; |
| 1069 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1070 |
ULONGLONG Normalized : 1; |
| 1071 |
ULONGLONG ValidValue : 1; |
| 1072 |
ULONGLONG Supported : 1; |
| 1073 |
} NumberOfReportedUncorrectableErrors; |
| 1074 |
struct { |
| 1075 |
ULONGLONG Count : 32; |
| 1076 |
ULONGLONG Reserved : 24; |
| 1077 |
ULONGLONG ReservedFlags : 3; |
| 1078 |
ULONGLONG MonitoredConditionMet : 1; |
| 1079 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1080 |
ULONGLONG Normalized : 1; |
| 1081 |
ULONGLONG ValidValue : 1; |
| 1082 |
ULONGLONG Supported : 1; |
| 1083 |
} NumberOfResetsBetweenCommandAcceptanceAndCommandCompletion; |
| 1084 |
UCHAR Reserved[488]; |
| 1085 |
} GP_LOG_GENERAL_ERROR_STATISTICS, *PGP_LOG_GENERAL_ERROR_STATISTICS; |
| 1086 |
|
| 1087 |
typedef struct _GP_LOG_TEMPERATURE_STATISTICS { |
| 1088 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 1089 |
struct { |
| 1090 |
ULONGLONG Value : 8; |
| 1091 |
ULONGLONG Reserved : 48; |
| 1092 |
ULONGLONG ReservedFlags : 3; |
| 1093 |
ULONGLONG MonitoredConditionMet : 1; |
| 1094 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1095 |
ULONGLONG Normalized : 1; |
| 1096 |
ULONGLONG ValidValue : 1; |
| 1097 |
ULONGLONG Supported : 1; |
| 1098 |
} CurrentTemperature; |
| 1099 |
struct { |
| 1100 |
ULONGLONG Value : 8; |
| 1101 |
ULONGLONG Reserved : 48; |
| 1102 |
ULONGLONG ReservedFlags : 3; |
| 1103 |
ULONGLONG MonitoredConditionMet : 1; |
| 1104 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1105 |
ULONGLONG Normalized : 1; |
| 1106 |
ULONGLONG ValidValue : 1; |
| 1107 |
ULONGLONG Supported : 1; |
| 1108 |
} AverageShortTermTemperature; |
| 1109 |
struct { |
| 1110 |
ULONGLONG Value : 8; |
| 1111 |
ULONGLONG Reserved : 48; |
| 1112 |
ULONGLONG ReservedFlags : 3; |
| 1113 |
ULONGLONG MonitoredConditionMet : 1; |
| 1114 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1115 |
ULONGLONG Normalized : 1; |
| 1116 |
ULONGLONG ValidValue : 1; |
| 1117 |
ULONGLONG Supported : 1; |
| 1118 |
} AverageLongTermTemperature; |
| 1119 |
struct { |
| 1120 |
ULONGLONG Value : 8; |
| 1121 |
ULONGLONG Reserved : 48; |
| 1122 |
ULONGLONG ReservedFlags : 3; |
| 1123 |
ULONGLONG MonitoredConditionMet : 1; |
| 1124 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1125 |
ULONGLONG Normalized : 1; |
| 1126 |
ULONGLONG ValidValue : 1; |
| 1127 |
ULONGLONG Supported : 1; |
| 1128 |
} HighestTemperature; |
| 1129 |
struct { |
| 1130 |
ULONGLONG Value : 8; |
| 1131 |
ULONGLONG Reserved : 48; |
| 1132 |
ULONGLONG ReservedFlags : 3; |
| 1133 |
ULONGLONG MonitoredConditionMet : 1; |
| 1134 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1135 |
ULONGLONG Normalized : 1; |
| 1136 |
ULONGLONG ValidValue : 1; |
| 1137 |
ULONGLONG Supported : 1; |
| 1138 |
} LowestTemperature; |
| 1139 |
struct { |
| 1140 |
ULONGLONG Value : 8; |
| 1141 |
ULONGLONG Reserved : 48; |
| 1142 |
ULONGLONG ReservedFlags : 3; |
| 1143 |
ULONGLONG MonitoredConditionMet : 1; |
| 1144 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1145 |
ULONGLONG Normalized : 1; |
| 1146 |
ULONGLONG ValidValue : 1; |
| 1147 |
ULONGLONG Supported : 1; |
| 1148 |
} HighestAverageShortTermTemperature; |
| 1149 |
struct { |
| 1150 |
ULONGLONG Value : 8; |
| 1151 |
ULONGLONG Reserved : 48; |
| 1152 |
ULONGLONG ReservedFlags : 3; |
| 1153 |
ULONGLONG MonitoredConditionMet : 1; |
| 1154 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1155 |
ULONGLONG Normalized : 1; |
| 1156 |
ULONGLONG ValidValue : 1; |
| 1157 |
ULONGLONG Supported : 1; |
| 1158 |
} LowestAverageShortTermTemperature; |
| 1159 |
struct { |
| 1160 |
ULONGLONG Value : 8; |
| 1161 |
ULONGLONG Reserved : 48; |
| 1162 |
ULONGLONG ReservedFlags : 3; |
| 1163 |
ULONGLONG MonitoredConditionMet : 1; |
| 1164 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1165 |
ULONGLONG Normalized : 1; |
| 1166 |
ULONGLONG ValidValue : 1; |
| 1167 |
ULONGLONG Supported : 1; |
| 1168 |
} HighstAverageLongTermTemperature; |
| 1169 |
struct { |
| 1170 |
ULONGLONG Value : 8; |
| 1171 |
ULONGLONG Reserved : 48; |
| 1172 |
ULONGLONG ReservedFlags : 3; |
| 1173 |
ULONGLONG MonitoredConditionMet : 1; |
| 1174 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1175 |
ULONGLONG Normalized : 1; |
| 1176 |
ULONGLONG ValidValue : 1; |
| 1177 |
ULONGLONG Supported : 1; |
| 1178 |
} LowestAverageLongTermTemperature; |
| 1179 |
struct { |
| 1180 |
ULONGLONG Value : 8; |
| 1181 |
ULONGLONG Reserved : 48; |
| 1182 |
ULONGLONG ReservedFlags : 3; |
| 1183 |
ULONGLONG MonitoredConditionMet : 1; |
| 1184 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1185 |
ULONGLONG Normalized : 1; |
| 1186 |
ULONGLONG ValidValue : 1; |
| 1187 |
ULONGLONG Supported : 1; |
| 1188 |
} TimeInOverTemperature; |
| 1189 |
struct { |
| 1190 |
ULONGLONG Value : 8; |
| 1191 |
ULONGLONG Reserved : 48; |
| 1192 |
ULONGLONG ReservedFlags : 3; |
| 1193 |
ULONGLONG MonitoredConditionMet : 1; |
| 1194 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1195 |
ULONGLONG Normalized : 1; |
| 1196 |
ULONGLONG ValidValue : 1; |
| 1197 |
ULONGLONG Supported : 1; |
| 1198 |
} SpecifiedMaximumOperatingTemperature; |
| 1199 |
struct { |
| 1200 |
ULONGLONG Value : 8; |
| 1201 |
ULONGLONG Reserved : 48; |
| 1202 |
ULONGLONG ReservedFlags : 3; |
| 1203 |
ULONGLONG MonitoredConditionMet : 1; |
| 1204 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1205 |
ULONGLONG Normalized : 1; |
| 1206 |
ULONGLONG ValidValue : 1; |
| 1207 |
ULONGLONG Supported : 1; |
| 1208 |
} TimeInUnderTemperature; |
| 1209 |
struct { |
| 1210 |
ULONGLONG Value : 8; |
| 1211 |
ULONGLONG Reserved : 48; |
| 1212 |
ULONGLONG ReservedFlags : 3; |
| 1213 |
ULONGLONG MonitoredConditionMet : 1; |
| 1214 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1215 |
ULONGLONG Normalized : 1; |
| 1216 |
ULONGLONG ValidValue : 1; |
| 1217 |
ULONGLONG Supported : 1; |
| 1218 |
} SpecifiedMinimumOperatingTemperature; |
| 1219 |
UCHAR Reserved[400]; |
| 1220 |
} GP_LOG_TEMPERATURE_STATISTICS, *PGP_LOG_TEMPERATURE_STATISTICS; |
| 1221 |
|
| 1222 |
typedef struct _GP_LOG_TRANSPORT_STATISTICS { |
| 1223 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 1224 |
struct { |
| 1225 |
ULONGLONG Count : 8; |
| 1226 |
ULONGLONG Reserved : 48; |
| 1227 |
ULONGLONG ReservedFlags : 3; |
| 1228 |
ULONGLONG MonitoredConditionMet : 1; |
| 1229 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1230 |
ULONGLONG Normalized : 1; |
| 1231 |
ULONGLONG ValidValue : 1; |
| 1232 |
ULONGLONG Supported : 1; |
| 1233 |
} NumberOfHardwareResets; |
| 1234 |
struct { |
| 1235 |
ULONGLONG Count : 32; |
| 1236 |
ULONGLONG Reserved : 24; |
| 1237 |
ULONGLONG ReservedFlags : 3; |
| 1238 |
ULONGLONG MonitoredConditionMet : 1; |
| 1239 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1240 |
ULONGLONG Normalized : 1; |
| 1241 |
ULONGLONG ValidValue : 1; |
| 1242 |
ULONGLONG Supported : 1; |
| 1243 |
} NumberOfAsrEvents; |
| 1244 |
struct { |
| 1245 |
ULONGLONG Count : 32; |
| 1246 |
ULONGLONG Reserved : 24; |
| 1247 |
ULONGLONG ReservedFlags : 3; |
| 1248 |
ULONGLONG MonitoredConditionMet : 1; |
| 1249 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1250 |
ULONGLONG Normalized : 1; |
| 1251 |
ULONGLONG ValidValue : 1; |
| 1252 |
ULONGLONG Supported : 1; |
| 1253 |
} NumberOfInterfaceCrcErrors; |
| 1254 |
UCHAR Reserved[480]; |
| 1255 |
} GP_LOG_TRANSPORT_STATISTICS, *PGP_LOG_TRANSPORT_STATISTICS; |
| 1256 |
|
| 1257 |
typedef struct _GP_LOG_SOLID_STATE_DEVICE_STATISTICS { |
| 1258 |
DEVICE_STATISTICS_LOG_PAGE_HEADER Header; |
| 1259 |
struct { |
| 1260 |
ULONGLONG Value : 8; |
| 1261 |
ULONGLONG Reserved : 48; |
| 1262 |
ULONGLONG ReservedFlags : 3; |
| 1263 |
ULONGLONG MonitoredConditionMet : 1; |
| 1264 |
ULONGLONG StatisticsSupportsDsn : 1; |
| 1265 |
ULONGLONG Normalized : 1; |
| 1266 |
ULONGLONG ValidValue : 1; |
| 1267 |
ULONGLONG Supported : 1; |
| 1268 |
} PercentageUsedEnduranceIndicator; |
| 1269 |
UCHAR Reserved[496]; |
| 1270 |
} GP_LOG_SOLID_STATE_DEVICE_STATISTICS, *PGP_LOG_SOLID_STATE_DEVICE_STATISTICS; |
| 1271 |
|
| 1272 |
typedef struct _GP_LOG_NCQ_COMMAND_ERROR { |
| 1273 |
UCHAR NcqTag : 5; |
| 1274 |
UCHAR Reserved0 : 1; |
| 1275 |
UCHAR UNL : 1; |
| 1276 |
UCHAR NonQueuedCmd : 1; |
| 1277 |
UCHAR Reserved1; |
| 1278 |
UCHAR Status; |
| 1279 |
UCHAR Error; |
| 1280 |
UCHAR LBA7_0; |
| 1281 |
UCHAR LBA15_8; |
| 1282 |
UCHAR LBA23_16; |
| 1283 |
UCHAR Device; |
| 1284 |
UCHAR LBA31_24; |
| 1285 |
UCHAR LBA39_32; |
| 1286 |
UCHAR LBA47_40; |
| 1287 |
UCHAR Reserved2; |
| 1288 |
UCHAR Count7_0; |
| 1289 |
UCHAR Count15_8; |
| 1290 |
UCHAR SenseKey; |
| 1291 |
UCHAR ASC; |
| 1292 |
UCHAR ASCQ; |
| 1293 |
UCHAR Reserved3[239]; |
| 1294 |
UCHAR Vendor[255]; |
| 1295 |
UCHAR Checksum; |
| 1296 |
} GP_LOG_NCQ_COMMAND_ERROR, *PGP_LOG_NCQ_COMMAND_ERROR; |
| 1297 |
|
| 1298 |
typedef struct _GP_LOG_NCQ_NON_DATA { |
| 1299 |
struct { |
| 1300 |
ULONG AbortNcq : 1; |
| 1301 |
ULONG AbortAll : 1; |
| 1302 |
ULONG AbortStreaming : 1; |
| 1303 |
ULONG AbortNonStreaming : 1; |
| 1304 |
ULONG AbortSelectedTTag : 1; |
| 1305 |
ULONG Reserved : 27; |
| 1306 |
} SubCmd0; |
| 1307 |
struct { |
| 1308 |
ULONG DeadlineHandling : 1; |
| 1309 |
ULONG WriteDataNotContinue : 1; |
| 1310 |
ULONG ReadDataNotContinue : 1; |
| 1311 |
ULONG Reserved : 29; |
| 1312 |
} SubCmd1; |
| 1313 |
struct { |
| 1314 |
ULONG HybridDemoteBySize : 1; |
| 1315 |
ULONG Reserved : 31; |
| 1316 |
} SubCmd2; |
| 1317 |
struct { |
| 1318 |
ULONG HybridChangeByLbaRange : 1; |
| 1319 |
ULONG Reserved : 31; |
| 1320 |
} SubCmd3; |
| 1321 |
struct { |
| 1322 |
ULONG HybridControl : 1; |
| 1323 |
ULONG Reserved : 31; |
| 1324 |
} SubCmd4; |
| 1325 |
struct { |
| 1326 |
ULONG Reserved : 32; |
| 1327 |
} SubCmd5; |
| 1328 |
struct { |
| 1329 |
ULONG Reserved : 32; |
| 1330 |
} SubCmd6; |
| 1331 |
struct { |
| 1332 |
ULONG Reserved : 32; |
| 1333 |
} SubCmd7; |
| 1334 |
struct { |
| 1335 |
ULONG Reserved : 32; |
| 1336 |
} SubCmd8; |
| 1337 |
struct { |
| 1338 |
ULONG Reserved : 32; |
| 1339 |
} SubCmd9; |
| 1340 |
struct { |
| 1341 |
ULONG Reserved : 32; |
| 1342 |
} SubCmdA; |
| 1343 |
struct { |
| 1344 |
ULONG Reserved : 32; |
| 1345 |
} SubCmdB; |
| 1346 |
struct { |
| 1347 |
ULONG Reserved : 32; |
| 1348 |
} SubCmdC; |
| 1349 |
struct { |
| 1350 |
ULONG Reserved : 32; |
| 1351 |
} SubCmdD; |
| 1352 |
struct { |
| 1353 |
ULONG Reserved : 32; |
| 1354 |
} SubCmdE; |
| 1355 |
struct { |
| 1356 |
ULONG Reserved : 32; |
| 1357 |
} SubCmdF; |
| 1358 |
ULONG Reserved[112]; |
| 1359 |
} GP_LOG_NCQ_NON_DATA, *PGP_LOG_NCQ_NON_DATA; |
| 1360 |
|
| 1361 |
typedef struct _GP_LOG_NCQ_SEND_RECEIVE { |
| 1362 |
struct { |
| 1363 |
ULONG DataSetManagement : 1; |
| 1364 |
ULONG HybridEvict : 1; |
| 1365 |
ULONG Reserved : 30; |
| 1366 |
} SubCmd; |
| 1367 |
struct { |
| 1368 |
ULONG Trim : 1; |
| 1369 |
ULONG Reserved : 31; |
| 1370 |
} DataSetManagement; |
| 1371 |
ULONG Reserved[126]; |
| 1372 |
} GP_LOG_NCQ_SEND_RECEIVE, *PGP_LOG_NCQ_SEND_RECEIVE; |
| 1373 |
|
| 1374 |
typedef struct _GP_LOG_HYBRID_INFORMATION_HEADER { |
| 1375 |
USHORT HybridInfoDescrCount : 4; |
| 1376 |
USHORT Reserved0 : 12; |
| 1377 |
UCHAR Enabled; |
| 1378 |
UCHAR HybridHealth; |
| 1379 |
UCHAR DirtyLowThreshold; |
| 1380 |
UCHAR DirtyHighThreshold; |
| 1381 |
UCHAR OptimalWriteGranularity; |
| 1382 |
UCHAR MaximumHybridPriorityLevel : 4; |
| 1383 |
UCHAR Reserved1 : 4; |
| 1384 |
UCHAR PowerCondidtion; |
| 1385 |
UCHAR CachingMediumEnabled ; |
| 1386 |
struct { |
| 1387 |
UCHAR MaximumPriorityBehavior : 1; |
| 1388 |
UCHAR SupportCacheBehavior : 1; |
| 1389 |
UCHAR Reserved : 6; |
| 1390 |
} SupportedOptions; |
| 1391 |
UCHAR Reserved2; |
| 1392 |
ULONG TimeSinceEnabled; |
| 1393 |
ULONGLONG NVMSize; |
| 1394 |
ULONGLONG EnableCount; |
| 1395 |
USHORT MaximumEvictionCommands : 5; |
| 1396 |
USHORT Reserved3 : 11; |
| 1397 |
USHORT MaximumEvictionDataBlocks; |
| 1398 |
UCHAR Reserved[28]; |
| 1399 |
} GP_LOG_HYBRID_INFORMATION_HEADER, *PGP_LOG_HYBRID_INFORMATION_HEADER; |
| 1400 |
|
| 1401 |
typedef struct _GP_LOG_HYBRID_INFORMATION_DESCRIPTOR { |
| 1402 |
UCHAR HybridPriority; |
| 1403 |
UCHAR ConsumedNVMSizeFraction; |
| 1404 |
UCHAR ConsumedMappingResourcesFraction; |
| 1405 |
UCHAR ConsumedNVMSizeForDirtyDataFraction; |
| 1406 |
UCHAR ConsumedMappingResourcesForDirtyDataFraction; |
| 1407 |
UCHAR Reserved[11]; |
| 1408 |
} GP_LOG_HYBRID_INFORMATION_DESCRIPTOR, *PGP_LOG_HYBRID_INFORMATION_DESCRIPTOR; |
| 1409 |
|
| 1410 |
typedef struct _GP_LOG_HYBRID_INFORMATION { |
| 1411 |
GP_LOG_HYBRID_INFORMATION_HEADER Header; |
| 1412 |
GP_LOG_HYBRID_INFORMATION_DESCRIPTOR Descriptor[0]; |
| 1413 |
} GP_LOG_HYBRID_INFORMATION, *PGP_LOG_HYBRID_INFORMATION; |
| 1414 |
|
| 1415 |
typedef struct _REPORT_ZONES_EXT_DATA { |
| 1416 |
ULONG ZoneListLength; |
| 1417 |
UCHAR SAME : 4; |
| 1418 |
UCHAR Reserved0 : 4; |
| 1419 |
UCHAR Reserved1[3]; |
| 1420 |
ULONGLONG MaxLBA : 48; |
| 1421 |
ULONGLONG Reserved2 : 16; |
| 1422 |
UCHAR Reserved3[48]; |
| 1423 |
} REPORT_ZONES_EXT_DATA, *PREPORT_ZONES_EXT_DATA; |
| 1424 |
|
| 1425 |
typedef struct _ATA_ZONE_DESCRIPTOR { |
| 1426 |
UCHAR ZoneType : 4; |
| 1427 |
UCHAR Reserved0 : 4; |
| 1428 |
UCHAR Reset : 1; |
| 1429 |
UCHAR NonSeq : 1; |
| 1430 |
UCHAR Reserved1 : 2; |
| 1431 |
UCHAR ZoneCondition : 4; |
| 1432 |
UCHAR Reserved2[6]; |
| 1433 |
ULONGLONG ZoneLength : 48; |
| 1434 |
ULONGLONG Reserved3 : 16; |
| 1435 |
ULONGLONG ZoneStartLBA : 48; |
| 1436 |
ULONGLONG Reserved4 : 16; |
| 1437 |
ULONGLONG WritePointerLBA : 48; |
| 1438 |
ULONGLONG Reserved5 : 16; |
| 1439 |
UCHAR Reserved6[32]; |
| 1440 |
} ATA_ZONE_DESCRIPTOR, *PATA_ZONE_DESCRIPTOR; |
| 1441 |
|
| 1442 |
typedef struct _ATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR { |
| 1443 |
UCHAR Reserved1[4]; |
| 1444 |
ULONG ElementIdentifier; |
| 1445 |
UCHAR Reserved2[6]; |
| 1446 |
UCHAR PhysicalElementType; |
| 1447 |
UCHAR PhysicalElementHealth; |
| 1448 |
ULONGLONG AssociatedCapacity; |
| 1449 |
UCHAR Reserved3[8]; |
| 1450 |
} ATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR, *PATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR; |
| 1451 |
|
| 1452 |
typedef struct _ATA_GET_PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA { |
| 1453 |
ULONG NumberOfDescriptors; |
| 1454 |
ULONG NumberOfDescriptorsReturned; |
| 1455 |
ULONG ElementIdentifierBeingDepoped; |
| 1456 |
UCHAR Reserved[20]; |
| 1457 |
ATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR Descriptors[ANYSIZE_ARRAY]; |
| 1458 |
} ATA_GET_PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA, *PATA_GET_PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA; |
| 1459 |
|
| 1460 |
#pragma pack(pop) |
| 1461 |
|
| 1462 |
#define ATAPI_MODE_SENSE 0x5A |
| 1463 |
#define ATAPI_MODE_SELECT 0x55 |
| 1464 |
#define ATAPI_LS120_FORMAT_UNIT 0x24 |
| 1465 |
|
| 1466 |
#define IDE_LBA_MODE (1 << 6) |
| 1467 |
|
| 1468 |
#define IDE_DC_DISABLE_INTERRUPTS 0x02 |
| 1469 |
#define IDE_DC_RESET_CONTROLLER 0x04 |
| 1470 |
#define IDE_DC_REENABLE_CONTROLLER 0x00 |
| 1471 |
|
| 1472 |
#define IDE_STATUS_ERROR 0x01 |
| 1473 |
#define IDE_STATUS_INDEX 0x02 |
| 1474 |
#define IDE_STATUS_CORRECTED_ERROR 0x04 |
| 1475 |
#define IDE_STATUS_DRQ 0x08 |
| 1476 |
#define IDE_STATUS_DSC 0x10 |
| 1477 |
#define IDE_STATUS_DEVICE_FAULT 0x20 |
| 1478 |
#define IDE_STATUS_DRDY 0x40 |
| 1479 |
#define IDE_STATUS_IDLE 0x50 |
| 1480 |
#define IDE_STATUS_BUSY 0x80 |
| 1481 |
|
| 1482 |
#define IDE_ERROR_BAD_BLOCK 0x80 |
| 1483 |
#define IDE_ERROR_CRC_ERROR IDE_ERROR_BAD_BLOCK |
| 1484 |
#define IDE_ERROR_DATA_ERROR 0x40 |
| 1485 |
#define IDE_ERROR_MEDIA_CHANGE 0x20 |
| 1486 |
#define IDE_ERROR_ID_NOT_FOUND 0x10 |
| 1487 |
#define IDE_ERROR_MEDIA_CHANGE_REQ 0x08 |
| 1488 |
#define IDE_ERROR_COMMAND_ABORTED 0x04 |
| 1489 |
#define IDE_ERROR_END_OF_MEDIA 0x02 |
| 1490 |
#define IDE_ERROR_ILLEGAL_LENGTH 0x01 |
| 1491 |
#define IDE_ERROR_ADDRESS_NOT_FOUND IDE_ERROR_ILLEGAL_LENGTH |
| 1492 |
|
| 1493 |
#define IDE_COMMAND_NOP 0x00 |
| 1494 |
#define IDE_COMMAND_DATA_SET_MANAGEMENT 0x06 |
| 1495 |
#define IDE_COMMAND_ATAPI_RESET 0x08 |
| 1496 |
#define IDE_COMMAND_GET_PHYSICAL_ELEMENT_STATUS 0x12 |
| 1497 |
#define IDE_COMMAND_READ 0x20 |
| 1498 |
#define IDE_COMMAND_READ_EXT 0x24 |
| 1499 |
#define IDE_COMMAND_READ_DMA_EXT 0x25 |
| 1500 |
#define IDE_COMMAND_READ_DMA_QUEUED_EXT 0x26 |
| 1501 |
#define IDE_COMMAND_READ_MULTIPLE_EXT 0x29 |
| 1502 |
#define IDE_COMMAND_READ_LOG_EXT 0x2f |
| 1503 |
#define IDE_COMMAND_WRITE 0x30 |
| 1504 |
#define IDE_COMMAND_WRITE_EXT 0x34 |
| 1505 |
#define IDE_COMMAND_WRITE_DMA_EXT 0x35 |
| 1506 |
#define IDE_COMMAND_WRITE_DMA_QUEUED_EXT 0x36 |
| 1507 |
#define IDE_COMMAND_WRITE_MULTIPLE_EXT 0x39 |
| 1508 |
#define IDE_COMMAND_WRITE_DMA_FUA_EXT 0x3D |
| 1509 |
#define IDE_COMMAND_WRITE_DMA_QUEUED_FUA_EXT 0x3E |
| 1510 |
#define IDE_COMMAND_WRITE_LOG_EXT 0x3F |
| 1511 |
#define IDE_COMMAND_VERIFY 0x40 |
| 1512 |
#define IDE_COMMAND_VERIFY_EXT 0x42 |
| 1513 |
#define IDE_COMMAND_ZAC_MANAGEMENT_IN 0x4A |
| 1514 |
#define IDE_COMMAND_WRITE_LOG_DMA_EXT 0x57 |
| 1515 |
#define IDE_COMMAND_TRUSTED_NON_DATA 0x5B |
| 1516 |
#define IDE_COMMAND_TRUSTED_RECEIVE 0x5C |
| 1517 |
#define IDE_COMMAND_TRUSTED_RECEIVE_DMA 0x5D |
| 1518 |
#define IDE_COMMAND_TRUSTED_SEND 0x5E |
| 1519 |
#define IDE_COMMAND_TRUSTED_SEND_DMA 0x5F |
| 1520 |
#define IDE_COMMAND_READ_FPDMA_QUEUED 0x60 |
| 1521 |
#define IDE_COMMAND_WRITE_FPDMA_QUEUED 0x61 |
| 1522 |
#define IDE_COMMAND_NCQ_NON_DATA 0x63 |
| 1523 |
#define IDE_COMMAND_SEND_FPDMA_QUEUED 0x64 |
| 1524 |
#define IDE_COMMAND_RECEIVE_FPDMA_QUEUED 0x65 |
| 1525 |
#define IDE_COMMAND_SET_DATE_AND_TIME 0x77 |
| 1526 |
#define IDE_COMMAND_REMOVE_ELEMENT_AND_TRUNCATE 0x7C |
| 1527 |
#define IDE_COMMAND_EXECUTE_DEVICE_DIAGNOSTIC 0x90 |
| 1528 |
#define IDE_COMMAND_SET_DRIVE_PARAMETERS 0x91 |
| 1529 |
#define IDE_COMMAND_DOWNLOAD_MICROCODE 0x92 |
| 1530 |
#define IDE_COMMAND_DOWNLOAD_MICROCODE_DMA 0x93 |
| 1531 |
#define IDE_COMMAND_ZAC_MANAGEMENT_OUT 0x9F |
| 1532 |
#define IDE_COMMAND_ATAPI_PACKET 0xA0 |
| 1533 |
#define IDE_COMMAND_ATAPI_IDENTIFY 0xA1 |
| 1534 |
#define IDE_COMMAND_SMART 0xB0 |
| 1535 |
#define IDE_COMMAND_READ_LOG_DMA_EXT 0xB1 |
| 1536 |
#define IDE_COMMAND_SANITIZE_DEVICE 0xB4 |
| 1537 |
#define IDE_COMMAND_READ_MULTIPLE 0xC4 |
| 1538 |
#define IDE_COMMAND_WRITE_MULTIPLE 0xC5 |
| 1539 |
#define IDE_COMMAND_SET_MULTIPLE 0xC6 |
| 1540 |
#define IDE_COMMAND_READ_DMA 0xC8 |
| 1541 |
#define IDE_COMMAND_WRITE_DMA 0xCA |
| 1542 |
#define IDE_COMMAND_WRITE_DMA_QUEUED 0xCC |
| 1543 |
#define IDE_COMMAND_WRITE_MULTIPLE_FUA_EXT 0xCE |
| 1544 |
#define IDE_COMMAND_GET_MEDIA_STATUS 0xDA |
| 1545 |
#define IDE_COMMAND_DOOR_LOCK 0xDE |
| 1546 |
#define IDE_COMMAND_DOOR_UNLOCK 0xDF |
| 1547 |
#define IDE_COMMAND_STANDBY_IMMEDIATE 0xE0 |
| 1548 |
#define IDE_COMMAND_IDLE_IMMEDIATE 0xE1 |
| 1549 |
#define IDE_COMMAND_CHECK_POWER 0xE5 |
| 1550 |
#define IDE_COMMAND_SLEEP 0xE6 |
| 1551 |
#define IDE_COMMAND_FLUSH_CACHE 0xE7 |
| 1552 |
#define IDE_COMMAND_FLUSH_CACHE_EXT 0xEA |
| 1553 |
#define IDE_COMMAND_IDENTIFY 0xEC |
| 1554 |
#define IDE_COMMAND_MEDIA_EJECT 0xED |
| 1555 |
#define IDE_COMMAND_SET_FEATURE 0xEF |
| 1556 |
#define IDE_COMMAND_SECURITY_SET_PASSWORD 0xF1 |
| 1557 |
#define IDE_COMMAND_SECURITY_UNLOCK 0xF2 |
| 1558 |
#define IDE_COMMAND_SECURITY_ERASE_PREPARE 0xF3 |
| 1559 |
#define IDE_COMMAND_SECURITY_ERASE_UNIT 0xF4 |
| 1560 |
#define IDE_COMMAND_SECURITY_FREEZE_LOCK 0xF5 |
| 1561 |
#define IDE_COMMAND_SECURITY_DISABLE_PASSWORD 0xF6 |
| 1562 |
#define IDE_COMMAND_NOT_VALID 0xFF |
| 1563 |
|
| 1564 |
#define IDE_SET_DEFAULT_PIO_MODE(mode) ((UCHAR)1) |
| 1565 |
#define IDE_SET_ADVANCE_PIO_MODE(mode) ((UCHAR)((1 << 3) | (mode))) |
| 1566 |
#define IDE_SET_SWDMA_MODE(mode) ((UCHAR)((1 << 4) | (mode))) |
| 1567 |
#define IDE_SET_MWDMA_MODE(mode) ((UCHAR)((1 << 5) | (mode))) |
| 1568 |
#define IDE_SET_UDMA_MODE(mode) ((UCHAR)((1 << 6) | (mode))) |
| 1569 |
|
| 1570 |
#define IDE_FEATURE_ENABLE_WRITE_CACHE 0x2 |
| 1571 |
#define IDE_FEATURE_SET_TRANSFER_MODE 0x3 |
| 1572 |
#define IDE_FEATURE_ENABLE_PUIS 0x6 |
| 1573 |
#define IDE_FEATURE_PUIS_SPIN_UP 0x7 |
| 1574 |
#define IDE_FEATURE_ENABLE_SATA_FEATURE 0x10 |
| 1575 |
#define IDE_FEATURE_DISABLE_MSN 0x31 |
| 1576 |
#define IDE_FEATURE_DISABLE_REVERT_TO_POWER_ON 0x66 |
| 1577 |
#define IDE_FEATURE_DISABLE_WRITE_CACHE 0x82 |
| 1578 |
#define IDE_FEATURE_DISABLE_PUIS 0x86 |
| 1579 |
#define IDE_FEATURE_DISABLE_SATA_FEATURE 0x90 |
| 1580 |
#define IDE_FEATURE_ENABLE_MSN 0x95 |
| 1581 |
|
| 1582 |
#define IDE_SATA_FEATURE_NON_ZERO_DMA_BUFFER_OFFSET 0x1 |
| 1583 |
#define IDE_SATA_FEATURE_DMA_SETUP_FIS_AUTO_ACTIVATE 0x2 |
| 1584 |
#define IDE_SATA_FEATURE_DEVICE_INITIATED_POWER_MANAGEMENT 0x3 |
| 1585 |
#define IDE_SATA_FEATURE_GUARANTEED_IN_ORDER_DELIVERY 0x4 |
| 1586 |
#define IDE_SATA_FEATURE_ASYNCHRONOUS_NOTIFICATION 0x5 |
| 1587 |
#define IDE_SATA_FEATURE_SOFTWARE_SETTINGS_PRESERVATION 0x6 |
| 1588 |
#define IDE_SATA_FEATURE_DEVICE_AUTO_PARTIAL_TO_SLUMBER 0x7 |
| 1589 |
#define IDE_SATA_FEATURE_ENABLE_HARDWARE_FEATURE_CONTROL 0x8 |
| 1590 |
#define IDE_SATA_FEATURE_DEVSLP 0x9 |
| 1591 |
#define IDE_SATA_FEATURE_HYBRID_INFORMATION 0xA |
| 1592 |
|
| 1593 |
#define IDE_SMART_READ_ATTRIBUTES 0xD0 |
| 1594 |
#define IDE_SMART_READ_THRESHOLDS 0xD1 |
| 1595 |
#define IDE_SMART_ENABLE_DISABLE_AUTOSAVE 0xD2 |
| 1596 |
#define IDE_SMART_SAVE_ATTRIBUTE_VALUES 0xD3 |
| 1597 |
#define IDE_SMART_EXECUTE_OFFLINE_DIAGS 0xD4 |
| 1598 |
#define IDE_SMART_READ_LOG 0xD5 |
| 1599 |
#define IDE_SMART_WRITE_LOG 0xD6 |
| 1600 |
#define IDE_SMART_ENABLE 0xD8 |
| 1601 |
#define IDE_SMART_DISABLE 0xD9 |
| 1602 |
#define IDE_SMART_RETURN_STATUS 0xDA |
| 1603 |
#define IDE_SMART_ENABLE_DISABLE_AUTO_OFFLINE 0xDB |
| 1604 |
|
| 1605 |
#define IDE_DSM_FEATURE_TRIM 0x0001 |
| 1606 |
|
| 1607 |
#define IDE_NCQ_NON_DATA_ABORT_NCQ_QUEUE 0x00 |
| 1608 |
#define IDE_NCQ_NON_DATA_DEADLINE_HANDLING 0x01 |
| 1609 |
#define IDE_NCQ_NON_DATA_HYBRID_CHANGE_BY_SIZE 0x02 |
| 1610 |
#define IDE_NCQ_NON_DATA_HYBRID_DEMOTE_BY_SIZE 0x02 |
| 1611 |
#define IDE_NCQ_NON_DATA_HYBRID_CHANGE_BY_LBA_RANGE 0x03 |
| 1612 |
#define IDE_NCQ_NON_DATA_HYBRID_CONTROL 0x04 |
| 1613 |
|
| 1614 |
#define IDE_NCQ_SEND_DATA_SET_MANAGEMENT 0x00 |
| 1615 |
#define IDE_NCQ_SEND_HYBRID_EVICT 0x01 |
| 1616 |
|
| 1617 |
#define ATA_DEVICE_SET_PASSWORD_MASTER 0x01 |
| 1618 |
#define ATA_DEVICE_SET_PASSWORD_USER 0x00 |
| 1619 |
|
| 1620 |
#define IDE_GP_LOG_DIRECTORY_ADDRESS 0x00 |
| 1621 |
#define IDE_GP_SUMMARY_SMART_ERROR 0x01 |
| 1622 |
#define IDE_GP_COMPREHENSIVE_SMART_ERROR 0x02 |
| 1623 |
#define IDE_GP_EXTENDED_COMPREHENSIVE_SMART_ERROR 0x03 |
| 1624 |
#define IDE_GP_LOG_DEVICE_STATISTICS_ADDRESS 0x04 |
| 1625 |
#define IDE_GP_SMART_SELF_TEST 0x06 |
| 1626 |
#define IDE_GP_EXTENDED_SMART_SELF_TEST 0x07 |
| 1627 |
#define IDE_GP_LOG_POWER_CONDITIONS 0x08 |
| 1628 |
#define IDE_GP_SELECTIVE_SELF_TEST 0x09 |
| 1629 |
#define IDE_GP_DEVICE_STATISTICS_NOTIFICATION 0x0A |
| 1630 |
#define IDE_GP_PENDING_DEFECTS 0x0C |
| 1631 |
#define IDE_GP_LPS_MISALIGNMENT 0x0D |
| 1632 |
#define IDE_GP_LOG_NCQ_COMMAND_ERROR_ADDRESS 0x10 |
| 1633 |
#define IDE_GP_LOG_PHY_EVENT_COUNTER_ADDRESS 0x11 |
| 1634 |
#define IDE_GP_LOG_NCQ_NON_DATA_ADDRESS 0x12 |
| 1635 |
#define IDE_GP_LOG_NCQ_SEND_RECEIVE_ADDRESS 0x13 |
| 1636 |
#define IDE_GP_LOG_HYBRID_INFO_ADDRESS 0x14 |
| 1637 |
#define IDE_GP_LOG_REBUILD_ASSIST 0x15 |
| 1638 |
#define IDE_GP_LOG_LBA_STATUS 0x19 |
| 1639 |
#define IDE_GP_LOG_WRITE_STREAM_ERROR 0x21 |
| 1640 |
#define IDE_GP_LOG_READ_STREAM_ERROR 0x22 |
| 1641 |
#define IDE_GP_LOG_CURRENT_DEVICE_INTERNAL_STATUS 0x24 |
| 1642 |
#define IDE_GP_LOG_SAVED_DEVICE_INTERNAL_STATUS 0x25 |
| 1643 |
#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_ADDRESS 0x30 |
| 1644 |
#define IDE_GP_LOG_SCT_COMMAND_STATUS 0xE0 |
| 1645 |
#define IDE_GP_LOG_SCT_DATA_TRANSFER 0xE1 |
| 1646 |
|
| 1647 |
#define IDE_GP_LOG_SECTOR_SIZE 0x200 |
| 1648 |
|
| 1649 |
#define IDE_GP_LOG_VERSION 0x0001 |
| 1650 |
|
| 1651 |
#define IDE_GP_LOG_SUPPORTED_PAGES 0x00 |
| 1652 |
|
| 1653 |
#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_SUPPORTED_CAPABILITIES_PAGE 0x03 |
| 1654 |
#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_SATA_PAGE 0x08 |
| 1655 |
#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_ZONED_DEVICE_INFORMATION_PAGE 0x09 |
| 1656 |
|
| 1657 |
#define ATA_ZONED_CAPABILITIES_NOT_REPORTED 0x0 |
| 1658 |
#define ATA_ZONED_CAPABILITIES_HOST_AWARE 0x1 |
| 1659 |
#define ATA_ZONED_CAPABILITIES_DEVICE_MANAGED 0x2 |
| 1660 |
|
| 1661 |
#define ZAC_REVISION_NOT_REPORTED_1 0x0000 |
| 1662 |
#define ZAC_REVISION_NOT_REPORTED_2 0xFFFF |
| 1663 |
#define ZAC_REVISION_01 0xB6E8 |
| 1664 |
#define ZAC_REVISION_04 0xA36C |
| 1665 |
|
| 1666 |
#define CURRENT_DEVICE_INTERNAL_STATUS_DATA_LOG_ADDRESS 0x24 |
| 1667 |
#define SAVED_DEVICE_INTERNAL_STATUS_DATA_LOG_ADDRESS 0x25 |
| 1668 |
|
| 1669 |
#define IDE_GP_LOG_DEVICE_STATISTICS_GENERAL_PAGE 0x01 |
| 1670 |
#define IDE_GP_LOG_DEVICE_STATISTICS_FREE_FALL_PAGE 0x02 |
| 1671 |
#define IDE_GP_LOG_DEVICE_STATISTICS_ROTATING_MEDIA_PAGE 0x03 |
| 1672 |
#define IDE_GP_LOG_DEVICE_STATISTICS_GENERAL_ERROR_PAGE 0x04 |
| 1673 |
#define IDE_GP_LOG_DEVICE_STATISTICS_TEMPERATURE_PAGE 0x05 |
| 1674 |
#define IDE_GP_LOG_DEVICE_STATISTICS_TRANSPORT_PAGE 0x06 |
| 1675 |
#define IDE_GP_LOG_DEVICE_STATISTICS_SSD_PAGE 0x07 |
| 1676 |
|
| 1677 |
#define HYBRID_INFORMATION_DISABLED 0x00 |
| 1678 |
#define HYBRID_INFORMATION_DISABLE_IN_PROCESS 0x80 |
| 1679 |
#define HYBRID_INFORMATION_ENABLED 0xFF |
| 1680 |
|
| 1681 |
#define HYBRID_HEALTH_UNUSEABLE 0x01 |
| 1682 |
#define HYBRID_HEALTH_NVM_SIZE_CHANGED 0x02 |
| 1683 |
#define HYBRID_HEALTH_READ_ONLY 0x04 |
| 1684 |
#define HYBRID_HEALTH_DATA_LOSS 0x08 |
| 1685 |
|
| 1686 |
#define ATA_DEVICE_SIGNATURE_ATA 0x00000101 |
| 1687 |
#define ATA_DEVICE_SIGNATURE_ATAPI 0xEB140101 |
| 1688 |
#define ATA_DEVICE_SIGNATURE_HOST_ZONED 0xABCD0101 |
| 1689 |
#define ATA_DEVICE_SIGNATURE_ENCLOSURE 0xC33C0101 |
| 1690 |
#define ATA_DEVICE_SIGNATURE_PORT_MULTIPLIER 0x96690101 |
| 1691 |
|
| 1692 |
#define ZM_ACTION_REPORT_ZONES 0x00 |
| 1693 |
#define ZM_ACTION_CLOSE_ZONE 0x01 |
| 1694 |
#define ZM_ACTION_FINISH_ZONE 0x02 |
| 1695 |
#define ZM_ACTION_OPEN_ZONE 0x03 |
| 1696 |
#define ZM_ACTION_RESET_WRITE_POINTER 0x04 |
| 1697 |
|
| 1698 |
#define ZM_ALL_ZONES_BIT (1 << 8) |
| 1699 |
|
| 1700 |
#define ATA_REPORT_ZONES_OPTION_LIST_ALL_ZONES 0x00 |
| 1701 |
#define ATA_REPORT_ZONES_OPTION_LIST_EMPTY_ZONES 0x01 |
| 1702 |
#define ATA_REPORT_ZONES_OPTION_LIST_IMPLICITLY_OPENED_ZONES 0x02 |
| 1703 |
#define ATA_REPORT_ZONES_OPTION_LIST_EXPLICITLY_OPENED_ZONES 0x03 |
| 1704 |
#define ATA_REPORT_ZONES_OPTION_LIST_CLOSED_ZONES 0x04 |
| 1705 |
#define ATA_REPORT_ZONES_OPTION_LIST_FULL_ZONES 0x05 |
| 1706 |
#define ATA_REPORT_ZONES_OPTION_LIST_READ_ONLY_ZONES 0x06 |
| 1707 |
#define ATA_REPORT_ZONES_OPTION_LIST_OFFLINE_ZONES 0x07 |
| 1708 |
|
| 1709 |
#define ATA_REPORT_ZONES_OPTION_LIST_RWP_ZONES 0x10 |
| 1710 |
#define ATA_REPORT_ZONES_OPTION_LIST_NON_SEQUENTIAL_WRITE_RESOURCES_ACTIVE_ZONES 0x11 |
| 1711 |
|
| 1712 |
#define ATA_REPORT_ZONES_OPTION_LIST_NOT_WRITE_POINTER_ZONES 0x3F |
| 1713 |
|
| 1714 |
#define ATA_ZONES_TYPE_AND_LENGTH_MAY_DIFFERENT 0x0 |
| 1715 |
#define ATA_ZONES_TYPE_SAME_LENGTH_SAME 0x1 |
| 1716 |
#define ATA_ZONES_TYPE_SAME_LAST_ZONE_LENGTH_DIFFERENT 0x2 |
| 1717 |
#define ATA_ZONES_TYPE_MAY_DIFFERENT_LENGTH_SAME 0x3 |
| 1718 |
|
| 1719 |
#define ATA_ZONE_TYPE_CONVENTIONAL 0x1 |
| 1720 |
#define ATA_ZONE_TYPE_SEQUENTIAL_WRITE_REQUIRED 0x2 |
| 1721 |
#define ATA_ZONE_TYPE_SEQUENTIAL_WRITE_PREFERRED 0x3 |
| 1722 |
|
| 1723 |
#define ATA_ZONE_CONDITION_NOT_WRITE_POINTER 0x0 |
| 1724 |
#define ATA_ZONE_CONDITION_EMPTY 0x1 |
| 1725 |
#define ATA_ZONE_CONDITION_IMPLICITLY_OPENED 0x2 |
| 1726 |
#define ATA_ZONE_CONDITION_EXPLICITLY_OPENED 0x3 |
| 1727 |
#define ATA_ZONE_CONDITION_CLOSED 0x4 |
| 1728 |
#define ATA_ZONE_CONDITION_READ_ONLY 0xD |
| 1729 |
#define ATA_ZONE_CONDITION_FULL 0xE |
| 1730 |
#define ATA_ZONE_CONDITION_OFFLINE 0xF |
| 1731 |
|
| 1732 |
#endif |