私はたくさんグーグルで検索しましたが、この問題に対する答えが見つかりませんでした...
不適切に閉じられたファイルを修正し、それに応じて FAT テーブルを書き込む 1GB SD カードを読み取る C++ コンソール アプリケーションがあります。SD カードは、カスタム メイド デバイス内のファームウェアによって最初に書き込まれます。Xp までは問題なく動作し、Win Vista/7 では動作しなくなりました。権限の昇格を試みました。管理者アカウント タイプ内で、「管理者として実行」メソッドを使用して cmd ウィンドウを起動しましたが、うまくいきませんでした。私はまた、最高の利用可能な権限を要求するマニフェストを試しましたが、うまくいきませんでした。
「Windows Vista では、ユーザー モード プロセスからディスクにアクセスすることはまったく許可されていません。この動作をバイパスする方法を知っている人はいますか?
私は回避策に取り組んでいますが、これが不可能かどうかを知りたいです
編集:
これは私の最初の投稿なので、リンクの問題についてはよくわかりません...しかし、スパムにはまったく反応しません...コミュニティ主導のサイトで質問しているだけです:)
コードは次のようになります
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: です。これは、g の文字が私のマシンの SD カードに対応しているためです。すべて問題なく動作し、前に述べたように XP で動作します。FSCTL_LOCK_VOLUME を使用した DeviceIoControl も使用してみましたが、mem fault エラーが発生します。
これが理解に役立つことを願っています。