1

何らかの理由で、ハードディスクの一部の構成(RAID、ランダムパーティション、オペレーティングシステムパーティションではなく、別のIDEコントローラーを介して)で実行している場合、アプリケーションで.のコードがVirtualAlloc返されます。nullGetLastErrorERROR_INVALID_PARAMETER

渡されるフラグ以外の唯一のパラメーターは(MEM_COMMIT | MEM_TOP_DOWN, PAGE_READWRITE)、ディスクジオメトリから取得されたセクターサイズの倍数として計算されたサイズです(残念ながら、NDAなどのためにコードを投稿できません)。

誰かがこれの経験を持っているかどうか疑問に思っていますか?または、RAIDの一部であるかパーティション化されているディスクでWindowsがページサイズを異なる方法で処理する理由を誰かが知っている場合は、助けていただければ幸いです。

4

1 に答える 1

0

問題は、IOCTL_DISK_GET_DRIVE_GEOMETRYを返そうとしたときにDeviceIoControlに関係していたため、プライマリhdd以外を使用すると完全なガベージが返されるようでした。代わりに、セクター情報を取得するためにGetDiskFreeSpaceを使用してこれを解決し、すべて正常に機能しています。

明らかに、IOCTL_DISK_GET_DRIVE_GEOMETRYがガベージである理由を見つけるのが理想的ですが、それが機能することを嬉しく思います。

于 2009-06-30T17:03:04.483 に答える