我GOOGLE了很多,我找不到任何回答這個問題......WriteFile的錯誤#5「拒絕訪問」低贏VISTA/7
我有一個C++控制檯應用程序讀取1GB的SD卡修復不正確關閉的文件並相應地寫入FAT表。 SD卡最初由定製設備中的固件寫入。 它工作正常到Xp並停止在Win Vista/7下工作。 我試圖提升權限:在管理員帳戶類型中,我使用「以管理員身份運行」方法啓動了cmd窗口,但沒有運氣。 我也嘗試了一個清單,要求最高可用特權,但沒有運氣。
我在某篇文章中讀到「Windows Vista不允許你從用戶模式進程訪問磁盤。有沒有人知道繞過這種行爲的任何方式?
我的解決辦法的工作,但是我想知道這是不可能或不
編輯:
這是我在這裏的第一篇文章,所以我不太明白有關連結的問題......但我不會reated任何垃圾郵件在所有...只是在一個comunity驅動的網站:)
代碼看起來像
hDevice = CreateFile(buffer,GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING,0,NULL);
問
然後我從SD中讀取BTB信息並查找和不正確地關閉文件。
試圖寫入SD
WriteFile(hDevice,buffer,SD_SECTOR_SIZE, &temp, 0)
我得到拒絕訪問最後,當(錯誤#5)
上的CreateFile(字符串)是\ \ G:爲政函對應到我機器上的SD卡。所有這些工作都很好,正如我之前說的那樣,在XP上炒作。我也嘗試過使用:DeviceIoControl和FSCTL_LOCK_VOLUME,但這會導致mem錯誤。
希望這有助於理解和感謝所有幫助
+1:「在工作區的工作」 ...... – Chubsdad 2010-08-30 13:40:05
我們有了是從Vista/7訪問原始磁盤文件的方式 - 是怎麼回事能公用事業準備linux開機USB棒安裝他們的bootloader? – bdonlan 2010-08-30 13:49:14
@andy,你可以發佈一些示例代碼來顯示你在做什麼,這樣我們可以看到什麼可能是錯的? – bdonlan 2010-08-30 13:51:17