我寫了一個磁盤工具,允許您擦除整個物理驅動器。它使用Windows文件API,美其名曰:在win 7中無法寫入物理驅動器?
destFile = CreateFile("\\\\.\\PhysicalDrive1",
GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,createflags, NULL);
,然後只是打電話WriteFile
,並確保你在行業的倍數寫,即512個字節。
在過去,XP和Win7 RC上都能正常工作,所有你需要做的就是確保你以管理員身份運行它。
但現在我零售Win7專業,它不再工作了!驅動器仍然可以正常打開,但在成功打開的驅動器上調用WriteFile
現在失敗!
有沒有人知道這可能是爲什麼?它可能與打開共享標誌有關嗎?這總是我以前做過的,並且它的工作。現在是否可以共享驅動器?阻止寫入?有沒有辦法正確地「卸載」一個驅動器,或者至少是其上的分區,以便我可以獨佔訪問它?
曾經工作過的其他一些工具也不再有,但有些工具就像WD Diagnostic的擦除功能一樣。並且在擦除驅動器之後,我的工具也可以使用它!讓我相信我需要首先對驅動器進行一些「卸載」過程,以釋放寫入驅動器的權限。
任何想法?
更新:從WriteFile
返回
錯誤代碼爲「5」,ERROR_ACCESS_DENIED
但同樣,如果我「刪除」先使用WD Diag(診斷)的驅動器,然後我就可以訪問和寫入到驅動器的罰款。當我再次初始化驅動器,並給它一個分區時,我回去得到ERROR_ACCESS_DENIED
錯誤。
請通知錯誤代碼或錯誤消息。 – jweyrich 2010-04-11 08:06:15
@jweyrich:錯誤是:ERROR_ACCESS_DENIED – matt 2010-04-11 08:19:14
我的建議是檢查UAC是否有這樣的東西。嘗試禁用它並重新運行你的應用程序。評論結果。 – jweyrich 2010-04-11 08:40:42