主程序調用wi.dll中的函數SetHook來安裝全局WH_CBT鉤子。全局WH_CBT鉤子DLL只加載到一些進程
bool WI_API SetHook()
{
if (!g_hHook)
{
g_hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC) CBTProc, g_hInstDll, 0);
}
return g_hHook != NULL;
}
我推測在安裝全局鉤子之後,應該將wi.dll加載到每個進程的地址空間中。但是,wi.dll只能加載到某些進程。例如,如果我啓動Skype,MS Word,我可以看到wi.dll也加載到這些進程中(使用Process Explorer),但是如果我運行Firefox,uTorrent,Adobe Reader,那麼wi.dll不會加載到這些進程中。
我使用W7 64位主程序和wi.dll是32位,這裏提到的所有程序都是32位程序。
任何想法爲什麼發生這種情況?
在此先感謝。