0xC9 проверки ошибок: DRIVER_VERIFIER_IOMANAGER_VIOLATION

Проверка ошибок DRIVER_VERIFIER_IOMANAGER_VIOLATION имеет значение 0x000000C9. Это ошибка проверка кода для всех нарушений проверки ввода-вывода средства проверки драйверов.

Важно!

Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки синего экрана во время работы с компьютером, см. статью Устранение ошибок синего экрана.

Параметры DRIVER_VERIFIER_IOMANAGER_VIOLATION

Если средство проверки драйверов активно и выбрана проверка ввода-вывода, различные нарушения ввода-вывода вызовут эту ошибку проверка. Параметр 1 определяет тип нарушения.

Параметр 1 Параметр 2 Параметр 3 Параметр 4 Причина ошибки

0x01

Адрес освобождения IRP

0

0

Драйвер попытался освободить объект, тип которого не IO_TYPE_IRP.

0x02

Адрес освобождения IRP

0

0

Драйвер попытался освободить IRP, который по-прежнему связан с потоком.

0x03

Адрес отправки IRP

0

0

Драйвер передал IoCallDriver тип IRP, не равный IRP_TYPE.

0x04

Адрес объекта устройства

0

0

Драйвер передал IoCallDriver недопустимый объект устройства.

0x05

Адрес объекта устройства, связанного с драйвером, который обижает

IRQL перед IoCallDriver

IRQL после IoCallDriver

IrQL изменился во время вызова подпрограммы диспетчеризации драйвера.

0x06

Состояние IRP

Адрес завершения IRP

0

Драйвер с именем IoCompleteRequest с состоянием, помеченным как ожидание (или равно -1).

0x07

Адрес процедуры отмены

Адрес завершения IRP

0

Драйвер с именем IoCompleteRequest , пока его процедура отмены все еще была задана.

0x08

Адрес объекта устройства

Код основной функции IRP

Код состояния исключения

Драйвер передал IoBuildAsynchronousFsdRequest недопустимый буфер.

0x09

Адрес объекта устройства

Код элемента управления ввода-вывода

Код состояния исключения

Драйвер передал IoBuildDeviceIoControlRequest недопустимый буфер.

0x10

Текущий IRQL

Зарезервировано

Зарезервировано

IoCallDriver был вызван выше DISPATCH_LEVEL.

0x11

Адрес подпрограммы отправки быстрых операций ввода-вывода драйвера

IRQL перед вызовом процедуры диспетчеризации драйвера

Текущий IRQL

IoCallDriver был вызван выше DISPATCH_LEVEL.

0x12

Адрес подпрограммы отправки драйвера

IRQL перед вызовом процедуры диспетчеризации драйвера

Текущий IRQL

IoCallDriver был вызван выше DISPATCH_LEVEL.

0x0A

Адрес объекта устройства

0

0

Драйвер передал IoInitializeTimer объект устройства с уже инициализированным таймером.

0x0C

Адрес блока состояния ввода-вывода

0

0

Драйвер передал блок состояния ввода-вывода в IRP, но этот блок выделяется в стеке, который уже раскручен после этой точки.

0x0D

Адрес объекта события пользователя

0

0

Драйвер передал пользовательское событие в IRP, но это событие выделяется в стеке, который уже раскручен после этой точки.

0x0E

Текущий IRQL

Адрес IRP

0

Драйвер с именем IoCompleteRequest с DISPATCH_LEVEL IRQL > .

0x0F

Адрес объекта устройства, которому отправляется IRP

Указатель на IRP

Указатель на объект file

Драйвер отправил запрос на создание с закрытым или отмененным объектом файла.

В дополнение к ошибкам, упомянутым в предыдущей таблице, существует ряд ошибок проверки ввода-вывода , которые приводят к остановке системы средства проверки драйверов, но на самом деле не являются проверками ошибок.

Эти ошибки приводят к отображению сообщений на синем экране, в файле аварийного дампа и в отладчике ядра. Эти сообщения будут отображаться по-разному в каждом из этих расположений. При возникновении этих ошибок шестнадцатеричная ошибка проверка код 0xC9 и строка проверка ошибки DRIVER_VERIFIER_IOMANAGER_VIOLATION не отображаются на синем экране или в отладчике, хотя они будут отображаться в файле аварийного дампа.

На синем экране будут отображаться следующие данные:

  • Сообщение IO SYSTEM VERIFICATION ERROR.

  • Сообщение WDM DRIVER ERRORXXX, где XXX — шестнадцатеричный код, представляющий конкретную ошибку. (Список кодов ошибок ввода-вывода и их значения см. в таблице ниже.)

  • Имя драйвера, вызвавшего ошибку.

  • Как правило, это адрес в коде драйвера, по которому была обнаружена ошибка (параметр 2).

Если включен аварийный дамп в режиме ядра, в файле аварийного дампа будут отображаться следующие сведения:

  • Сообщение BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).

  • Шестнадцатеричный код ошибки ввода-вывода. (Список кодов ошибок ввода-вывода и их значения см. в таблице ниже.)

  • Как правило, это адрес в коде драйвера, по которому была обнаружена ошибка (параметр 2).

Если отладчик ядра подключен к системе, вызвавшей это нарушение, в отладчик будет отправлена следующая информация:

  • Сообщение WDM DRIVER ERROR вместе с оценкой серьезности ошибки.

  • Имя драйвера, вызвавшего ошибку.

  • Описательная строка, объясняющая причину этой ошибки. Часто передаются дополнительные сведения, например указатель на IRP или указатель на объект устройства или сведения IRQL. (Список этих описательных строк и указанная дополнительная информация см. в таблице ниже.)

  • Запрос для дальнейших действий. Возможные ответы: b (break), i (ignore), z (zap), r (remove) или d (disable). Указание операционной системе продолжить позволяет увидеть, что произошло бы "вниз по строке", если бы эта ошибка не произошла. Конечно, это часто приводит к дополнительным проверкам ошибок. Параметр "zap" фактически удалит точку останова, которая привела к обнаружению этой ошибки.

Примечание Никакие другие проверки ошибок не могут быть проигнорированы таким образом. Игнорировать можно только ошибки проверки ввода-вывода такого рода, и даже эти ошибки можно игнорировать только при присоединении отладчика ядра.

В следующей таблице перечислены ошибки проверки ввода-вывода , которые могут возникнуть.

Код ошибки ввода-вывода Статус Причина ошибки

0x200

Неизвестно

Этот код охватывает все неизвестные ошибки проверки ввода-вывода .

0x201

Неустранимая ошибка

Устройство удаляется, когда под ним находится другое устройство в стеке драйверов. Это может быть связано с тем, что вызывающий объект забыл сначала вызвать IoDetachDevice или нижний драйвер мог неправильно удалить себя.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

0x202

Неустранимая ошибка

Драйвер попытался отсоединить объект устройства, который ни к чему не подключен. Это может произойти, если для одного и того же объекта устройства была вызвана функция отсоединения дважды.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3. Адрес объекта устройства.

0x203

Неустранимая ошибка

Драйвер вызвал IoCallDriver без установки процедуры отмены в IRP значения NULL.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x204

Неустранимая ошибка

Вызывающий объект передал значение NULL в качестве объекта устройства. Это неустранимая ошибка.

Параметр 2 . Зарезервировано

Параметр 3 . Зарезервировано

0x205

Неустранимая ошибка

Вызывающий объект перенаправит IRP, который в настоящее время находится под ним в очереди. Похоже, что код, обрабатывающий IRP, возвращающий STATUS_PENDING в этом драйвере, не работает.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x206

Неустранимая ошибка

Вызывающий объект неправильно перенаправил IRP (поле управления не обнуляется). Драйвер должен использовать IoCopyCurrentIrpStackLocationToNext или IoSkipCurrentIrpStackLocation.

Параметр 2 . Зарезервировано

Параметр 3 . Зарезервировано

0x207

Неустранимая ошибка

Вызывающий объект вручную скопировал стек и случайно скопировал подпрограмму завершения верхнего слоя. Драйвер должен использовать IoCopyCurrentIrpStackLocationToNext.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x208

Неустранимая ошибка

Это IRP вот-вот иссякет из расположений стека. Возможно, кто-то переадресовал этот IRP из другого стека.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x209

Неустранимая ошибка

Вызывающий объект завершает IRP, который в настоящее время находится в очереди под ним. Похоже, что код, обрабатывающий IRP, возвращающий STATUS_PENDING в этом драйвере, не работает.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x20A

Неустранимая ошибка

Вызывающий объект IoFreeIrp освобождает IRP, который все еще используется.

Параметр 2 . Зарезервировано

Параметр 3 . Зарезервировано

0x20B

Неустранимая ошибка

Вызывающий объект IoFreeIrp освобождает IRP, который все еще используется.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x20C

Неустранимая ошибка

Вызывающий объект IoFreeIrp освобождает IRP, который по-прежнему находится в очереди в потоке.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x20D

Неустранимая ошибка

Вызывающий объект IoInitializeIrp передал IRP, выделенный с помощью IoAllocateIrp. Это является незаконным и ненужным и вызвало утечку квоты. Если этот IRP перезапускается, ознакомьтесь с документацией по IoReuseIrp .

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x20E

Неустранимая ошибка

IRP PNP имеет недопустимое состояние. (Для любого IRP PNP необходимо инициализировать состояние STATUS_NOT_SUPPORTED.)

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x20F

Неустранимая ошибка

Power IRP имеет недопустимое состояние. (Состояние любого power IRP должно быть инициализировано STATUS_NOT_SUPPORTED.)

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x210

Неустранимая ошибка

WMI IRP имеет недопустимое состояние. (Для любого IRP WMI необходимо инициализировать состояние STATUS_NOT_SUPPORTED.)

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x211

Неустранимая ошибка

Вызывающий объект перенаправил IRP при пропуске объекта устройства в стеке. Вызывающий объект, вероятно, отправляет irp в PDO, а не на устройство, возвращенное IoAttachDeviceToDeviceStack.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x212

Неустранимая ошибка

Вызывающий объект был удален или неправильно скопировал стек IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x213

Неустранимая ошибка

Вызывающий объект изменил поле состояния IRP, которое он не понимает.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x214

Неустранимая ошибка

Вызывающий объект изменил поле сведений ОИП, которое он не понимает.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x215

Неустранимая ошибка

Стек передается без STATUS_NOT_SUPPORTED состояния IRP для IRP_MJ_PNP. Необходимо завершить неудачные irP-подключения PNP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x216

Неустранимая ошибка

Ранее заданное состояние IRP_MJ_PNP преобразовано в STATUS_NOT_SUPPORTED. Это состояние сбоя зарезервировано для использования операционной системой. Драйверы не могут сбой PnP IRP с этим значением.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x217

Неустранимая ошибка

Драйвер не обработал требуемую IRP. Драйвер должен обновить состояние IRP, чтобы указать, была ли она обработана.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x218

Неустранимая ошибка

Драйвер ответил на IRP, зарезервированный для других объектов устройства в другом месте стека.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x219

Неустранимая ошибка

Неудалось STATUS_NOT_SUPPORTED состояние IRP для IRP_MJ_POWER передается вниз стеком. Необходимо завершить сбой power IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x21A

Неустранимая ошибка

Ранее заданное состояние IRP_MJ_POWER преобразовано в STATUS_NOT_SUPPORTED.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x21B

Неустранимая ошибка

Драйвер вернул подозрительное состояние. Вероятно, это связано с ошибкой неинициализированной переменной в драйвере.

Параметр 3 — адрес IRP.

0x21C

Предупреждение

Вызывающий объект скопировал стек IRP, но не установил подпрограмму завершения. Это неэффективно. Вместо этого используйте IoSkipCurrentIrpStackLocation .

Параметр 2 . Зарезервировано

Параметр 3 . Зарезервировано

0x21D

Неустранимая ошибка

Обработчик диспетчера IRP не был должным образом отсоединен от стека под ним при получении удаления IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Параметр 4. Адрес объекта устройства.

0x21E

Неустранимая ошибка

Обработчик диспетчера IRP неправильно удалил объект устройства при получении удаления IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Параметр 4. Адрес объекта устройства.

0x21F

Неустранимая ошибка

Драйвер не заполнил подпрограмму диспетчеризации для требуемой основной функции IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x220

Неустранимая ошибка

IRP_MJ_SYSTEM_CONTROL выполнено кем-либо, кроме ProviderId. Этот IRP должен был быть завершен ранее или должен был быть передан.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Param 4 — ProviderId.

0x221

Неустранимая ошибка

Обработчик диспетчера IRP для PDO удалил объект устройства, но оборудование не было зарегистрировано как отсутствующие в запросе связей шины.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Параметр 4. Адрес объекта устройства.

0x222

Неустранимая ошибка

Обработчик диспетчера IRP фильтра шины отсоединился при получении IRP удаления, когда PDO еще активен. Фильтры шины должны очищаться в обратных вызовах FastIoDetach .

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Параметр 4. Адрес объекта устройства.

0x223

Неустранимая ошибка

Обработчик диспетчера IRP для фильтра шины удалил объект устройства, но PDO по-прежнему присутствует. Фильтры шины должны очищаться в обратных вызовах FastIoDetach .

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Параметр 4. Адрес объекта устройства.

0x224

Неустранимая ошибка

Обработчик диспетчера IRP вернул состояние, несовместимое с полем IoStatus.Status IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Параметр 4 — ожидаемый код состояния.

0x225

Неустранимая ошибка

Обработчик диспетчера IRP вернул недопустимое состояние (0xFFFFFFFF). Вероятно, это связано с неинициализированной переменной стека. Чтобы отладить эту ошибку, используйте команду ln (список ближайших символов) с указанным адресом.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

Пункт 4. Код состояния.

0x226

Неустранимая ошибка

Обработчик отправки IRP вернулся без передачи или завершения этого IRP, или кто-то забыл вернуть STATUS_PENDING.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x227

Неустранимая ошибка

Подпрограмма завершения IRP находится в страничном коде. (Это никогда не разрешено.)

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x228

Неустранимая ошибка

Подпрограмма завершения драйвера не помечает ожидание IRP, если поле PendingReturned было задано в переданном ему IRP. Это может привести к зависаю Windows, особенно если стек возвращает ошибку.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x229

Неустранимая ошибка

Для IRP настроена процедура отмены, которая в настоящее время обрабатывается драйверами ниже в стеке, возможно, топая их процедуру отмены.

Пункт 2 — зарезервирован.

Параметр 3 — зарезервировано.

0x22A

Неустранимая ошибка

Объект физического устройства (PDO) не ответил на требуемый IRP.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x22B

Неустранимая ошибка

Объект физического устройства (PDO) забыл заполнить список отношений устройств С помощью PDO для запроса TargetDeviceRelation .

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x22C

Неустранимая ошибка

Код, реализуя запрос TargetDeviceRelation , не вызывал ObReferenceObject в PDO.

Пункт 2 — зарезервирован.

Параметр 3 — зарезервировано.

0x22D

Неустранимая ошибка

Вызывающий объект завершил IRP_MJ_PNP он не понял, вместо того, чтобы передать его вниз.

Пункт 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Параметр 3 — адрес IRP.

0x22E

Неустранимая ошибка

Вызывающий объект завершил успешное IRP_MJ_PNP вместо передачи.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x22F

Неустранимая ошибка

Вызывающий объект завершил нетронутый IRP_MJ_PNP (вместо передачи IRP вниз), или не PDO завершился сбоем IRP с использованием недопустимого значения STATUS_NOT_SUPPORTED.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x230

Неустранимая ошибка

Вызывающий объект завершил IRP_MJ_POWER он не понял, вместо того, чтобы передать его.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x231

Неустранимая ошибка

Вызывающий объект завершил успешное IRP_MJ_POWER вместо передачи.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x232

Неустранимая ошибка

Вызывающий объект завершил нетронутый IRP_MJ_POWER (вместо передачи IRP вниз), или не PDO завершился сбоем IRP с использованием недопустимого значения STATUS_NOT_SUPPORTED.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x233

Неустранимая ошибка

Поле версии структуры возможностей запроса в IRP возможностей запроса не было инициализировано должным образом.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x234

Неустранимая ошибка

Поле размера структуры возможностей запроса в IRP возможностей запроса не было инициализировано должным образом.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x235

Неустранимая ошибка

Поле адреса структуры возможностей запроса в IRP возможностей запроса неправильно инициализировано значением -1.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x236

Неустранимая ошибка

Поле "Номер пользовательского интерфейса" структуры возможностей запроса в IRP возможностей запроса неправильно инициализировано значением -1.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x237

Неустранимая ошибка

Драйвер отправил IRP, который ограничен только для системного использования.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x238

Предупреждение

Вызывающий объект IoInitializeIrp передал IRP, выделенный с помощью IoAllocateIrp. Это является недопустимым, ненужным и негативно влияет на производительность при обычном использовании. Если этот IRP перезапускается, см. статью IoReuseIrp в пакете драйверов Windows.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x239

Предупреждение

Вызывающий объект IoCompleteRequest завершает IRP, который никогда не пересылался через вызов IoCallDriver или PoCallDriver. Возможно, это ошибка.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x23A

Неустранимая ошибка

Драйвер перенаправил IRP в IRQL, который является незаконным для этого основного кода.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x23B

Неустранимая ошибка

Вызывающий объект изменил поле состояния IRP, которое он не понимает.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

В следующей таблице перечислены дополнительные ошибки проверки ввода-вывода , которые могут возникать. Эти ошибки появляются при активации расширенной проверки ввода-вывода . Дополнительные сведения см. в разделе Расширенная проверка ввода-вывода.

Код ошибки ввода-вывода Статус Причина ошибки

0x23C

Неустранимая ошибка

Драйвер завершил IRP, не задав для процедуры отмены в IRP значение NULL.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x23D

Неустранимая ошибка

Драйвер вернул STATUS_PENDING, но не помечает ожидание IRP с помощью вызова IoMarkIrpPending.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — код состояния.

0x23E

Неустранимая ошибка

Драйвер пометил ожидание IRP, но не вернул STATUS_PENDING.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — код состояния.

0x23F

Неустранимая ошибка

Драйвер не унаследовал DO_POWER_PAGABLE бит от стека, к которому он присоединен.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x240

Неустранимая ошибка

Драйвер пытается удалить объект устройства, который уже был удален с помощью предыдущего вызова IoDeleteDevice.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x241

Неустранимая ошибка

Драйвер отсоединил объект устройства во время неожиданного удаления IRP.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — адрес объекта устройства.

0x242

Неустранимая ошибка

Драйвер удалил объект устройства во время неожиданного удаления IRP.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — адрес объекта устройства.

0x243

Неустранимая ошибка

Драйверу не удалось снять флаг DO_DEVICE_INITIALIZING в конце AddDevice.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

Пункт 4 —

0x244

Неустранимая ошибка

Драйвер не скопировал ни DO_BUFFERED_IO, ни флаг DO_DIRECT_IO из объекта устройства, к который он присоединяется.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x245

Неустранимая ошибка

Драйвер установил флаги DO_BUFFERED_IO и DO_DIRECT_IO. Эти флаги являются взаимоисключающими.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x246

Неустранимая ошибка

Драйверу не удалось скопировать поле DeviceType из объекта устройства, к который он подключается.

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

0x247

Неустранимая ошибка

Пункт 2 — зарезервировано.

Пункт 3 — зарезервировано.

Водитель не справился с IRP, который не может быть юридически неудачным.

0x248

Неустранимая ошибка

Драйвер добавил объект устройства, который не является PDO, в запрос отношений устройств.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — адрес объекта устройства.

0x249

Неустранимая ошибка

Драйвер перечислил два дочерних PDO, возвращающих идентичные идентификаторы устройств.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — первый адрес объекта устройства.

Пункт 4 — адрес второго объекта устройства.

0x24A

Неустранимая ошибка

Драйвер по ошибке назвал функцию файлового ввода-вывода с irQL, не равной PASSIVE_LEVEL.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — зарезервировано.

Пункт 4 — зарезервировано.

0x24B

Неустранимая ошибка

Драйвер завершил запрос IRP_MN_QUERY_DEVICE_RELATIONS типа TargetDeviceRelation как успешный, но не правильно заполнить запрос или перенаправить IRP в базовый аппаратный стек.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес объекта устройства.

0x24C

Неустранимая ошибка

Драйвер вернул STATUS_PENDING но не помечает ожидание IRP вызовом IoMarkIrpPending.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — код состояния.

0x24D

Неустранимая ошибка

Драйвер передал недопустимый объект устройства в функцию, требующую PDO.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — адрес объекта устройства.

0x300

Неустранимая ошибка

Драйвер вернул подозрительное состояние. Вероятно, это связано с ошибкой неинициализированной переменной в драйвере.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — код подозрительного состояния.

0x301

Неустранимая ошибка

Драйвер перенаправил IRP на > DISPATCH_LEVEL IRQL.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Param 4 — неправильное значение IRQL

0x302

Неустранимая ошибка

Драйвер перенаправил IRP в IRQL > = APC_LEVEL.

Чтобы выполнить этот запрос, диспетчеру операций ввода-вывода потребуется ставить APC в очередь. APC не сможет запуститься, так как вызывающий объект уже находится на уровне APC, поэтому вызывающий объект, скорее всего, будет взаимоблокировкой.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Пункт 4 — неверное значение IRQL.

0x306

Неустранимая ошибка

Драйвер выполняет запрос IRP_MJ_PNP (основной) и IRP_MN_REMOVE_DEVICE (дополнительный) с кодом состояния сбоя.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x307

Неустранимая ошибка

Драйвер выдал запрос ввода-вывода с событием, которое уже было показано и получил ответ STATUS_PENDING. Это может привести к очистке до завершения ввода-вывода.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x310

Неустранимая ошибка

Драйвер повторно инициализирует IRP, который все еще используется.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x311

Неустранимая ошибка

Драйвер повторно инициализирует IRP, созданный с помощью IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

0x312

Неустранимая ошибка

Вызывающий объект предоставил поле IRP Status Information со значением, превышающим выходной раздел системного буфера.

Param 2 — адрес в коде драйвера, по которому была обнаружена ошибка.

Пункт 3 — адрес IRP.

Причина

Описание причины см. в описании каждого кода в разделе Параметры.

Решение

Эта ошибка проверка может возникнуть только в том случае, если средство проверки драйверов было проинструктировано отслеживать один или несколько драйверов. Если вы не планируете использовать средство проверки драйверов, его следует отключить. Дополнительные сведения см. в разделе "Управление проверятелем драйверов" статьи Средство проверки драйверов. Вы можете обновить или удалить драйвер, который также вызвал эту проблему.

Если вы являетесь разработчиком драйверов, используйте сведения, полученные с помощью этой ошибки проверка, чтобы исправить ошибки в коде.

Полные сведения о средствах проверки драйверов см. в разделе Средство проверки драйверов.