POSIX guarantees that multi-buffer scatter gather is executed as a single atomic operation. Windows, unless you opened with O_DIRECT, does not.
AFIO needs to emulate the POSIX behaviour using either memcpy to form a single buffer when buffers are small, or byte range locks when the buffers are large.