[英]Using Module32First/Next to Enumerate 32bit Process Modules from 64bit Process
这是代码:
hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE32, dwPID );
if( hModuleSnap == INVALID_HANDLE_VALUE )
{
return( r_mi );
}
me32.dwSize = sizeof( MODULEENTRY32 );
if( !Module32First( hModuleSnap, &me32 ) )
{
CloseHandle( hModuleSnap );
return( r_mi );
}
do
{
MessageBoxA(0,me32.szModule,0,0);
} while( Module32Next( hModuleSnap, &me32 ) );
问题是,当尝试从 64 位进程枚举 32 位进程的模块时,只列出了 x64 模块。
来自 MSDN for TH32CS_SNAPMODULE32:当从 64 位进程调用时,包括快照中 th32ProcessID 中指定的进程的所有 32 位模块。
但是,它仍然只列出了 x64 模块
任何人都知道解决这个问题?
你必须使用TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE感谢Hans Passant解决这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.