[GSOD]SYSTEM_SERVICE_EXCEPTION... Заметка

[GSOD]SYSTEM_SERVICE_EXCEPTION в win32kfull!SetMagnificationInputTransform при завершении процесса

В экспериментальной сборке Windows 11 Insider Build 26340.9233 произошли два сбоя с "зеленым экраном" типа SYSTEM_SERVICE_EXCEPTION. Анализ соответствующих минидампов выявил идентичные детали сбоя, включая точную вызывающую функцию, стек вызовов и процесс. Сбои последовательно происходили во время последовательности завершения процесса в Windows. В частности, система давала сбой при уничтожении связанного с процессом объекта рабочего стола и очистке состояний преобразования входных данных для увеличения.Анализ WinDbg выявил проблему в win32kfull!SetMagnificationInputTransform. Разыменование нулевого указателя в этой функции, в частности попытка чтения по нулевому адресу памяти, вызвало исключение 0xC0000005. Стек вызовов показывает, что сбой исходит от NtTerminateProcess, проходя через несколько функций ядра, связанных с очисткой процессов и рабочего стола. Критический путь включает уничтожение рабочего стола и последующую инвалидацию преобразований входных данных для увеличения.Оба сбоя продемонстрировали одинаковый код остановки, тип исключения, хэш сбоя и запускающий процесс, codex-command-runner-0.149.0-alpha.4.1.exe. Это демонстрирует высокую степень воспроизводимости, исключая случайные аппаратные ошибки. Проблема, по-видимому, вызывается при выходе из приложения codex-command-runner, которое, вероятно, включает создание и уничтожение временных или изолированных рабочих столов. Фактическое нарушение доступа к памяти происходит в ядре Windows, win32kfull.sys.При нормальных обстоятельствах Windows должна безопасно очищать состояния преобразования входных данных для увеличения при завершении процесса пользовательского режима или уничтожении его объектов рабочего стола. Текущее поведение отклоняется, поскольку функция win32kfull!SetMagnificationInputTransform не проверяет объект перед доступом к нему, что приводит к сбою всей системы. Microsoft просят расследовать время жизни объектов, проверки нулевых указателей и возможные состояния гонки в пути очистки преобразования входных данных для увеличения в сборке 26340.9233. Особое внимание следует уделить изменениям, связанным с Magnifier, и способам обработки короткоживущих рабочих столов.