title: How to read a large disk(like 1 ,2 TB) using ATA commands through DeviceIoControl funtion?
body: <p>I want to read a large capacity disk using ATA commands sending though DeviceIoControl(). Sending commands using <code>ATA_PASS_THROUGH_EX</code> structure is the main problem. Actually <code>CurrentTaskFile[]</code> arary of <code>UCHAR</code> type is not able to send a sector no greater than 16777215.</p>
  
  <pre><code>CurrentTaskFile[2] = 0xFF;
  CurrentTaskFile[3] = 0xFF;
  CurrentTaskFile[4] = 0xFF;
  </code></pre>
  
  <p>That is<br>
  <code>CurrentTaskFile[2] = 0xFF</code>  is Sector number register,<br>
  <code>CurrentTaskFile[3] = 0xFF</code>  is Cylinder low register,<br>
  <code>CurrentTaskFile[3] = 0xFF</code>  is Cylinder High register.  </p>
  
  <p>Now what to do if i want to read sectors no more than 16777215 (If I want to read a 1 TB disk's last sector). How to send sector no more than 16777215. Actually i have to read disk with capacity upto 4 TB.</p>