Выгрузка DLL из всех процессов после отсоединения глобальной ловушки CBT

<, p> Как правильно выгружать DLL из всех процессов, когда общесистемный хук, который их загружал, выгружается?

ОтMSDN:

Вы можете освободить глобальную подключаемую процедуру, используя UnhookWindowsHookEx,но эта функция не освобождает DLL, содержащую процедуру подключения, Это связано с тем, что глобальные подключаемые процедуры вызываются в контексте процесса каждого приложения на рабочем столе, вызывая неявный вызов функции LoadLibrary для всех этих процессов. Поскольку вызов функции FreeLibrary не может быть выполнен для другого процесса, нет возможности освободить DLL. Система в конечном итоге освобождает DLL после того, как все процессы, явно связанные с DLL, были либо завершены, либо вызвали FreeLibrary, и все процессы, которые вызвали подключаемую процедуру, возобновили обработку вне DLL.

Итак, что я ищу, так это метод определения, когда крюк отцеплен, и затем вызовFreeLibrary от всех процессов, которые были подключены. Есть ли другие способы вызвать мгновенную выгрузку DLL, когда хук выгружен?

Ответы на вопрос(2)

Ваш ответ на вопрос