測定メモリの使用デバイスドライバのインストールWindows
-
23-08-2019 - |
質問
たいのですがどのメモリの各デバイスドライバですか?ねこのきもWin32います。純APIがっていないといを決定することができます。
解決
私は、これは非自明である知っています。ここではいくつかの出発点は、密接に関連する質問はあります:
あなたは VirtualQueryEx PEファイル、ヒープ、等が使用するメモリを決定するために、ここでは、迂回路が動的メモリを追跡するためにのようなものを使用することがあるベストショット彼らが作ったとorginatorを決定するために、スタックを歩いているよう割り当て。最後に、あなたがデバイスドライバのためにこれを行うことを望むという事実は、さらに一歩それを取ります。私は(私は間違いなく知らないが)迂回路は、デバイスドライバのために使用することができます疑います。私は、ドライバが非常に非自明であるデバイスからスタックを歩いて知っています。
また、 SysInternalsのスイートに。 「システム」に移動し、それを実行して、表示/にアクセスしてください下のペインを表示し、DLLのを有効にします。そして、右の列のヘッダーをクリックして、例えばワーキングセット用のものを追加'WS合計'。私は、これは適切にそれらをメモリにラベルを付けるために何をするかわかりません。私のボックスで、それは彼らにデバイスドライバのマッピングされた画像の大きさを与えるが、単に作業中0K列を設定しています。私はこの問題を解決することはスナップではないだろうという合理的な証拠としてprocexpからの回答の欠如を取るます。
幸運ます。
他のヒント
Windowsトラックデバイスドライバーメモリ使用量プールがあるタグです。どんなものか知っていればプタのドライバーに問題が ExAllocatePoolWithTag
, きますので、そのトラックメモリ使用量を使用ツールなど poolmon
(Windowsのドライバーキット), PoolTag (OSR)、 Windbgの(又はKD) のデバッグツールWindows)で作成しています。
ご注意デバイスドライバーがカーネルのApiが間接的にメモリを割り当て.例えば、呼び出し IoAllocateMdl
の原因になりまWindows I/Oのマネージャーメモリを割り当てたメモリを記述子のリストをプールにタグを割り当て、クマラコムボートジェッティI/Oます。これにより、割当てを行い代わりに複数のデバイスドライバがすべて同一のプールタグです。
いいかを決定するドライバーが漏れたメモリを使用poolmon/PoolTag/windbgの/KDの特定のプールタグ(s)などの情報が漏えいするその添付のカーネルデバッガ(windbgの又はKD)システム設定の変数 nt!poolhittag
の漏洩プールタグです。次の時間 ExAllocatePoolWithTag
と呼ばれるメモリを割り当てるプールタグ、システムのカーネルデバッガ、そのままの呼び出しスタックによるドライバの配分についてこのプロセスをさらに詳細に説に のカーネルデバッガを探カーネルモードのメモリリーク.