+ UINT16 trusted_computing_support; \r
+ UINT16 capabilities_49;\r
+ UINT16 capabilities_50;\r
+ UINT16 obsolete_51_52[2]; \r
+ UINT16 field_validity; \r
+ UINT16 obsolete_54_58[5]; \r
+ UINT16 multi_sector_setting;\r
+ UINT16 user_addressable_sectors_lo; \r
+ UINT16 user_addressable_sectors_hi; \r
+ UINT16 obsolete_62; \r
+ UINT16 multi_word_dma_mode; \r
+ UINT16 advanced_pio_modes; \r
+ UINT16 min_multi_word_dma_cycle_time; \r
+ UINT16 rec_multi_word_dma_cycle_time; \r
+ UINT16 min_pio_cycle_time_without_flow_control; \r
+ UINT16 min_pio_cycle_time_with_flow_control; \r
+ UINT16 additional_supported; ///< word 69\r
+ UINT16 reserved_70;\r
+ UINT16 reserved_71_74[4]; ///< Reserved for IDENTIFY PACKET DEVICE cmd.\r
+ UINT16 queue_depth; \r
+ UINT16 serial_ata_capabilities;\r
+ UINT16 reserved_77; ///< Reserved for Serial ATA\r
+ UINT16 serial_ata_features_supported;\r
+ UINT16 serial_ata_features_enabled;\r
+ UINT16 major_version_no; \r
+ UINT16 minor_version_no; \r
+ UINT16 command_set_supported_82; ///< word 82\r
+ UINT16 command_set_supported_83; ///< word 83\r
+ UINT16 command_set_feature_extn; ///< word 84\r
+ UINT16 command_set_feature_enb_85; ///< word 85\r
+ UINT16 command_set_feature_enb_86; ///< word 86\r
+ UINT16 command_set_feature_default; ///< word 87\r
+ UINT16 ultra_dma_mode; ///< word 88 \r
+ UINT16 time_for_security_erase_unit; \r
+ UINT16 time_for_enhanced_security_erase_unit;\r
+ UINT16 advanced_power_management_level;\r
+ UINT16 master_password_identifier;\r
+ UINT16 hardware_configuration_test_result;\r
+ UINT16 obsolete_94;\r
+ UINT16 stream_minimum_request_size;\r
+ UINT16 streaming_transfer_time_for_dma;\r
+ UINT16 streaming_access_latency_for_dma_and_pio;\r
+ UINT16 streaming_performance_granularity[2]; ///< word 98~99\r
+ UINT16 maximum_lba_for_48bit_addressing[4]; ///< word 100~103\r
+ UINT16 streaming_transfer_time_for_pio;\r
+ UINT16 max_no_of_512byte_blocks_per_data_set_cmd;\r
+ UINT16 phy_logic_sector_support; ///< word 106\r
+ UINT16 interseek_delay_for_iso7779;\r
+ UINT16 world_wide_name[4]; ///< word 108~111\r
+ UINT16 reserved_for_128bit_wwn_112_115[4];\r
+ UINT16 reserved_for_technical_report;\r
+ UINT16 logic_sector_size_lo; ///< word 117\r
+ UINT16 logic_sector_size_hi; ///< word 118\r
+ UINT16 features_and_command_sets_supported_ext; ///< word 119\r
+ UINT16 features_and_command_sets_enabled_ext; ///< word 120\r
+ UINT16 reserved_121_126[6];\r
+ UINT16 obsolete_127;\r
+ UINT16 security_status; ///< word 128\r
+ UINT16 vendor_specific_129_159[31]; \r
+ UINT16 cfa_power_mode; ///< word 160\r
+ UINT16 reserved_for_compactflash_161_167[7];\r
+ UINT16 device_nominal_form_factor;\r
+ UINT16 is_data_set_cmd_supported;\r
+ CHAR8 additional_product_identifier[8];\r
+ UINT16 reserved_174_175[2];\r
+ CHAR8 media_serial_number[60]; ///< word 176~205\r
+ UINT16 sct_command_transport; ///< word 206\r
+ UINT16 reserved_207_208[2];\r
+ UINT16 alignment_logic_in_phy_blocks; ///< word 209\r
+ UINT16 write_read_verify_sector_count_mode3[2]; ///< word 210~211\r
+ UINT16 verify_sector_count_mode2[2];\r
+ UINT16 nv_cache_capabilities;\r
+ UINT16 nv_cache_size_in_logical_block_lsw; ///< word 215\r
+ UINT16 nv_cache_size_in_logical_block_msw; ///< word 216\r
+ UINT16 nominal_media_rotation_rate;\r
+ UINT16 reserved_218;\r
+ UINT16 nv_cache_options; ///< word 219\r
+ UINT16 write_read_verify_mode; ///< word 220\r
+ UINT16 reserved_221;\r
+ UINT16 transport_major_revision_number;\r
+ UINT16 transport_minor_revision_number;\r
+ UINT16 reserved_224_229[6];\r
+ UINT64 extended_no_of_addressable_sectors;\r
+ UINT16 min_number_per_download_microcode_mode3; ///< word 234\r
+ UINT16 max_number_per_download_microcode_mode3; ///< word 235\r
+ UINT16 reserved_236_254[19];\r
+ UINT16 integrity_word;\r
+} ATA_IDENTIFY_DATA;\r
+\r
+///\r
+/// ATAPI_IDENTIFY_DATA strictly complies with ATA/ATAPI-8 Spec\r
+/// to define the data returned by an ATAPI device upon successful\r
+/// completion of the ATA IDENTIFY_PACKET_DEVICE command.\r
+///\r
+typedef struct {\r
+ UINT16 config; ///< General Configuration.\r
+ UINT16 reserved_1;\r
+ UINT16 specific_config; ///< Specific Configuration.\r
+ UINT16 reserved_3_9[7];\r
+ CHAR8 SerialNo[20]; ///< word 10~19\r
+ UINT16 reserved_20_22[3];\r
+ CHAR8 FirmwareVer[8]; ///< word 23~26\r
+ CHAR8 ModelName[40]; ///< word 27~46\r
+ UINT16 reserved_47_48[2];\r
+ UINT16 capabilities_49;\r
+ UINT16 capabilities_50;\r
+ UINT16 obsolete_51;\r