最近、私は imdisk http://www.ltr-data.se/opencode.html/#ImDiskを使用しています。 次のコマンドで 1 GB の RAM ディスクを作成しています: imdisk.exe -a -t vm -m V: -s 1024M -p "/fs:NTFS /q /y /v:Name /c" この RAM ディスクの物理 RAM の容量を知りたいです。しかし、それはラムディスクがファイルでどのように満たされているかに依存しているようです. 数MBから始まり、コピーするファイルごとに増加します。これらのファイルを削除しても、必要な物理 RAM の量は減りません。そのため、正しく表示されないため、GetDiskFreeSpaceEx を使用して物理 RAM の量を取得することはできません。また、プログラムのドライバーを通常のプログラムとして見ることができないため、そのサイズを測定できました。
著者と話をしたところ、彼は次のように述べています。
さて、あなたは物理メモリについて話していました。カーネルアドレス空間について話していました。ImDisk は、RAM ディスクの 1 つのアドレス ブロックにすべてのメモリを一度に割り当てるため、動的な割り当てなどはありません。
このアドレス空間が特定の瞬間に使用する物理メモリの量を判断する唯一の方法は、特定のメモリ ブロックのコミット/物理値を報告する文書化されていない API がある場合だと思います。ただし、そのようなAPIは知りません。
しかし、誰かが方法を知っているかもしれません...視覚的にだけでなく、プログラムでその数を取得することを意味します。