Интересный вопрос. Я не знаю ничего встроенного в Win32 - думаю, вам, возможно, придется создать библиотеку DLL с API, который сигнализировал о событиях или публиковал сообщения, когда он получал различные сообщения присоединения / отсоединения.
Альтернативой, которая не требует отдельной библиотеки DLL, но потребует некоторых хитростей, является использование API отладки (особенно WaitForDebugEvent()
). Если ваше приложение имеет специальный режим «test» (может быть указан параметром командной строки), который ничего не делает, кроме перезапуска exe с использованием CreateProcess()
с флагом DEBUG_ONLY_THIS_PROCESS
, родительский процесс («отладчик») может вызвать WaitForDebugEvent()
получать уведомления о начальных и конечных событиях потока, а также множество других интересных событий. Родительский процесс может передавать их дочернему элементу в виде сообщений или сигнализировать о событиях (если это то, что вам нужно) или выполнять собственную регистрацию, если это все, что вам нужно.
Ни в коем случае не простая вещь, но она будет работать и не потребует отдельной DLL или образа, просто специальный режим, когда вы хотите выполнить эти тесты.