65 lines
2.8 KiB
C
65 lines
2.8 KiB
C
//
|
|
// IDENTIFY data
|
|
//
|
|
|
|
#pragma pack (push,1)
|
|
typedef struct _IDENTIFY_DATA {
|
|
USHORT GeneralConfiguration; // 00 00
|
|
USHORT NumCylinders; // 02 1
|
|
USHORT Reserved1; // 04 2
|
|
USHORT NumHeads; // 06 3
|
|
USHORT UnformattedBytesPerTrack; // 08 4
|
|
USHORT UnformattedBytesPerSector; // 0A 5
|
|
USHORT NumSectorsPerTrack; // 0C 6
|
|
USHORT VendorUnique1[3]; // 0E 7-9
|
|
UCHAR SerialNumber[20]; // 14 10-19
|
|
USHORT BufferType; // 28 20
|
|
USHORT BufferSectorSize; // 2A 21
|
|
USHORT NumberOfEccBytes; // 2C 22
|
|
UCHAR FirmwareRevision[8]; // 2E 23-26
|
|
UCHAR ModelNumber[40]; // 36 27-46
|
|
UCHAR MaximumBlockTransfer; // 5E 47
|
|
UCHAR VendorUnique2; // 5F
|
|
USHORT DoubleWordIo; // 60 48
|
|
USHORT Capabilities; // 62 49
|
|
USHORT Reserved2; // 64 50
|
|
UCHAR VendorUnique3; // 66 51
|
|
UCHAR PioCycleTimingMode; // 67
|
|
UCHAR VendorUnique4; // 68 52
|
|
UCHAR DmaCycleTimingMode; // 69
|
|
USHORT TranslationFieldsValid:3; // 6A 53
|
|
USHORT Reserved3:13;
|
|
USHORT NumberOfCurrentCylinders; // 6C 54
|
|
USHORT NumberOfCurrentHeads; // 6E 55
|
|
USHORT CurrentSectorsPerTrack; // 70 56
|
|
ULONG CurrentSectorCapacity; // 72 57-58
|
|
USHORT CurrentMultiSectorSetting; // 59
|
|
ULONG UserAddressableSectors; // 60-61
|
|
USHORT SingleWordDMASupport : 8; // 62
|
|
USHORT SingleWordDMAActive : 8;
|
|
USHORT MultiWordDMASupport : 8; // 63
|
|
USHORT MultiWordDMAActive : 8;
|
|
USHORT AdvancedPIOModes : 8; // 64
|
|
USHORT Reserved4 : 8;
|
|
USHORT MinimumMWXferCycleTime; // 65
|
|
USHORT RecommendedMWXferCycleTime; // 66
|
|
USHORT MinimumPIOCycleTime; // 67
|
|
USHORT MinimumPIOCycleTimeIORDY; // 68
|
|
USHORT Reserved5[11]; // 69-79
|
|
USHORT MajorRevision; // 80
|
|
USHORT MinorRevision; // 81
|
|
USHORT Reserved6[6]; // 82-87
|
|
USHORT UltraDMASupport : 8; // 88
|
|
USHORT UltraDMAActive : 8; //
|
|
USHORT Reserved7[37]; // 89-125
|
|
USHORT LastLun:3; // 126
|
|
USHORT Reserved8:13;
|
|
USHORT MediaStatusNotification:2; // 127
|
|
USHORT Reserved9:6;
|
|
USHORT DeviceWriteProtect:1;
|
|
USHORT Reserved10:7;
|
|
USHORT Reserved11[128]; // 128-255
|
|
} IDENTIFY_DATA, *PIDENTIFY_DATA;
|
|
|
|
#pragma pack(pop)
|