当我尝试写入每个扇区具有字节数的磁盘= 4096. [3 TB磁盘]时,WriteFile()Win32调用的输入缓冲区大小= 512失败。输入缓冲区大小= 4096的相同WriteFile可以正常工作。

任何人都可以解释这种行为。

最佳答案

对于低级别的I / O操作,缓冲区必须是扇区大小的整数倍。您的情况是k*4096。您的硬盘很可能是很久以前才生产的。它们被称为“高级格式”,每个扇区具有4096字节。我不介意我将它设置为512,因为它很旧。尝试使用GetDiskFreeSpace功能来了解有关硬盘驱动器的更多信息。

关于c++ - WriteFile失败,错误代码为87,每个扇区磁盘为4096字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15216374/

10-13 07:39