无法将WriteFile写入C中的卷

时间:2017-02-14 13:37:30

标签: c windows winapi ntfs writefile

我在 C 中使用WriteFile功能时遇到了一些问题。

我打开卷T的句柄:CreateFile

HANDLE hvol = CreateFile("\\\\.\\T:", GENERIC_READ | GENERIC_WRITE, 3,
                  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

使用SetFilePointer

设置文件指针
DWORD offset = SetFilePointer(hvol, bps + datarunOffset[0], NULL, FILE_BEGIN);

并写道:

bool wsuccess = WriteFile(hvol, filearray, secfilesize, &byteswritten, NULL);

其中filearray是小文件的字节值数组,而secfilesizefilearray中的元素数,四舍五入到磁盘扇区的倍数大小(512)。

如果我将文件指针设置为 0x400 $ Boot 的第二个扇区),则写入的数组没有错误代码。

如果我将文件指针设置为 0x3200 $ UpCase 的第二个扇区),则不会写入任何内容

  

错误代码5:拒绝访问

返回。

我找不到解决方案,而且我可以完全控制音量。我可以写 $ Boot 而不是 $ UpCase 这似乎很奇怪,这有什么理由吗?任何人都可以提供解决方案吗?

0 个答案:

没有答案