Спасибо за ответ.
Но появились некоторые проблемы. Я сделал следующую проверку:
if (KeGetKurrentIrql() >= DISPATCH_LEVEL)
return STATUS_FAILED;
Но завесы системы не прекратились, при чем в том же месте.
Кроме того, оказалось, что, на самом деле, завес происходит
после вызова KeSetEvent(). А SoftIce, в заголовке окна, пишет
ntoskrnl!KeReleaseMutex + 003B. Наверное, KeSetEvent() внутри
себя пытается освободить мютекс и виснет. Почему? Неизвестно...