Я не уверен, что понимаю ваш вопрос. GPF - это ситуация, когда процессор выдает прерывание.
Если это происходит в пользовательском режиме - это переводится в исключение SEH, которое, в свою очередь, может обрабатываться процессом. Если это не обработано - процесс "вылетает". Означает - отображается некрасивое окно сообщения, и процесс завершается (в зависимости от настроек процесс также может быть отлажен, сгенерирован дамп отладки и т. Д.)
ЕСЛИ это происходит в режиме ядра - есть две возможности. Если это произошло в контексте, где допускаются исключения - исключение SEH возникает и обрабатывается (аналогично режиму пользователя). Однако если исключение не обрабатывается или контекст, в котором произошел GPF, не допускает исключений - ОС выключается, отображая так называемый BSOD (синий экран смерти).
Теперь по вашему вопросу я вижу несколько возможностей:
- ОС умирает, и вы хотите знать, какой процесс сделал системный вызов, который вызвал GPF в режиме ядра.
Это можно обнаружить с подключенным отладчиком ядра. Вы также увидите драйвер, вызвавший ошибку.
- GPF происходит в пользовательском режиме внутри процесса и не обрабатывается.
Этот процесс завершится сбоем, и вы точно будете знать, что это был за процесс.
- GPS происходит внутри процесса, обрабатывается, и процесс продолжает выполняться. И вы хотите получать уведомления об этом.
Для этого вы можете присоединиться к процессу с помощью отладчика. Всякий раз, когда возникает исключение SEH внутри процесса - отладчик уведомляется ОС.