WriteFile()输入缓冲区大小= 512的Win32调用失败。当我尝试写入每扇区有字节数= 4096的磁盘时。[3 TB磁盘]。输入缓冲区大小= 4096的相同WriteFile工作正常。
任何机构都可以解释这种行为。
答案 0 :(得分:3)
对于低级I / O操作,缓冲区必须是扇区大小的整数倍。在您的情况下,k*4096
。很可能你的硬盘很久以前就没有制造过。它们被称为“高级格式”,每个扇区有4096个字节。我不介意我把它设置为512因为它已经老了。尝试使用GetDiskFreeSpace
功能了解有关硬盘的更多信息。