2013-03-05 157 views
0

當輸入緩衝區大小= 512時,WriteFile()Win32調用失敗,當我嘗試寫入每個扇區字節數= 4096的磁盤時。[3 TB磁盤] 。相同的WriteFile輸入緩衝區大小= 4096工作正常。,WriteFile失敗,錯誤代碼爲87,每扇區4096字節磁盤

任何機構可以解釋此行爲。

+0

你在使用什麼操作系統?並非所有的Windows都支持4K扇區大小。 – Joshua 2013-03-05 05:38:07

+0

87L ERROR_INVALID_PARAMETER參數不正確 – sergmat 2013-03-05 06:11:29

+0

告訴我們更多關於您正在寫入的手柄類型的信息。我們需要更多細節。不要害羞! – 2013-03-05 08:04:33

回答

3

對於低級I/O操作,您的緩衝區必須是扇區大小的整數倍。在你的情況下,k*4096。很可能你的硬盤不是很久以前製造的。它們被稱爲「高級格式」,每個扇區有4096個字節。我不介意,如果我把它設置爲512,因爲它是舊的。嘗試使用GetDiskFreeSpace函數來了解有關硬盤驅動器的更多信息。

相關問題