Поделиться через


Проверка ошибок 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

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

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

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

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

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

  • Ошибка ПРОВЕРКИ СИСТЕМЫ ВВОДА-ВЫВОДА сообщения.

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

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

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

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

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

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

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

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

  • Сообщение об ошибке WDM DRIVER, а также оценка серьезности ошибки.

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

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

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

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

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

Код ошибки ввода-вывода Важность Причина ошибки

0x200

Неизвестно

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

0x201

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

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

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

0x202

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

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

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

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

0x203

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

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

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

Param 3 — IRP-адрес.

0x204

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

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

Param 2 — зарезервировано

Param 3 — зарезервировано

0x205

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

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

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

Param 3 — IRP-адрес.

0x206

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

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

Param 2 — зарезервировано

Param 3 — зарезервировано

0x207

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

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

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

Param 3 — IRP-адрес.

0x208

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

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

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

Param 3 — IRP-адрес.

0x209

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

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

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

Param 3 — IRP-адрес.

0x20A

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

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

Param 2 — зарезервировано

Param 3 — зарезервировано

0x20B

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

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

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

Param 3 — IRP-адрес.

0x20C

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

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

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

Param 3 — IRP-адрес.

0x20D

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

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

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

Param 3 — IRP-адрес.

0x20E

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

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

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

Param 3 — IRP-адрес.

0x20F

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

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

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

Param 3 — IRP-адрес.

0x210

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

WMI IRP имеет недопустимое состояние. (Любой IRP WMI должен иметь состояние, инициализированное для STATUS_NOT_SUPPORTED.)

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

Param 3 — IRP-адрес.

0x211

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

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

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

Param 3 — IRP-адрес.

0x212

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

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

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

Param 3 — IRP-адрес.

0x213

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

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

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

Param 3 — IRP-адрес.

0x214

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

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

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

Param 3 — IRP-адрес.

0x215

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

Состояние IRP, не являющегося успешным, не STATUS_NOT_SUPPORTED для IRP_MJ_PNP передается стек. Не удалось выполнить PNP IRP.

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

Param 3 — IRP-адрес.

0x216

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

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

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

Param 3 — IRP-адрес.

0x217

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

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

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

Param 3 — IRP-адрес.

0x218

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

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

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

Param 3 — IRP-адрес.

0x219

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

Состояние IRP, отличного от STATUS_NOT_SUPPORTED, для IRP_MJ_POWER передается стек. Не удалось выполнить операции power IRPs.

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

Param 3 — IRP-адрес.

0x21A

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

Состояние IRP_MJ_POWER ранее было преобразовано в STATUS_NOT_SUPPORTED.

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

Param 3 — IRP-адрес.

0x21B

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

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

Param 3 — IRP-адрес.

0x21C

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

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

Param 2 — зарезервировано

Param 3 — зарезервировано

0x21D

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

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

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

Param 3 — IRP-адрес.

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

0x21E

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

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

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

Param 3 — IRP-адрес.

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

0x21F

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

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

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

Param 3 — IRP-адрес.

0x220

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

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

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

Param 3 — IRP-адрес.

Param 4 — ProviderId.

0x221

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

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

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

Param 3 — IRP-адрес.

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

0x222

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

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

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

Param 3 — IRP-адрес.

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

0x223

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

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

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

Param 3 — IRP-адрес.

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

0x224

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

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

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

Param 3 — IRP-адрес.

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

0x225

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

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

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

Param 3 — IRP-адрес.

Param 4 — код состояния.

0x226

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

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

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

Param 3 — IRP-адрес.

0x227

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

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

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

Param 3 — IRP-адрес.

0x228

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

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

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

Param 3 — IRP-адрес.

0x229

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x22A

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

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

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

Param 3 — IRP-адрес.

0x22B

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

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

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

Param 3 — IRP-адрес.

0x22C

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x22D

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

Вызывающий завершил IRP_MJ_PNP он не понял, а не передает его вниз.

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

Param 3 — IRP-адрес.

0x22E

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

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

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

Param 3 — IRP-адрес.

0x22F

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

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

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

Param 3 — IRP-адрес.

0x230

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

Вызывающий завершил IRP_MJ_POWER он не понял, а не передает его вниз.

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

Param 3 — IRP-адрес.

0x231

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

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

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

Param 3 — IRP-адрес.

0x232

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

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

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

Param 3 — IRP-адрес.

0x233

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

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

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

Param 3 — IRP-адрес.

0x234

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

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

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

Param 3 — IRP-адрес.

0x235

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

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

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

Param 3 — IRP-адрес.

0x236

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

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

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

Param 3 — IRP-адрес.

0x237

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x238

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x239

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x23A

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

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

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

Param 3 — IRP-адрес.

0x23B

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

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

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

Param 3 — IRP-адрес.

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

Код ошибки ввода-вывода Важность Причина ошибки

0x23C

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x23D

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

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

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

Param 3 — IRP-адрес.

Param 4 — код состояния.

0x23E

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

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

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

Param 3 — IRP-адрес.

Param 4 — код состояния.

0x23F

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x240

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

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x241

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

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

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

Param 3 — IRP-адрес.

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

0x242

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

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

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

Param 3 — IRP-адрес.

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

0x243

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

Драйвер не смог очистить флаг DO_DEVICE_INITIALIZING в конце AddDevice.

Param 2 — зарезервировано.

Param 3 — зарезервировано.

Param 4 —

0x244

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x245

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x246

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

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

0x247

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

Param 2 — зарезервировано.

Param 3 — зарезервировано.

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

0x248

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

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

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

Param 3 — IRP-адрес.

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

0x249

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

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

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

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

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

0x24A

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

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

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

Param 3 — зарезервировано.

Param 4 — зарезервировано.

0x24B

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

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

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

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

0x24C

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

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

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

Param 3 — IRP-адрес.

Param 4 — код состояния.

0x24D

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

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

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

Param 3 — IRP-адрес.

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

0x300

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

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

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

Param 3 — IRP-адрес.

Param 4 — подозрительный код состояния.

0x301

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

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

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

Param 3 — IRP-адрес.

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

0x302

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

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

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

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

Param 3 — IRP-адрес.

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

0x306

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

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

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

Param 3 — IRP-адрес.

0x307

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

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

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

Param 3 — IRP-адрес.

0x310

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

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

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

Param 3 — IRP-адрес.

0x311

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

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

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

Param 3 — IRP-адрес.

0x312

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

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

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

Param 3 — IRP-адрес.

Причина

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

Разрешение

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

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

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