Есть такая ситуация: прога и драйвер работают в паре. Прога периодически провоцирует исключения. Как довести исключение до ZwRaiseException, чтобы там драйвер перехватил управление, сделал кое-что и вернул управление проге? И вообще, возможно ли это? С условием не вызывать RaiseException, а чтобы это происходило например по xor eax,eax mov eax,[eax]
А не лучше перехват KiUserExceptionDispatcher в ntdll.dll, как в Soft-ice? Прога ведь дружит с драйвером в твоём случае. Ведь не факт что без RaiseException получится. Код NtRaiseException (ты наверное его видел): B8B5000000 mov eax, 000000B5 BA0003FE7F mov edx, 7FFE0300 FF12 call dword ptr [edx] C20C00 ret 000C И как всегда по тому адресу: mov edx, esp sysenter (для XP). Так что твоя задача возможно неразрешима.
Вообще-то исключение должно проходить через кернел, вот только какими путями оно там ходит - неясно. А патчить юзер-модную dll из драйвера мне кажется (может и я не прав) нехорошо.