+ //\r
+ // submit Read Capacity(10) Command. If it returns capacity of FFFFFFFFh, \r
+ // 16 byte command should be used to access large hard disk >2TB\r
+ //\r
+ CommandStatus = ScsiReadCapacityCommand (\r
+ ScsiDiskDevice->ScsiIo,\r
+ EFI_TIMER_PERIOD_SECONDS(1),\r
+ NULL,\r
+ &SenseDataLength,\r
+ &HostAdapterStatus,\r
+ &TargetStatus,\r
+ (VOID *) &CapacityData10,\r
+ &DataLength10,\r
+ FALSE\r
+ );\r
+\r
+ ScsiDiskDevice->Cdb16Byte = FALSE;\r
+ if ((!EFI_ERROR (CommandStatus)) && (CapacityData10.LastLba3 == 0xff) && (CapacityData10.LastLba2 == 0xff) &&\r
+ (CapacityData10.LastLba1 == 0xff) && (CapacityData10.LastLba0 == 0xff)) {\r
+ //\r
+ // use Read Capacity (16), Read (16) and Write (16) next when hard disk size > 2TB\r
+ //\r
+ ScsiDiskDevice->Cdb16Byte = TRUE;\r