Это общий стоп код для ошибок обнаруженных утилитой Driver Verifier. Параметр 1 определяет тип ошибки, смысл остальных параметров зависит от параметра 1.
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина |
0x00 | Текущий IRQL | Тип пула | 0 | Драйвер попытался выделить область памяти нулевого размера |
0x01 | Текущий IRQL | Тип пула | Размер выделенной области (в байтах) | Драйвер попытался выделить память выгружаемого пула при уровне IRQL>APC_LEVEL |
0x02 | Текущий IRQL | Тип пула | Размер выделенной области (в байтах) | Драйвер попытался выделить память невыгружаемого пула при уровне IRQL>DISPATCH_LEVEL |
0x10 | Некорректный адрес | 0 | 0 | Драйвер попытался освободить память по адресу, который не возвращался после вызова выделения памяти |
0x11 | Текущий IRQL | Тип пула | Адрес пула | Драйвер попытался освободить память выгружаемого пула при IRQL>APC_LEVEL |
0x12 | Текущий IRQL | Тип пула | Адрес пула | Драйвер попытался освободить память невыгружаемого пула при IRQL>DISPATCH_LEVEL |
0x13 или 0x14 | Зарезервировано | Указатель на заголовок пула | Содержимое заголовка пула | Драйвер попытался выполнит освобождение памяти, которая уже была освобождена |
0x16 | Зарезервировано | Адрес пула | 0 | Драйвер попытался освободить память в пуле по неправильному адресу или драйвер передал неправильный параметр какой-либо функции по работе с памятью |
0x30 | Текущий IRQL | Запрашиваемый IRQL | 0 | Драйвер передал неправильный параметр функции KeRaiseIrql. Параметр был или меньше текущего уровня IRQL, или больше чем HIGH_LEVEL. Возможно параметр вообще не инициализирован. |
0x31 | Текущий IRQL | Запрашиваемый IRQL | 0: новый IRQL некорректен 1: новый IRQL некорректен внутри DPC |
Драйвер передал неправильный параметр функции KeLowerIrql. Параметр был или больше текущего уровня IRQL, или больше чем HIGH_LEVEL. Возможно параметр вообще не инициализирован. |
0x32 | Текущий IRQL | Адрес спин блокировки | 0 | Драйвер выполнил вызов KeReleaseSpinLock на уровне IRQL отличном от DISPATCH_LEVEL |
0x33 | Текущий IRQL | Адрес быстрого мьютекса | 0 | Драйвер попытался захватить быстрый мьютекс при уровне IRQL>APC_LEVEL |
0x34 | Текущий IRQL | Адрес быстрого мьютекса | 0 | Драйвер попытался освободить быстрый мьютекс при уровне IRQL отличном от APC_LEVEL |
0x35 | Текущий IRQL | Адрес спин блокировки | Старый IRQL | Ядро освободило спин блокировку при IRQL не равном DISPATCH_LEVEL |
0x36 | Текущий IRQL | Номер спин блокировки | Старый IRQL | Ядро освободило спин блокировку добавленную в очередь при IRQL не равном DISPATCH_LEVEL |
0x37 | Текущий IRQL | Количество отключений потока APC | Ресурс | Драйвер попытался захватить ресурс, но APC не были отключены |
0x38 | Текущий IRQL | Количество отключений потока APC | Ресурс | Драйвер попытался освободить ресурс, но APC не были отключены |
0x39 | Текущий IRQL | Количество отключений потока APC | Мьютекс | Драйвер попытался небезопасно захватить мьютекс с IRQL не равному APC_LEVEL |
0x3A | Текущий IRQL | Количество отключений потока APC | Мьютекс | Драйвер попытался небезопасно освободить мьютекс с IRQL не равному APC_LEVEL |
0x3C | Описатель переданный функции | Тип объекта | 0 | Драйвер выполнил вызов ObReferenceObjectByHandle с некорректным описателем |
0x3D | 0 | 0 | Адрес некорректного ресурса | Драйвер передал некорректный (не выровненный по границе) ресурс функции ExAcquireResourceExclusive |
0x3E | 0 | 0 | 0 | Драйвер вызвал KeLeaveCriticalRegion для потока, который не находится в критическом регионе |
0x3F | Адрес объекта | Новое количество ссылок на объект.-1: dereference case
1: reference case |
0 | Драйвер вызвал ObReferenceObject для объекта которое имеет количество ссылок равное нулю, или вызвал ObDereferenceObject для объекта количество ссылок на который равно нулю |
0x40 | Текущий IRQL | Адрес спин блокировки | 0 | Драйвер вызвал KeAcquireSpinLockAtDpcLevel при IRQL DISPATCH_LEVEL |
0x71 | Текущий IRQL | Адрес MDL | Адрес процесса | Драйвер выполнил вызов MmProbeAndLockProcessPages при IRQL > DISPATCH_LEVEL |
0x72 | Текущий IRQL | Адрес MDL | Адрес процесса | Драйвер выполнил вызов MmProbeAndLockSelectedPages при IRQL > DISPATCH_LEVEL |
0x73 | Текущий IRQL | В системах 32-x – младшие 32 бита физического адреса, в 64-x – 64 битный физический адрес | Количество байт | Драйвер вызвал MmMapIoSpace с IRQL > DISPATCH_LEVEL |
0x74 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер вызвал MmMapLockedPages в режиме ядра с IRQL > DISPATCH_LEVEL |
0x75 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер вызвал MmMapLockedPages в пользовательском режиме с IRQL > APC_LEVEL |
0x76 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер вызвал MmMapLockedPagesSpecifyCache в режиме ядра с IRQL > DISPATCH_LEVEL |
0x77 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер вызвал MmMapLockedPagesSpecifyCache в пользовательском режиме с IRQL > APC_LEVEL |
0x78 | Текущий IRQL | Адрес MDL | 0 | Драйвер вызвал MmUnlockPages при IRQL > DISPATCH_LEVEL |
0x79 | Текущий IRQL | Неспроецированный виртуальный адрес | MDL адрес | Драйвер вызвал MmUnmapLockedPages в режиме ядра при IRQL > DISPATCH_LEVEL |
0x7A | Текущий IRQL | Неспроецированный виртуальный адрес | MDL адрес | Драйвер вызвал MmUnmapLockedPages в пользовательском режиме при IRQL > APC_LEVEL |
0x7B | Текущий IRQL | Неспроецированный виртуальный адрес | Количество байт | Драйвер вызвал MmUnmapIoSpace при IRQL > APC_LEVEL |
0x7C | MDL адрес | MDL флаги | 0 | Драйвер выполнил вызов MmUnlockPages, и передал MDL, чьи страницы никогда не были успешно заблокированы |
0x7D | MDL адрес | MDL флаги | 0 | Драйвер вызвал MmUnlockPages, и передал MDL, чьи страницы с невыгружаемого пула (они никогда не должны быть разблокированы) |
0x7E | Текущий IRQL | DISPATCH_LEVEL | 0 | Драйвер вызвал MmAllocatePagesForMdl,MmAllocatePagesForMdlEx, или MmFreePagesFromMdl при IRQL > DISPATCH_LEVEL |
0x7F | Текущий IRQL | MDL адрес | MDL флаги | Драйвер вызвал BuildMdlForNonPagedPool и передал MDL чьи страницы с выгружаемого пула |
0x80 | Текущий IRQL | Адрес события | 0 | Драйвер выполнил вызов KeSetEvent при IRQL > DISPATCH_LEVEL |
0x81 | MDL адрес | MDL флаги | 0 | Драйвер выполнил вызов MmMapLockedPages.
(Необходимо использовать MmMapLockedPagesSpecifyCache , с параметром BugCheckOnFailure равным FALSE.) |
0x82 | MDL адрес | MDL флаги | 0 | Драйвер вызвал MmMapLockedPagesSpecifyCache с BugCheckOnFailure равным TRUE.
(Этот параметр должен быть равен FALSE) |
0x83 | Начало диапазона физической памяти для проецирования | Количество байтов для проецирования | Первый номер страницы фрейма который не был заблокирован | Драйвер выполнил вызов MmMapIoSpace без блокирования MDL страниц. Страницы физической памяти должны быть предварительно заблокированы перед этим вызовом |
0x85 | MDL адрес | Количество страниц предназначенных для проецирования | Первый номер страницы фрейма который не был заблокирован | Драйвер выполнил вызов MmMapLockedPages без блокировки MDL страниц |
0x89 | MDL адрес | Указатель на страницу не памяти в MDL | Номер страницы не памяти в MDL | MDL не отмечен как “I/O”, но он содержит адрес страницы non-memory |
0x91 | Зарезервировано | Зарезервировано | Зарезервировано | Драйвер переключил стеки методом, который не поддерживается системой. Единственное поддерживаемое решение для расширения стека режима ядра – это использование KeExpandKernelStackAndCallout |
0xA0 (Windows Server 2003 и более поздние версии) | Указатель на IRP, который выполняет запрос чтения или записи | Объект устройства нижнего устройства | Количество секторов, в которых обнаружена ошибка | На жестком диске была обнаружена ошибка проверки контрольной суммы. Ошибка с данным параметром отображается только если опция Disk Integrity Checking включена в Driver Verifier |
0xA1 (Windows Server 2003 и более поздние версии) | Копия IRP пакета, который выполняет запрос чтения или записи (реальный пакет был завершен) | Объект устройства нижнего устройства | Количество секторов, в которых обнаружена ошибка | На жестком диске была обнаружена ошибка проверки контрольной суммы сектора (асинхронно). Ошибка с данным параметром отображается только если опция Disk Integrity Checking включена в Driver Verifier |
0xA2 (Windows Server 2003 и более поздние версии) | Копия IRP пакета, который выполняет запрос чтения или записи (реальный пакет был завершен) | Объект устройства нижнего устройства | Количество секторов, в которых обнаружена ошибка | Контрольная сумма CRCDISK копии неверна. Это может быть ошибка выгрузки (загрузки) страниц памяти в файл подкачки. Ошибка с данным параметром отображается только если опция Disk Integrity Checking включена в Driver Verifier |
0xB0 (Windows Vista и более поздние версии) | MDL адрес | MDL флаги | Некорректные флаги MDL | Драйвер вызвал MmProbeAndLockPages для MDL с некорректными флагами. Например, драйвер передал MDL созданный MmBuildMdlForNonPagedPool функции MmProbeAndLockPages |
0xB1 (Windows Vista и более поздние версии) | MDL адрес | MDL флаги | Некорректные флаги MDL | Драйвер вызвал MmProbeAndLockProcessPages для MDL с некорректными флагами. Например, драйвер передал MDL, созданный MmBuildMdlForNonPagedPool функции MmProbeAndLockProcessPages |
0xB2 (Windows Vista и более старшие версии) | MDL адрес | MDL флаги | Некорректные флаги MDL | Драйвер вызвал MmMapLockedPages для MDL с неправильными флагами. Например, драйвер передал MDL, который уже спроецированный системному адресу, или который не был заблокирован, в функцию MmMapLockedPages |
0xB3 (Windows Vista и более старшие версии) | MDL адрес | MDL флаги | Некорректные флаги MDL | Драйвер вызвал MmMapLockedPages для MDL с неправильными флагами. Например, драйвер передал MDL, который не был заблокирован функции MmMapLockedPages |
0xB4 (Windows Vista и более старшие версии) | MDL адрес | MDL флаги | Неожиданный частичный флаг MDL | Драйвер вызвал MmUnlockPages для частичного MDL. Частичный MDL может быть создан функцией IoBuildPartialMdl |
0xC0 (Windows Vista и более старшие версии) | Адрес пакета IRP | Зарезервировано | Зарезервировано | Драйвер вызвал IoCallDriver с запрещенными прерываниями |
0xC1 (Windows Vista и более старшие версии) | Адрес процедуры драйвера dispatch | Зарезервировано | Зарезервировано | Произошел возврат с процедуры dispatch драйвера с отключенными прерываниями |
0xC2 (Windows Vista и более старшие версии) | Зарезервировано | Зарезервировано | Зарезервировано | Драйвер вызвал процедуру Fast I/O dispatch после того как прерывания были отключены |
0xC3 (Windows Vista и более старшие версии) | Адрес процедуры драйвера Fast I/O dispatch | Зарезервировано | Зарезервировано | Произошел выход из процедуры Fast I/O dispatch с отключенными прерываниями |
0xC5 (Windows Vista и более старшие версии) | Адрес процедуры драйвера dispatch | Количество отключений APC текущего потока | Количество отключений APC текущего потока до вызова процедуры драйвера dispatch | Процедура dispatch драйвера изменила количество отключений APC потока.
Количество отключений APC уменьшается каждый раз вместе с вызовом KeEnterCriticalRegion,FsRtlEnterFileSystem, или захватом мьютекса. Количество отключений APC увеличивается каждый раз когда драйвер вызывает KeLeaveCriticalRegion, KeReleaseMutex, или FsRtlExitFileSystem. Потому что вызова должны соответствовать друг другу, значение количества отключений APC должно быть равным 0, когда происходит выход из потока |
0xC6 (Windows Vista и более старшие версии) | Адрес dispatch процедуры драйвера Fast I/O | Количество отключений APC текущего потока | Количество отключений APC текущего потока до вызова процедуры Fast I/O драйвера dispatch | I/O dispatch процедура драйвера изменила количество отключений APC потока.
Количество отключений APC уменьшается каждый раз вместе с вызовом KeEnterCriticalRegion,FsRtlEnterFileSystem, или захватом мьютекса. Количество отключений APC увеличивается каждый раз когда драйвер вызывает KeLeaveCriticalRegion, KeReleaseMutex, или FsRtlExitFileSystem. Потому что вызова должны соответствовать друг другу, значение количества отключений APC должно быть равным 0, когда происходит выход из потока |
0xCA (Windows Vista и более старшие версии) | Адрес списка lookaside | Зарезервировано | Зарезервировано | Драйвер выполнил попытку реиницализации списка lookaside |
0xCB (Windows Vista и более старшие версии) | Адрес списка lookaside | Зарезервировано | Зарезервировано | Драйвер выполнил попытку удаления неинициализированного списка lookaside |
0xCC (Windows Vista и более старшие версии) | Адрес списка lookaside | Начальный адрес выделенной памяти пула | Размер выделенной памяти пула | Драйвер выполнил попытку освобождения блока памяти, который содержит активный список lookaside |
0xCD (Windows Vista и более старшие версии) | Адрес списка lookaside | Размер блока, указанный вызывающим кодом | Минимально поддерживаемый размер блока | Драйвер выполнил попытку создать lookaside список в выделенном блоке памяти, который слишком мал для этого |
0xD0 (Windows Vista и более старшие версии) | Адрес структуры ERESOURCE | Зарезервировано | Зарезервировано | Драйвер выполнил попытку реинициализации структуры ERESOURCE |
0xD1 (Windows Vista и более старшие версии) | Адрес структуры ERESOURCE | Зарезервировано | Зарезервировано | Драйвер выполнил попытку удаления неинициализированной структуры ERESOURCE |
0xD2 (Windows Vista и более старшие версии) | Адрес структуры ERESOURCE | Начальный адрес выделенной памяти пула | Размер выделенной памяти пула | Драйвер выполнил попытку освобождения памяти пула, которая содержит активную структуру ERESOURCE |
0xD5 (Windows Vista и более старшие версии) | Адрес структуры IO_REMOVE_LOCK, созданной проверяемой версией сборки драйвера | Текущий тег IoReleaseRemoveLock | Зарезервировано |
|
0xD6 (Windows Vista и более старшие версии) | Адрес структуры IO_REMOVE_LOCK, созданной проверяемой версией сборки драйвера | Тег, который не соответствует предыдущему IoAcquireRemoveLock тегу |
Предыдущий IoAcquireRemoveLock тег | The current IoReleaseRemoveLockAndWait tag does not match the previous IoAcquireRemoveLock tag. If the driver calling IoReleaseRemoveLock is not a checked build, Parameter 2 is the address of the shadow IO_REMOVE_LOCK structure created by Driver Verifier on behalf of the driver. In this case, the address of the IO_REMOVE_LOCK structure used by the driver is not used at all, because Driver Verifier is replacing the lock address for all the remove lock APIs. A bug check with this parameter occurs only when the I/O Verification option of Driver Verifier is active. |
0xD7 (Windows Vista и более старшие версии) | Адрес структуры IO_REMOVE_LOCK, которая используется во внутренних целях утилитой Driver Verifier | Адрес структуры Remove Lock, указанный драйвером | Зарезервировано | A Remove Lock cannot be re-initialized, even after it calls IoReleaseRemoveLockAndWait, because other threads might still be using that lock (by callingIoAcquireRemoveLock). The driver should allocate the Remove Lock inside its device extension, and initialize it a single time. The lock will be deleted together with the device extension. |
0xDA (Windows Vista и более старшие версии) | Стартовый адрес драйвера | Адрес функции обратного вызова WMI внутри драйвера | Зарезервировано | Была выполнена попытка выгрузить драйвер, который не отменил регистрацию функции обратного вызова WMI |
0xDB (Windows Vista и более старшие версии) | Адрес объекта устройства | Зарезервировано | Зарезервировано | Была выполнена попытка удаления объекта устройства, для которого не была выполнена отмена регистрации в WMI |
0xDC (Windows Vista и более старшие версии) | Адрес вызова EtwRegister | Стартовый адрес выгруженного драйвера | Для Windows 8 и более поздних версий этот параметр содержит значение ETW RegHandle | Была выполнена попытка выгрузки драйвера без вызова EtwUnregister |
0xDF (Windows 7 и более старшие версии) | Адрес объекта синхронизации | Объект синхронизации находится в адресному пространстве сессии. Это не является допустимым | ||
0xE0 (Windows Vista и более старшие версии) | Адрес памяти пользовательского режима, который используется как параметр | Размер (в байтах) диапазона адресов, который используется как параметр | Зарезервировано | Был выполнен вызов к функции ядра системы, а в качестве параметра был передан адрес памяти пользовательского режима |
0xE1 (Windows Vista и более старшие версии) | Адрес объекта синхронизации | Зарезервировано | Зарезервировано | Был обнаружен объект синхронизации с адресом в памяти, который является неправильным или выгружаемым |
0xE2 (Windows Vista и более старшие версии) | Адрес пакета IRP | В пакете IRP есть адрес памяти пользовательского режима | Зарезервировано | Был обнаружен IRP пакет с Irp->RequestorMode установленным в KernelMode, имеющий одно из полей с адресом из пользовательского режима |
0xE3 (Windows Vista и более старшие версии) | Адрес вызова API | Адрес пользовательского режима, который использовался в качестве параметра | Зарезервировано | Драйвер выполнил вызов к одной из функций ZwXxx ядра с адресом памяти из user mode в качестве параметра |
0xE4 (Windows Vista и более старшие версии) | Адрес вызова API | Адрес неправильно заполненной структуры UNICODE_STRING | Зарезервировано | Драйвер выполнил вызов к одной из функций ZwXxx ядра с неправильно заполненной структурой UNICODE_STRING в качестве параметра |
0xE5 (Windows Vista и более старшие версии) | Текущий IRQL | Зарезервировано | Зарезервировано | Был выполнен вызов одной из функций ядра при неправильном уровне IRQL |
0xEA (Windows Vista и более старшие версии) | Текущий IRQL | Счетчик отключений APC | Адрес pushlock | Драйвер выполнил попытку захватить pushlock в то время когда APC были разрешены |
0xEB (Windows Vista и более старшие версии) | Текущий IRQL | Счетчик отключений APC | Адрес pushlock | Драйвер выполнил попытку освободить pushlock в то время когда APC были разрешены |
0xF0 (Windows Vista и более старшие версии) | Адрес буфера получателя | Адрес буфера источника | Количество байтов, которые должны были быть скопированы | Драйвер вызвал функцию memcpy с перекрывающимися адресами буферов источника и получателя |
0xF5 (Windows Vista и более старшие версии) | Адрес NULL описателя | Тип объекта | Зарезервировано | Драйвер передал NULL описатель ObReferenceObjectByHandle |
0xF6 (Windows Vista и более старшие версии) | Значение описателя, к которому было выполнено обращение | Адрес текущего процесса | Адрес кода внутри драйвера, который выполнил неправильное обращение | Драйвер попытался обратиться к описателю пользовательского режима как к описателю режиму ядра |
0xF7 (Windows 7 и более старшие версии) | Значение описателя, указанное вызывающим кодом | Тип объекта, указанный вызывающим кодом | Тип доступа, указанный вызывающим кодом | A driver is attempting a user-mode reference for a kernel handle in the context of the system process |
0xFA (Windows 7 и более старшие версии) | Адрес процедуры завершения | Значение IRQL перед вызовом процедуры завершения | Текущий IRQL, после вызова процедуру завершения | The IRP completion routine returned at an IRQL that was different from the IRQL the routine was called at |
0xFB (Windows 7 и более старшие версии) | Адрес процедуры завершения | Счетчик отключений APC текущего потока | The thread’s APC disable count before it calls the IRP completion routine | The thread’s APC disable count was changed by the driver’s IRP completion routine.
The APC disable count is decremented each time a driver calls KeEnterCriticalRegion,FsRtlEnterFileSystem, or acquires a mutex. The APC disable count is incremented each time a driver calls KeLeaveCriticalRegion, KeReleaseMutex, or FsRtlExitFileSystem. Because these calls should always be in pairs, the APC disable count should be zero whenever a thread is exited. A negative value indicates that a driver has disabled APC calls without re-enabling them. A positive value indicates that the reverse is true. |
0x105 (Windows 7 и более старшие версии) | Адрес IRP | Драйвер использует ExFreePool вместо IoFreeIrp для освобождения IRP | ||
0x10A (Windows 7 и более старшие версии) | The driver attempts to charge pool quota to the Idle process | |||
0x10B (Windows 7 и более старшие версии) | The driver attempts to charge pool quota from a DPC routine. This is incorrect because the current process context is undefined | |||
0x110 (Windows 7 и более старшие версии) | Address of the Interrupt Service Routine | Address of the extended context that was saved before it executed the ISR | Address of the extended context was saved after it executed the ISR | The interrupt service routine (ISR) for the driver has corrupted the extended thread context. |
0x115 (Windows 7 и более старшие версии) | Адрес потока, который несет ответственность за перегрузку системы, которая могла зависнуть | Driver Verifier detected that the system has taken longer than 20 minutes and shutdown is not complete. | ||
0x11A (Windows 7 и более старшие версии) | Текущий IRQL | Драйвер выполнил вызов KeEnterCriticalRegion при IRQL > APC_LEVEL | ||
0x11B (Windows 7 и более старшие версии) | Текущий IRQL | Драйвер выполнил вызов KeLeaveCriticalRegion при IRQL > APC_LEVEL | ||
0x120 (Windows 7 и более старшие версии) | Адрес значения IRQL | Адрес объекта ожидания | Адрес значения таймаута | Поток выполняет ожидание при IRQL > DISPATCH_LEVEL. Код, который выполнил вызов KeWaitForSingleObject или KeWaitForMultipleObjects должен выполняться при IRQL |