As far as I understand:
- A volume can be mapped to multiple physical disks
- Each physical disk has its own sector size
As mentioned in Microsoft's documentation there is a certain requirement when using unbuffered IO:
File access sizes, including the optional file offset in the OVERLAPPED structure, if specified, must be for a number of bytes that is an integer multiple of the volume sector size. For example, if the sector size is 512 bytes, an application can request reads and writes of 512, 1,024, 1,536, or 2,048 bytes, but not of 335, 981, or 7,171 bytes.
Now let's say I want to create a new file "D:\Folder\File.txt", whereby D: is a volume mapped to multiple physical disks and I'm planning to use unbuffered writes on that file.
The following assumption may not be true, please correct me if it's wrong. Since D: spans multiple physical disks, the new file could be written on one disk or another, or it may be split across both.
To fulfill the requirement for unbuffered IO stated previously, the physical sector size needs to be determined in advance, so how is this done in the special case where a file is potentially spread across multiple physical disks with different sector sizes?