3

6 GB の RAM を搭載した Vista x64 マシンを使用しており、4 GB を超える物理アドレスに DMA を実行するときにデバイス ドライバーが正しく機能することをテストしようとしています。

AllocationPreference レジストリ キーを見つけました。これは、「割り当てを強制的に割り当てを下位アドレスの前に上位アドレスから割り当てる」ことになっていますが、このページでは、これが物理アドレスに影響するのか、仮想アドレスのみに影響するのか明確ではありません。私のコードの動作に基づいて、仮想アドレスのみに影響していると思われます。

また、「オペレーティング システム、デバイス ドライバー、およびすべてのアプリケーションを 4 GB 境界より上のアドレスに」ロードすることになっている nolowmem ブート オプションに出くわしましたが、これは 32 ビット バージョンの Windows にのみ適用されるようです。Vista x64 で有効にしようとしましたが、マシンが起動しません。数日前にこのマシンをセットアップしたばかりなので、サービス パックはありませんでした。これがWindowsのバグによるものかどうかを確認するために、現在それらをインストールしています。

4GB を超える物理アドレスに裏打ちされた 4GB を超える仮想アドレスを Windows に強制的に割り当てる方法はありますか?

4

1 に答える 1

3

MmAllocateContiguousMemorySpecifyCacheを試してください。

于 2009-07-20T22:57:15.877 に答える