The format of the request packet for the WRITE, READ, and WRITE VERIFY commands is:
┌──────────────────────────────┬──────────────────────────────┐ │Field │Length │ ├──────────────────────────────┼──────────────────────────────┤ │Request Header │32 BYTES │ ├──────────────────────────────┼──────────────────────────────┤ │Start Block │DWORD │ ├──────────────────────────────┼──────────────────────────────┤ │Block Count │DWORD │ ├──────────────────────────────┼──────────────────────────────┤ │BlocksXferred │DWORD │ ├──────────────────────────────┼──────────────────────────────┤ │Flags │WORD │ ├──────────────────────────────┼──────────────────────────────┤ │SGDescrCount │WORD │ ├──────────────────────────────┼──────────────────────────────┤ │Reserved │DWORD │ ├──────────────────────────────┼──────────────────────────────┤ │SGDescriptors │ARRAY │ └──────────────────────────────┴──────────────────────────────┘
Request Header
Bit 0
The File System Driver (FSD) guarantees the following to be true:
──────────────────────────────────────────────────────────────────────────
BlockCount * 512 equals the sum of the BufferSize fields in SGDescriptors.
──────────────────────────────────────────────────────────────────────────
In addition, buffers are typically DWORD aligned. The physical device driver should be optimized for this case, but should not rely upon it.