chapter4, Data structure [DRIVE_IDENTIFY_INFO]

This is one of the structures that store the getting drive information.

typedef uint64_t sector_t;
typedef uint32_t cluster_t;
typedef uint32_t param_t; 
typedef uint16_t wchar_t;
static const int STRING_LENGTH = 128;
typedef struct  _DRIVE_IDENTIFY_INFO
{
    identify_support_type ist;
    identify_support_extend ise;
    sector_t cylinders;
    param_t tracksPerCylinder;
    param_t sectorsPerTrack;
    param_t bytesPerSector;
    sector_t sectorsGetDevice;
    sector_t sectorsGetIdentify;
    sector_t sectorsLbaLimit;
    param_t rpm;
    param_t buffer_size;
    param_t buffer_type;
    param_t nvcache_size;
    param_t aam_recommended;
    wchar_t model_name[STRING_LENGTH];
    wchar_t vendor[STRING_LENGTH];
    wchar_t firmware[STRING_LENGTH];
    wchar_t serial[STRING_LENGTH];
} DRIVE_IDENTIFY_INFO;