BSOD
0x0000010D: WDF_VIOLATION
Синий экран смерти 0x0000010D указывает, что Kernel-Mode Driver Framework (KMDF) обнаружил, что Windows нашел ошибку в драйвере, основанном на framework.
Параметры WDF_VIOLATION:
1 параметр указывает код ошибки. 4 параметр зарезервирован.
1 параметр | 2 параметр | 3 параметр | Причина ошибки |
0x1 | Указатель на структуру WDF_POWER_ROUTINE_ TIMED_OUT_DATA | Зарезервированный параметр | Основанный на framework драйвер простаивал во время работы питания. |
0x2 | Зарезервированный параметр | Зарезервированный параметр | Была предпринята попытка на получение блокировки, которая уже имеется. |
0x3 | Описатель WDFREQUEST | Число ссылок, которые остаются в обоих буферах | Windows Driver Framework Verifier обнаружил фатальную ошибку. |
0x4 | Зарезервированный параметр | Адрес вызывающей стороны | Нулевой параметр был передан функции, которая требовала ненулевое значение. |
0x5 | Значение описателя | Зарезервированный параметр | Описатель объекта framework неправильного типа был передан к методу объекта framework. |
0x6 | см. таблицу ниже. | ||
0x7 | Описатель объекта framework | Зарезервированный параметр | Драйвер попытался неправильно удалить объект framework. Вызвав WdfObjectDereference, чтобы удалить описатель вместо того, чтобы вызвать WdfObjectDelete. |
0x8 | Описатель объекта транзакции DMA | Зарезервированный параметр | Выполнение операций на объекте транзакции DMA, который находится в некорректном состоянии. |
0x9 | В настоящее время не используется. | ||
0xA | Указатель на структуру WDF_QUEUE_FATAL_ERROR_DATA | Зарезервированный параметр | Фатальная ошибка произошла при обработке запроса, который находится в очереди. |
0xB | см. таблицу ниже. | ||
0xC | Описатель WDFDEVICE | Указатель на новый IRP PnP | Новый запрос на изменение состояния IRP PnP прибыл, в то время как драйвер обрабатывал другой запрос изменения состояния IRP PnP. |
0xD | Описатель WDFDEVICE | Указатель на питание IRP | Владелец политики управления питанием устройства получил питание IRP, которое не запрашивалось. |
0xE | IRQL, в котором вызвали функцию обратного вызова события | IRQL, в котором возвратили функцию обратного вызова события | Функция обратного вызова события не вернулась в том же IRQL, в котором ее вызвали. Функция обратного вызова изменила IRQL прямо или косвенно (например, получая спин-блокировку, которая повышает IRQL до DISPATCH_LEVEL, не выпуская спин-блокировку). |
0xF | Адрес функции обратного вызова события | Зарезервированный параметр | Функция обратного вызова события вошла в критическую область, и не освободила её перед возвратом. |
Если 1 параметр равен 0x6, то фатальная ошибка была сделана в описателе запроса WDF. В этом случае 2 параметр определяет тип фатальной ошибки.
2 параметр | 3 параметр | Причина ошибки |
0x1 | Адрес IRP | Cтек ввода-вывода не доступен для форматирования базового IRP. |
0x2 | Значение описателя запроса WDF | Предпринята попытка отформатировать объект запроса framework, который не содержит IRP. |
0x3 | Значение описателя запроса WDF | Драйвер попытался отправить запрос framework, который был уже отправлен к целевому ввода-вывода. |
0x4 | Указатель на структуру WDR_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA, которая содержит указатель IRP, значение описателя запроса WDF, главная функция IRP и количество байтов, которые пытались записать | Драйвер завершил запрос framework, но записал больше байтов в буфер вывода, чем определено в IRP. |
Если 1 параметр равен 0xB, то попытка получить или выпустить блокировку недопустима. В этом случае 3 параметр определяет ошибку.
2 параметр | 3 параметр | Причина ошибки |
Значение описателя | 0x0 | Описатель передавался WdfObjectAcquireLock, или WdfObjectReleaseLock представляя объект, который не поддерживает блокировки. |
Описатель спин-блокировки WDF | 0x1 | Спин-блокировка выпускается потоком, который не получал ее. |
Решение
Во всех случаях синий экран смерти 0x0000010D вызывается сбойным драйвером. Если в сообщении ошибки отсутствует название драйвера, то его можно выявить с помощью дампа памяти. После чего, в зависимости от ситуации, его необходимо обновить, откатить или удалить.
Для устранения ошибки воспользуйтесь статьей “Общие рекомендации по устранению BSoD”.
{jcomments on}