1

ディスク内のすべてのボリュームのスナップショットを作成するプログラムがあります。を使用して各ボリュームのデータを読み取りますFSCTL_GET_VOLUME_BITMAP。データを別のファイルに書き込みます。

すべてが正常に機能しますが、示されているようにコードを変更すると機能しません。

ボリュームに OS が含まれている場合は、いくつかのドライバー ファイルを system32/drivers にコピーするため、データを読み取る前に書き込みが発生します。

FSCTL_GET_VOLUME_BITMAP書き込み完了後にのみ取得した Volumebitmap を読み込みます。ただし、新しくコピーされたファイルの値のみを返します。すでに存在していた他のすべてのデータは 0 です。

デバッグモードでコードをデバッグしようとすると、古いデータと新しいデータが完全に取得されます。しかし、リリース モードで実行しようとすると、新しくコピーされたファイルのみである変更された値が返されます。

これをデバッグモードとリリースモードにする問題は何ですか?

プロパティ C/C++ Optimization、Whole program Optimization -> はいを設定しようとしましたが、間違った値が提供されます。しかし、「いいえ」に設定すると、正しい結果が得られます。

そのため、リリース モード中に問題が発生します。

4

0 に答える 0