实现窗口挂钩的DLL崩溃与“错误模块名称:myDll.DLL_unloaded”

时间:2013-08-16 09:58:17

标签: windows hook

我有一个使用某些钩子函数的DLL,它在Windows 7和XP上运行正常。但是在Windows 8上,当我使用IE 10或其他程序时,我会崩溃。

  

错误模块名称:myDll.DLL_unloaded

你能告诉我为什么会发生这种情况以及如何解决这个问题吗?

顺便说一句,如果我运行一个程序,例如IE,具有管理员权限或在Windows 7或XP兼容模式下,它不会崩溃。

以下是我的代码的一部分:

if (checkWorking())
{
  addString2File("C:\\dll.txt", "core online");
  // TRACE("core online!");
  HHOOK hHook = ::SetWindowsHookEx(WH_CALLWNDPROC, WindowHook, g_hModule, NULL);
  ::PostMessage(HWND_BROADCAST, WM_NULL, 0, 0);

  tools::security::SecurityAllAccess sa;
  HANDLE hSleepEvent = ::CreateEvent(sa, TRUE, FALSE, g_tszTermEventName);
  tools::security::GrantLowIntegrityAccess(SE_KERNEL_OBJECT, hSleepEvent);
  tools::endsession::WaitEndSession(hSleepEvent);
  ::UnhookWindowsHookEx(hHook);
}
else
{
  TRACE("wrong start!");
}

0 个答案:

没有答案