0

TH32CS_SNAPHEAPLISTフラグを指定してCreateToolhelp32Snapshotを呼び出し、次に(Heap32First / Heap32Nextを使用してヒープリストをトラバースします)を使用しています。

これは、同じアーキテクチャ(32ビットまたは64ビット)用に構築されたプロセス間で問題なく機能するようですが、「アーキテクチャ間」を呼び出すと奇妙な結果が得られます。これは32ビットでは意味があり、実際には次のように文書化されています。

指定されたプロセスが64ビットプロセスであり、呼び出し元が32ビットプロセスである場合、この関数は失敗し、最後のエラーコードはERROR_PARTIAL_COPY(299)です。これは予想される動作である可能性がありますが、反対方向に文書化されていることはわかりません。

したがって、64〜32ビットの場合、32〜32の場合に10以上に戻ったプロセスのヒープは2つだけになります。

これらがwow64で使用されているヒープであるかどうかはわかりませんが、私の質問は次のとおりです。

64ビットプロセスから32ビットプロセスのヒープリストを取得するにはどうすればよいですか?

ヒープの不一致に関する情報はボーナスになります。

4

0 に答える 0