0xC4 проверки ошибок: DRIVER_VERIFIER_DETECTED_VIOLATION
Проверка ошибок DRIVER_VERIFIER_DETECTED_VIOLATION имеет значение 0x000000C4. Это общая ошибка, проверка код для неустранимых ошибок, обнаруженных средством проверки драйверов. Дополнительные сведения см. в разделе Обработка проверки ошибок при включении средства проверки драйверов.
Важно!
Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки "синий экран" во время работы с компьютером, см. статью Устранение ошибок синего экрана.
Параметры DRIVER_VERIFIER_DETECTED_VIOLATION
Параметр 1 определяет тип нарушения. Значение остальных параметров зависит от значения параметра 1. Значения параметров описаны в следующей таблице.
Примечание Если у вас возникли проблемы с просмотром всех 5 столбцов в этой таблице, попробуйте выполнить следующие действия:
- Разверните окно браузера до полного размера.
- Поместите курсор в таблицу и используйте клавиши со стрелками для прокрутки влево и вправо.
0x00 в 0x70
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x00 | Текущий IRQL | Тип пула | Число байтов | Драйвер запросил выделение пула с нулевыми байтами. |
0x01 | Текущий IRQL | Тип пула | Размер выделения в байтах | Драйвер попытался выделить постраничной памяти с помощью APC_LEVEL IRQL > . |
0x02 | Текущий IRQL | Тип пула | Размер выделения в байтах | Драйвер попытался выделить непагрегированную память с помощью DISPATCH_LEVEL IRQL > . |
0x03 | Вызывающий объект пытается выделить несколько страниц пула must succeed, но одна страница является максимально допустимым этим API. | |||
0x10 | Неправильный адрес | 0 | 0 | Драйвер попытался освободить адрес, который не был возвращен из вызова выделения. |
0x11 | Текущий IRQL | Тип пула | Адрес пула | Драйвер попытался освободить страничный пул с помощью IRQL > APC_LEVEL. |
0x12 | Текущий IRQL | Тип пула | Адрес пула | Драйвер попытался освободить невыгвозмой пул с помощью DISPATCH_LEVEL IRQL > . |
0x13 или 0x14 | Зарезервировано | Указатель на заголовок пула | Содержимое заголовка пула | Драйвер попытался освободить пул памяти, который уже был освобожден. |
0x15 | Запись таймера | Тип пула | Освобождаемый адрес пула | Пул, который вызывающий объект пытается освободить, содержит активный таймер. |
0x16 | Зарезервировано | Адрес пула | 0 | Драйвер пытался освободить пул по неправильному адресу или драйвер передал недопустимые параметры в подпрограмму памяти. |
0X17 | Запись ресурса | Тип пула | Освобождаемый адрес пула | Пул, который вызывающий объект пытается освободить, содержит активный ERESOURCE. |
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 | Драйвер попытался получить быстрый мьютекс с APC_LEVEL IRQL > . |
0x34 | Текущий IRQL | Отключение счетчика APC потока | Быстрый адрес мьютекса | Драйвер попытался освободить быстрый мьютекс в 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 потока | Mutex | Драйвер попытался получить мьютекс "небезопасный" с IRQL, не равным APC_LEVEL при входе. |
0x3A | Текущий IRQL | Отключение счетчика APC потока | Mutex | Драйвер попытался освободить мьютекс "небезопасный" с IRQL, не равным APC_LEVEL при входе. |
0x3B | Текущий IRQL | Объект для ожидания | Параметр времени ожидания | Подпрограмма KeWaitXxx вызывается в DISPATCH_LEVEL или выше. |
0x3C | Дескриптор, переданный в подпрограмму | Тип объекта | 0 | Драйвер с именем ObReferenceObjectByHandle с неправильным дескриптором. |
0x3D | 0 | 0 | Адрес недопустимого ресурса | Драйвер передал недопустимый (неровный) ресурс в ExAcquireResourceExclusive. |
0x3E | 0 | 0 | 0 | Драйвер с именем KeLeaveCriticalRegion для потока, который в настоящее время не находится в критическом регионе. |
0x3F | Адрес объекта | Новое число ссылок на объект. -1: разыменовыватель вариант 1: ссылочный случай | 0 | Драйвер применил ObReferenceObject к объекту, у которого число ссылок равно нулю, или драйвер применил ObDereferenceObject к объекту с нулем. |
0x40 | Текущий IRQL | Адрес спин-блокировки | 0 | Драйвер с именем KeAcquireSpinLockAtDpcLevel с DISPATCH_LEVEL IRQL < . |
0x41 | Текущий IRQL | Адрес спин-блокировки | 0 | Драйвер с именем KeReleaseSpinLockFromDpcLevel с DISPATCH_LEVEL IRQL < . |
0x42 | Текущий IRQL | Адрес спин-блокировки | 0 | Драйвер с именем KeAcquireSpinLock с DISPATCH_LEVEL IRQL > . |
0x51 | Базовый адрес выделения | Адрес ссылки за пределами выделения | Количество заряженных байтов | Драйвер попытался освободить память после записи после завершения выделения. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x52 | Базовый адрес выделения | Запись хэша | Количество заряженных байтов | Драйвер попытался освободить память после записи после завершения выделения. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x53 | Базовый адрес выделения | Заголовок | Зарезервировано | Драйвер попытался освободить память после записи после завершения выделения. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x54 | Базовый адрес выделения | Зарезервировано | Размер хэша пула | Драйвер попытался освободить память после записи после завершения выделения. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x59 | Базовый адрес выделения | Listindex | Зарезервировано | Драйвер попытался освободить память после записи после завершения выделения. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x60 | Байты, выделенные из страничного пула | Байты, выделенные из непагрегированного пула | Общее количество выделений, которые не были освобождены | Драйвер выгружается без освобождения выделений пула. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x61 | Байты, выделенные из страничного пула | Байты, выделенные из непагрегированного пула | Общее количество выделений, которые не были освобождены | Поток драйвера пытается выделить память пула во время выгрузки драйвера. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. |
0x62 | Имя драйвера | Зарезервировано | Общее количество выделений, которые не были освобождены, включая как страничный, так и невыгружаемый пул | Драйвер выгружается без освобождения выделений пула. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Отслеживания пула средства проверки драйверов. Введите !verifier 3 drivername.sys для получения сведений о выделениях, которые были утечки, вызвавшие проверку ошибок. |
0x6F | Адрес MDL | Блокировка физической страницы | Самая высокая физическая страница в системе | MmProbeAndLockPages вызывается на страницах, не в базе данных PFN. Обычно это драйвер, вызывающий эту процедуру, чтобы заблокировать собственную частную ОЗУ с двумя портами. Это не только не требуется, но и может привести к повреждению памяти на компьютерах с несмежным физическим ОЗУ. |
0x70 к 0x91
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x70 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер с именем MmProbeAndLockPages с DISPATCH_LEVEL IRQL > . |
0x71 | Текущий IRQL | Адрес MDL | Адрес процесса | Драйвер с именем MmProbeAndLockProcessPages с DISPATCH_LEVEL IRQL > . |
0x72 | Текущий IRQL | Адрес MDL | Адрес процесса | Драйвер с именем MmProbeAndLockSelectedPages с DISPATCH_LEVEL IRQL > . |
0x73 | Текущий IRQL | В 32-разрядной версии Windows: низкий 32-разрядный физический адрес В 64-разрядной версии Windows: 64-разрядный физический адрес | Число байтов | Драйвер с именем MmMapIoSpace с DISPATCH_LEVEL IRQL > . |
0x74 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер с именем MmMapLockedPages в режиме ядра с DISPATCH_LEVEL IRQL > . |
0x75 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер с именем MmMapLockedPages в пользовательском режиме с APC_LEVEL IRQL > . |
0x76 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер с именем MmMapLockedPagesSpecifyCache в режиме ядра с DISPATCH_LEVEL IRQL > . |
0x77 | Текущий IRQL | Адрес MDL | Режим доступа | Драйвер с именем MmMapLockedPagesSpecifyCache в пользовательском режиме с APC_LEVEL IRQL > . |
0x78 | Текущий IRQL | Адрес MDL | 0 | Драйвер с именем MmUnlockPages с DISPATCH_LEVEL IRQL > . |
0x79 | Текущий IRQL | Несопоставленный виртуальный адрес | Адрес MDL | Драйвер с именем MmUnmapLockedPages в режиме ядра с DISPATCH_LEVEL IRQL > . |
0x7A | Текущий IRQL | Несопоставленный виртуальный адрес | Адрес MDL | Драйвер с именем MmUnmapLockedPages в пользовательском режиме с APC_LEVEL IRQL > . |
0x7B | Текущий IRQL | Несопоставленный виртуальный адрес | Число байтов | Драйвер с именем MmUnmapIoSpace с APC_LEVEL IRQL > . |
0x7C | Адрес MDL | Флаги MDL | 0 | Драйвер вызвал MmUnlockPages и передал MDL, страницы которого никогда не блокировались. |
0x7D | MDL-адрес | Флаги MDL | 0 | Драйвер вызвал MmUnlockPages и передал MDL, страницы которого находятся из непагированного пула. (Их никогда не следует разблокировать.) |
0x7E | Текущий IRQL | DISPATCH_LEVEL | 0 | Драйвер с именем MmAllocatePagesForMdl, MmAllocatePagesForMdlEx или MmFreePagesFromMdl с DISPATCH_LEVEL IRQL > . |
0x7F | Текущий IRQL | MDL-адрес | Флаги MDL | Драйвер с именем BuildMdlForNonPagedPool передал MDL, страницы которого находятся из выгружаемого пула. |
0x80 | Текущий IRQL | Адрес события | 0 | Драйвер с именем KeSetEvent с DISPATCH_LEVEL IRQL > . |
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 не помечается как "ввод-вывод", но содержит адреса страниц, не относящиеся к памяти. |
0x91 | Зарезервировано | Зарезервировано | Зарезервировано | Драйвер переключает стеки с помощью метода, который не поддерживается операционной системой. Единственный поддерживаемый способ расширения стека режима ядра — использование KeExpandKernelStackAndCallout. |
0xA0 0x140
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0xA0 | Указатель на IRP, выполняющего запрос на чтение или запись | Объект устройства нижнего устройства | Номер сектора, в котором обнаружена ошибка | На жестком диске обнаружена ошибка циклической избыточности проверка (CRC). Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Проверка целостности диска средства проверки драйверов. |
0xA1 | Копия IRP, выполняющего запрос на чтение или запись. (Фактический IRP завершен.) | Объект устройства нижнего устройства | Номер сектора, в котором обнаружена ошибка | В секторе обнаружена ошибка CRC (асинхронно). Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Проверка целостности диска средства проверки драйверов. |
0xA2 | IRP, создающий запрос на чтение или запись, или копия этого IRP | Объект устройства нижнего устройства | Номер сектора, в котором обнаружена ошибка | Копии контрольной суммы CRCDISK не совпадают. Это может быть ошибка разбиения по страницам. Ошибка, проверка с этим параметром, возникает только в том случае, если активен параметр Проверка целостности диска средства проверки драйверов. |
0xB0 | MDL-адрес | Флаги MDL | Неправильные флаги MDL | Драйвер с именем MmProbeAndLockPages для MDL с неправильными флагами. Например, драйвер передал MDL, созданный MmBuildMdlForNonPagedPool , в MmProbeAndLockPages. |
0xB1 | MDL-адрес | Флаги MDL | Неправильные флаги MDL | Драйвер с именем MmProbeAndLockProcessPages для MDL с неправильными флагами. Например, драйвер передал MDL, созданный MmBuildMdlForNonPagedPool , в MmProbeAndLockProcessPages. |
0xB2 | MDL-адрес | Флаги MDL | Неправильные флаги MDL | Драйвер с именем MmMapLockedPages для MDL с неправильными флагами. Например, драйвер передал MDL, который уже сопоставлен с системным адресом или который не был заблокирован для MmMapLockedPages. |
0xB3 | Адрес MDL | Флаги MDL | Отсутствуют флаги MDL (ожидалось по крайней мере один из них) | Драйвер с именем MmMapLockedPages для MDL с неправильными флагами. Например, драйвер передал MDL, который не заблокирован в MmMapLockedPages. |
0xB4 | Адрес MDL | Флаги MDL | Непредвиденный флаг частичного MDL | Драйвер с именем MmUnlockPages для частичного MDL. Частичный MDL — это файл, созданный IoBuildPartialMdl. |
0xB5 | Адрес MDL | Флаги MDL | Непредвиденный флаг частичного MDL | MmUnmapLockedPages вызывается в частичном MDL (созданном с помощью IoBuildPartialMdl). |
0xB6 | Адрес MDL | Флаги MDL | Отсутствует флаг MDL | MmUnmapLockedPages вызывается для MDL, не сопоставленного с системным адресом. |
0xB7 | Число физических страниц, поврежденных. | Первая поврежденная физическая страница. | Последняя поврежденная физическая страница. | Bios системы повредил нехватку физической памяти во время перехода в спящий режим. |
0xB8 | Адрес MDL | Флаги MDL | Зарезервировано | Страницы, описанные в MDL, по-прежнему сопоставляются. Драйвер должен отменить сопоставление страниц перед вызовом IoFreeMdl. |
0xB9 | Несопоставленный адрес. | Адрес MDL. | Зарезервировано | MmUnmapLockedPages вызывается с неправильным адресом пользовательского пространства. |
0xC0 | Адрес IRP | 0 | Зарезервировано | Драйвер с именем IoCallDriver с отключенными прерываниями. |
0xC1 | Адрес подпрограммы диспетчеризации драйвера | Зарезервировано | Зарезервировано | Возвращена подпрограмма диспетчеризации драйвера с отключенными прерываниями. |
0xC2 | 0 | 0 | 0 | После отключения прерываний драйвер называется подпрограммой диспетчеризации быстрых операций ввода-вывода. |
0xC3 | Адрес процедуры диспетчеризации быстрого ввода-вывода драйвера | Зарезервировано | Зарезервировано | Возвращена процедура диспетчеризации быстрого ввода-вывода драйвера с отключенными прерываниями. |
0xC5 | Адрес подпрограммы диспетчеризации драйвера | Счетчик отключения APC текущего потока | Счетчик отключения APC потока перед вызовом подпрограммы диспетчеризации драйвера | Подпрограмма диспетчеризации драйвера изменила число отключений APC потока. Счетчик отключения APC уменьшается каждый раз, когда драйвер вызывает KeEnterCriticalRegion, FsRtlEnterFileSystem или получает мьютекс. Счетчик отключения APC увеличивается каждый раз, когда драйвер вызывает KeLeaveCriticalRegion, KeReleaseMutex или FsRtlExitFileSystem. Так как эти вызовы всегда должны быть парами, счетчик отключения APC должен быть равен нулю при каждом выходе из потока. Отрицательное значение указывает, что драйвер отключил вызовы APC без их повторного включения. Положительное значение указывает, что обратное имеет значение true. |
0xC6 | Адрес процедуры диспетчеризации быстрого ввода-вывода драйвера | Счетчик отключения APC текущего потока | APC потока отключает счетчик перед вызовом процедуры диспетчеризации драйвера быстрого ввода-вывода. | Подпрограмма диспетчеризации быстрого ввода-вывода драйвера изменила число отключений APC потока. Счетчик отключения APC уменьшается каждый раз, когда драйвер вызывает KeEnterCriticalRegion, FsRtlEnterFileSystem или получает мьютекс. Счетчик отключения APC увеличивается каждый раз, когда драйвер вызывает KeLeaveCriticalRegion, KeReleaseMutex или FsRtlExitFileSystem. Так как эти вызовы всегда должны быть парами, счетчик отключения APC должен быть равен нулю при каждом выходе из потока. Отрицательное значение указывает, что драйвер отключил вызовы APC без их повторного включения. Положительное значение указывает, что обратное имеет значение true. |
0xCA | Адрес списка lookaside | Зарезервировано | Зарезервировано | Драйвер попытался повторно инициализировать список lookaside. |
0xCB | Адрес списка lookaside | Зарезервировано | Зарезервировано | Драйвер попытался удалить неинициализированный список lookaside. |
0xCC | Адрес списка lookaside | Начальный адрес выделения пула | Размер выделения пула | Драйвер попытался освободить выделение пула, содержащее активный список lookaside. |
0xCD | Адрес списка lookaside | Размер блока, указанный вызывающим объектом | Минимальный поддерживаемый размер блока | Драйвер попытался создать список lookaside с слишком маленьким размером блока выделения. |
0xD0 | Адрес структуры ERESOURCE | Зарезервировано | Зарезервировано | Драйвер попытался повторно инициализировать структуру ERESOURCE. |
0xD1 | Адрес структуры ERESOURCE | Зарезервировано | Зарезервировано | Драйвер попытался удалить неинициализированную структуру ERESOURCE. |
0xD2 | Адрес структуры ERESOURCE | Начальный адрес выделения пула | Размер выделения пула | Драйвер попытался освободить выделение пула, содержащее активную структуру ERESOURCE. |
0xD5 | Адрес структуры IO_REMOVE_LOCK, созданной проверенной версией сборки драйвера | Текущий тег IoReleaseRemoveLock | Зарезервировано | Текущий тег IoReleaseRemoveLock не соответствует предыдущему тегу IoAcquireRemoveLock . Если драйвер, вызывающий IoReleaseRemoveLock, не находится в проверенной сборке, параметр 2 — это адрес структуры теневого IO_REMOVE_LOCK, созданной средством проверки драйверов от имени драйвера. В этом случае адрес структуры IO_REMOVE_LOCK, используемой драйвером, не используется вообще, так как средство проверки драйверов заменяет адрес блокировки для всех API-интерфейсов удаления блокировки. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр проверки ввода-вывода средства проверки драйверов. |
0xD6 | Адрес структуры IO_REMOVE_LOCK, созданной проверенной версией сборки драйвера | Тег, не соответствующий предыдущему тегу IoAcquireRemoveLock | Предыдущий тег IoAcquireRemoveLock | Текущий тег IoReleaseRemoveLockAndWait не соответствует предыдущему тегу IoAcquireRemoveLock . Если драйвер, вызывающий IoReleaseRemoveLock , не является проверенной сборкой, параметр 2 — это адрес структуры теневого IO_REMOVE_LOCK, созданной средством проверки драйверов от имени драйвера. В этом случае адрес структуры IO_REMOVE_LOCK, используемой драйвером, не используется вообще, так как средство проверки драйверов заменяет адрес блокировки для всех API-интерфейсов удаления блокировки. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр проверки ввода-вывода средства проверки драйверов. |
0xD7 | Адрес проверенной структуры удаления блокировки сборки, которая используется внутри средства проверки драйверов | Адрес структуры удаления блокировки, указанной драйвером | Зарезервировано | Удалить блокировку нельзя повторно инициализировать даже после вызова IoReleaseRemoveLockAndWait, так как другие потоки могут по-прежнему использовать эту блокировку (путем вызова IoAcquireRemoveLock). Драйвер должен выделить параметр Remove Lock внутри расширения устройства и инициализировать его один раз. Блокировка будет удалена вместе с расширением устройства. |
0xDA | Начальный адрес драйвера | Адрес обратного вызова WMI в драйвере | Зарезервировано | Предпринята попытка выгрузить драйвер, который не отменил регистрацию функции обратного вызова WMI. |
0xDB | Адрес объекта устройства | Зарезервировано | Зарезервировано | Предпринята попытка удалить объект устройства, который не был отменен из WMI. |
0xDC | Зарезервировано | Зарезервировано | Зарезервировано | В качестве параметра функции EtwUnregister указано недопустимое значение RegHandle. |
0xDD | Адрес вызова EtwRegister | Начальный адрес драйвера для выгрузки | Для Windows 8 и более поздних версий этот параметр является значением RegHandle трассировки событий Windows. | Предпринята попытка выгрузить драйвер без вызова EtwUnregister. |
0xDF | Адрес объекта синхронизации | 0 | 0 | Объект синхронизации находится в адресном пространстве сеанса. Объекты синхронизации не допускаются в адресном пространстве сеанса, так как ими можно управлять из другого сеанса или из системных потоков, не имеющих виртуального адресного пространства сеанса. |
0xE0 | Адрес в пользовательском режиме, используемый в качестве параметра | Размер диапазона адресов , используемого в качестве параметра , в байтах | Зарезервировано | Был выполнен вызов функции ядра операционной системы, которая указала адрес пользовательского режима в качестве параметра. |
0xE1 | Адрес объекта синхронизации | Зарезервировано | Зарезервировано | Обнаружен недопустимый или доступный для страницы адрес объекта синхронизации. |
0xE2 | Адрес IRP | Адрес в пользовательском режиме, присутствующий в IRP | Зарезервировано | Обнаружено, что адрес IRP с Irp-RequestorMode> имеет значение KernelMode в качестве одного из членов. |
0xE3 | Адрес вызова API | Адрес в пользовательском режиме, используемый в качестве параметра в API | Зарезервировано | Драйвер сделал вызов подпрограммы ZwXxx в режиме ядра с адресом в пользовательском режиме в качестве параметра. |
0xE4 | Адрес вызова API | Адрес структуры UNICODE_STRING с неправильным форматом | Зарезервировано | Драйвер сделал вызов подпрограммы ZwXxx в режиме ядра с неправильной структурой UNICODE_STRING в качестве параметра. |
0xE5 | Текущий IRQL | Зарезервировано | Зарезервировано | Был выполнен вызов API ядра в неправильном IRQL. |
0xE6 | Адрес внутри драйвера, выполняющего вызов API Zw | Текущий IRQL | Специальные APC ядра. | Api ядра Zw не вызывался в IRQL = PASSIVE_LEVEL и с включенными специальными APC ядра. |
0xEA | Текущий IRQL | Счетчик отключения APC потока | Адрес push-блокировки | Драйвер попытался получить push-блокировку во время включения APC. |
0xEB | Текущий IRQL | Счетчик отключения APC потока | Адрес push-блокировки | Драйвер попытался освободить push-блокировку во время включения APC. |
0xF0 | Адрес буфера назначения | Адрес исходного буфера | Число байтов для копирования | Драйвер с именем функции memcpy с перекрывающимися буферами источника и назначения. |
0xF5 | Адрес дескриптора NULL | Тип объекта | Зарезервировано | Драйвер передал дескриптор NULL в ObReferenceObjectByHandle. |
0xF6 | Дескриптор значения, на которое ссылается ссылка | Адрес текущего процесса | Адрес в драйвере, который выполняет неправильную ссылку | Драйвер ссылается на дескриптор пользовательского режима как на режим ядра. |
0xF7 | Дескриптор значения, указанного вызывающим объектом | Тип объекта, заданный вызывающим объектом | AccessMode, заданный вызывающим объектом | Драйвер пытается создать ссылку в пользовательском режиме для дескриптора ядра в контексте системного процесса. |
0xFA | Адрес подпрограммы завершения. | Значение IRQL перед вызовом процедуры завершения | Текущее значение IRQL после вызова процедуры завершения | Подпрограмма завершения IRP возвращается в IRQL, отличающемся от IRQL, в который была вызвана подпрограмма. |
0xFB | Адрес подпрограммы завершения | Счетчик отключения APC текущего потока | APC потока отключает счетчик перед вызовом процедуры завершения IRP. | Число отключений APC потока было изменено подпрограммой завершения IRP драйвера. Счетчик отключения APC уменьшается каждый раз, когда драйвер вызывает KeEnterCriticalRegion, FsRtlEnterFileSystem или получает мьютекс. Счетчик отключения APC увеличивается каждый раз, когда драйвер вызывает KeLeaveCriticalRegion, KeReleaseMutex или FsRtlExitFileSystem. Так как эти вызовы всегда должны быть парами, счетчик отключения APC должен быть равен нулю при каждом выходе из потока. Отрицательное значение указывает, что драйвер отключил вызовы APC без их повторного включения. Положительное значение указывает, что обратное имеет значение true. |
0xFC | Адрес внутри драйвера, выполняющего неправильный вызов API. | Указано значение ApcContext. | Зарезервировано | Вызов ZwNotifyChangeKey (из режима ядра) с неподдерживаемого значения ApcContext. |
0x105 в 0x140
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x105 | Адрес IRP | 0 | 0 | Драйвер использует ExFreePool вместо IoFreeIrp, чтобы освободить IRP. |
0x10A | 0 | 0 | 0 | Драйвер пытается списать квоту пула для процесса простоя. |
0x10B | 0 | 0 | 0 | Драйвер пытается списать квоту пула из подпрограммы DPC. Это неправильно, так как текущий контекст процесса не определен. |
0x110 | Адрес подпрограммы службы прерывания | Адрес расширенного контекста, который был сохранен до выполнения ISR | Адрес расширенного контекста был сохранен после выполнения ISR | Подпрограмма службы прерываний (ISR) для драйвера повредила контекст расширенного потока. |
0x111 | Адрес подпрограммы службы прерывания | IRQL перед выполнением ISR | IRQL после выполнения ISR | Прерывание служебной подпрограммы вернуло измененный IRQL. |
0x115 | Адрес потока, ответственного за завершение работы, который может быть взаимоблокирован. | 0 | 0 | Средство проверки драйверов обнаружило, что работа системы занимает более 20 минут и завершение работы не завершено. |
0x11A | Текущий IRQL | 0 | 0 | Драйвер вызывает KeEnterCriticalRegion на APC_LEVEL IRQL > . |
0x11B | Текущий IRQL | 0 | 0 | Драйвер вызывает KeLeaveCriticalRegion на APC_LEVEL IRQL > . |
0x120 | Адрес значения IRQL | Адрес объекта для ожидания | Адрес значения времени ожидания | Поток ожидает на DISPATCH_LEVEL IRQL > . Вызывающие объекты KeWaitForSingleObject или KeWaitForMultipleObjects должны выполняться по адресу IRQL <= DISPATCH_LEVEL. |
0x121 | Адрес значения IRQL | Адрес объекта для ожидания | Адрес значения времени ожидания | Поток ожидает в IRQL равно DISPATCH_LEVEL, а время ожидания равно NULL. Вызывающие объекты KeWaitForSingleObject или KeWaitForMultipleObjects могут выполняться в IRQL <= DISPATCH_LEVEL. Если для параметра Timeout указан указатель NULL, вызывающий поток остается в состоянии ожидания, пока не будет передан сигнал объекту . |
0x122 | Адрес значения IRQL | Адрес объекта для ожидания | Адрес значения времени ожидания | Поток ожидает DISPATCH_LEVEL и время ожидания не равно нулю (0). Если значение Timeout != 0, вызывающие объекты KeWaitForSingleObject или KeWaitForMultipleObjects должны выполняться в IRQL <= APC_LEVEL. |
0x123 | Адрес объекта для ожидания | 0 | 0 | Вызывающий объект KeWaitForSingleObject или KeWaitForMultipleObjects указал ожидание как UserMode, но объект находится в стеке ядра. |
0x130 | Адрес рабочего элемента | 0 | 0 | Рабочий элемент находится в адресном пространстве сеанса. Рабочие элементы не допускаются в адресном пространстве сеанса, так как ими можно управлять из другого сеанса или из системных потоков, не имеющих виртуального адресного пространства сеанса. |
0x131 | Адрес рабочего элемента | 0 | 0 | Рабочий элемент находится в доступной для страниц памяти. Рабочие элементы должны находиться в памяти, неизменяемой для страниц, так как ядро использует их на DISPATCH_LEVEL. |
0x135 | Адрес IRP | Допустимое количество миллисекунд между вызовом IoCancelIrp и завершением для этого IRP | 0 | Отмененная IRP не была завершена в ожидаемое время. Драйверу потребовалось больше времени, чем ожидалось, чтобы завершить отмененную IRP. |
0x13A | Адрес освобождаемого блока пула | Неверное значение | Адрес неправильного значения | Драйвер вызвал ExFreePool , а средство проверки драйверов обнаруживает ошибку в одном из внутренних значений, используемых для отслеживания использования пула. |
0x13B | Адрес освобождаемого блока пула | Адрес неправильного значения | Адрес указателя на неправильную страницу памяти | Драйвер вызвал ExFreePool , а средство проверки драйверов обнаруживает ошибку в одном из внутренних значений, используемых для отслеживания использования пула. |
0x13C | Адрес освобождаемого блока пула | Неверное значение | Адрес неправильного значения | Драйвер вызвал ExFreePool , а средство проверки драйверов обнаруживает ошибку в одном из внутренних значений, используемых для отслеживания использования пула. |
0x13D | Адрес освобождаемого блока пула | Адрес неправильного значения | Правильное ожидаемое значение | Драйвер вызвал ExFreePool , а средство проверки драйверов обнаруживает ошибку в одном из внутренних значений, используемых для отслеживания использования пула. |
0x13E | Адрес блока пула, указанный вызывающим объектом | Адрес блока пула, отслеживаемый средством проверки драйверов | Указатель на адрес блока пула, отслеживаемый средством проверки драйверов | Адрес блока пула, указанный вызывающим объектом ExFreePool , отличается от адреса, отслеживаемого средством проверки драйверов. |
0x13F | Адрес освобождаемого блока пула | Число освобождаемых байтов | Указатель на количество байтов, отслеживаемых средством проверки драйверов | Количество байтов памяти, освобождаемых при вызове ExFreePool , отличается от количества байтов, отслеживаемых средством проверки драйверов. |
0x140 | Текущий IRQL | Адрес MDL | Связанный виртуальный адрес с этим MDL | Неблокированный MDL был создан из страничной или торгуемой памяти. |
0x141 | Максимальный физический адрес, запрошенный драйвером для выделения | Количество выделенных байтов | 0 | Драйвер явно запрашивает объем физической памяти в 4 ГБ. |
0x1000 в 0x100B — взаимоблокировки
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x1000 | Адрес ресурса | Зарезервировано | Зарезервировано | Самостоятельная взаимоблокировка. Текущий поток попытался рекурсивно и исключительно получить ресурс, которым он владеет только совместно. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. |
0x1001 | Адрес ресурса, который стал последней причиной взаимоблокировки | Зарезервировано | Зарезервировано | Взаимоблокировка: обнаружено нарушение иерархии блокировок. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. (Для получения дополнительных сведений используйте расширение !deadlock .) |
0x1002 | Адрес ресурса | Зарезервировано | Зарезервировано | Неинициализированный ресурс. Ресурс был получен без инициализации. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. |
0x1003 | Адрес ресурса, который освобождается взаимоблокировкой | Адрес ресурса, который должен был быть освобожден первым | Зарезервировано | Непредвиденный выпуск. Ресурс был освобожден в неправильном порядке. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. |
0x1004 | Адрес ресурса | Адрес потока, который получил ресурс | Адрес текущего потока | Непредвиденный поток. Неправильный поток освобождает ресурс. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. |
0x1005 | Адрес ресурса | Зарезервировано | Зарезервировано | Множественная инициализация. Ресурс инициализируется несколько раз. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. |
0x1007 | Адрес ресурса | Зарезервировано | Зарезервировано | Не запрошенный ресурс. Ресурс освобождается до его приобретения. Ошибка проверка с этим параметром возникает только в том случае, если активен параметр Обнаружение взаимоблокировки средства проверки драйверов. |
0x1008 | Адрес блокировки | Зарезервировано | Зарезервировано | Драйвер пытался получить блокировку с помощью API, который не соответствует этому типу блокировки. |
0x1009 | Адрес блокировки | Зарезервировано | Зарезервировано | Драйвер попытался освободить блокировку с помощью API, который не соответствует этому типу блокировки. |
0x100A | Адрес потока владельца | Зарезервировано | Завершенный поток владеет блокировкой. | |
0x100B | Адрес блокировки | Адрес потока владельца | Зарезервировано | Удаленная блокировка по-прежнему принадлежит потоку. |
0x1010 | Объект устройства, которому был выдан IRP записи. | Адрес IRP. | System-Space виртуальный адрес для буфера, описываемого MDL. | Изменено инвариантное содержимое буфера MDL для записи Irp. |
0x1011 | Объект устройства, которому был выдан IRP записи. | Адрес IRP. | System-Space виртуальный адрес для буфера, описываемого MDL. | Инвариантное содержимое буфера MDL для read Irp было изменено во время отправки или буфера, поддерживаемого фиктивными страницами. |
0x1012 | Указатель на строку, описывающую нарушение. | Данные, участвующие в этом повреждении (0, если они не используются). | Данные, участвующие в этом повреждении (0, если они не используются). | Обнаружено повреждение хранилища состояния расширения проверки. |
0x1013 | Указатель на объект драйвера. | Указатель на захваченные исходные обратные вызовы ввода-вывода. | Зарезервировано (неиспользуемое). | Средство проверки обнаружило внутреннее повреждение в захваченных исходных обратных вызовах ввода-вывода. |
0x2000 в 0x2005 — проблемы с целостностью кода
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x2000 | Адрес в коде драйвера, где была обнаружена ошибка. | Тип пула. | Тег пула (если он указан). | Проблема целостности кода. Вызывающий объект указал тип пула исполняемых файлов. (Ожидается: NonPagedPoolNx) |
0x2001 | Адрес в коде драйвера, где была обнаружена ошибка. | Защита страниц (WIN32_PROTECTION_MASK). | 0 | Проблема целостности кода. Вызывающий объект указал защиту исполняемой страницы. (Ожидается: очищенные биты PAGE_EXECUTE*) |
0x2002 | Адрес в коде драйвера, где была обнаружена ошибка. | Приоритет страницы (MM_PAGE_PRIORITY логически или с MdlMapping*). | 0 | Проблема целостности кода. Вызывающий объект указал сопоставление MDL исполняемого файла. (Ожидается: MdlMappingNoExecute) |
0x2003 | Имя файла изображения (строка Юникода). | Адрес заголовка раздела. | Имя раздела (строка в кодировке UTF-8). | Проблема целостности кода. Изображение содержит исполняемый и записываемый раздел. |
0x2004 | Имя файла изображения (строка Юникода). | Адрес заголовка раздела. | Имя раздела (строка в кодировке UTF-8). | Проблема целостности кода. Изображение содержит раздел, который не выровнен по страницам. |
0x2005 | Имя файла изображения (строка Юникода). | Каталог IAT. | Имя раздела (строка в кодировке UTF-8). | Проблема целостности кода. Образ содержит IAT, расположенный в исполняемом разделе. |
0xA001 на 0xA00D — проблемы с переключением виртуальной машины
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0xA001 | Указатель на объект NetBufferList | Указатель на объект виртуального коммутатора (если значение NON-NULL) | Зарезервировано (неиспользуемое) | Переключатель виртуальной машины. Необходимо задать SourceHandle для предоставленного вызывающим абонентом NetBufferList. См. подпрограмму AllocateNetBufferListForwardingContext . |
0xA002 | Указатель на объект NetBufferList | Указатель на объект виртуального коммутатора (если не равно NULL). | Зарезервировано (неиспользуемое) | Коммутатор виртуальной машины. Вызывающий объект предоставил сведения о переадресации NetBufferList не равны нулю. См. подпрограмму AllocateNetBufferListForwardingContext . |
0xA003 | Указатель на объект NetBufferList | Указатель на объект виртуального коммутатора (если не равно NULL). | Зарезервировано (неиспользуемое) | Коммутатор виртуальной машины. Вызывающий объект предоставил NetBufferList с заголовком пакета или контекстом маршрутизации, который имеет значение NULL. Ознакомьтесь с рекомендациями по управлению пакетами для пути к данным расширяемого коммутатора. |
0xA004 | Идентификатор недопустимого порта | Индекс сетевой карты | Указатель на объект виртуального коммутатора (если не равно NULL). | Коммутатор виртуальной машины. Вызывающий объект указал недопустимое сочетание портов и индекса сетевой карты. См. статью Состояния порта расширяемого коммутатора Hyper-V и сетевого адаптера. |
0xA005 | Указатель на объект NetBufferList | Указатель на список назначения. | Указатель на объект виртуального коммутатора (если не равно NULL). | Переключение виртуальной машины. Вызывающий объект предоставил недопустимое назначение. См . разделы AddNetBufferListDestination и UpdateNetBufferListDestinations. |
0xA006 | Указатель на объект NetBufferList | Указатель на объект виртуального коммутатора (если не равно NULL). | Зарезервировано (неиспользуемое) | Переключение виртуальной машины. Вызывающий объект предоставил недопустимый исходный сетевой адаптер или объект порта. См. статью Состояния порта расширяемого коммутатора Hyper-V и сетевого адаптера. |
0xA007 | Указатель на объект NetBufferList | Указатель на объект виртуального коммутатора (если не равно NULL). | Зарезервировано (неиспользуемое) | Переключение виртуальной машины. Вызывающий объект предоставил недопустимый список назначений. См . разделы AddNetBufferListDestination и UpdateNetBufferListDestinations. |
0xA008 | Родительский объект сетевой карты | Индекс сетевой карты | Указатель на объект виртуального коммутатора (если не равно NULL). | Переключение виртуальной машины: попытка сослаться на сетевой адаптер, если это не разрешено. См. статью Состояния порта расширяемого коммутатора Hyper-V и сетевого адаптера. |
0xA009 | Порт, на который ссылается ссылка | Указатель на объект виртуального коммутатора (если значение NON-NULL) | Зарезервировано (неиспользуемое) | Переключение виртуальной машины: попытка сослаться на порт, если это не разрешено. См. статью Состояния порта расширяемого коммутатора Hyper-V и сетевого адаптера. |
0xA00A | Указатель на объект NetBufferList | Объект ContextTypeInfo | Зарезервировано (неиспользуемое) | Переключение виртуальной машины: контекст сбоя уже задан. См . раздел SetNetBufferListSwitchContext. |
0xA00B | Указатель на объект NetBufferList | NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* | Указатель на объект виртуального коммутатора (если значение NON-NULL) | Переключатель виртуальной машины: для удаленного списка NetBufferList указано недопустимое направление. См . раздел ReportFilteredNetBufferLists. |
0xA00C | Указатель на объект NetBufferList | Значение флагов отправки | Указатель на объект виртуального коммутатора (если значение NON-NULL) | Коммутатор виртуальной машины. Если установлен флаг NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE, цепочка NetBufferList имеет несколько исходных портов. См. раздел Флаги отправки и получения расширяемого коммутатора Hyper-V. |
0xA00D | Указатель на объект NetBufferList | Указатель на контекст виртуального коммутатора | Указатель на объект виртуального коммутатора (если значение NON-NULL) | Коммутатор виртуальной машины: один или несколько списков NetBufferLists в цепочке имеют недопустимое назначение, если установлен флаг NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP. См. раздел Флаги отправки и получения расширяемого коммутатора Hyper-V. |
0xA00E | Указатель на объект NetBufferLists. | Указатель на контекст виртуального коммутатора. | Указатель на объект виртуального коммутатора (если не равно NULL). | Переключение виртуальной машины: попытка завершить NetBufferList через WNV при установке флага VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING. |
0x00020002 к 0x00020022 — нарушения правил соответствия требованиям DDI
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x00020002 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlApcLte. Правило указывает, что драйвер должен вызывать ObGetObjectSecurity и ObReleaseObjectSecurity только в том случае, если IRQL <= APC_LEVEL. |
0x00020003 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlDispatch. Правило IrqlDispatch указывает, что драйвер должен вызывать определенные подпрограммы, только если IRQL = DISPATCH_LEVEL |
0x00020004 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlExAllocatePool. Правило IrqlExAllocatePool указывает, что драйвер вызывает ExAllocatePoolWithTag и ExAllocatePoolWithTagPriority только при значении IRQL<=DISPATCH_LEVEL. |
0x00020005 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlExApcLte1. Правило IrqlExApcLte1 указывает, что драйвер вызывает ExAcquireFastMutex и ExTryToAcquireFastMutex только в irQL <= APC_LEVEL. |
0x00020006 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlExApcLte2. Правило IrqlExApcLte2 указывает, что драйвер вызывает определенные подпрограммы, только если IRQL <= APC_LEVEL. |
0x00020007 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlExApcLte3. Правило IrqlExApcLte3 указывает, что драйвер должен вызывать определенные подпрограммы поддержки руководителей, только если IRQL <= APC_LEVEL. |
0x00020008 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlExPassive. Правило IrqlExPassive указывает, что драйвер должен вызывать определенные процедуры поддержки руководителей, только если IRQL = PASSIVE_LEVEL. |
0x00020009 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlIoApcLte. Правило IrqlIoApcLte указывает, что драйвер должен вызывать определенные подпрограммы диспетчера ввода-вывода, только если IRQL <= APC_LEVEL. |
0x0002000A | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlIoPassive1. Правило IrqlIoPassive1 указывает, что драйвер должен вызывать определенные подпрограммы диспетчера ввода-вывода, только если IRQL = PASSIVE_LEVEL. |
0x0002000B | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlIoPassive2. Правило IrqlIoPassive2 указывает, что драйвер должен вызывать определенные подпрограммы диспетчера ввода-вывода, только если IRQL = PASSIVE_LEVEL. |
0x0002000C | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlIoPassive3. Правило IrqlIoPassive3 указывает, что драйвер должен вызывать определенные подпрограммы диспетчера ввода-вывода, только если IRQL = PASSIVE_LEVEL. |
0x0002000D | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlIoPassive4. Правило IrqlIoPassive4 указывает, что драйвер должен вызывать определенные подпрограммы диспетчера ввода-вывода, только если IRQL = PASSIVE_LEVEL. |
0x0002000E | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlIoPassive5. Правило IrqlIoPassive5 указывает, что драйвер должен вызывать определенные подпрограммы диспетчера ввода-вывода, только если IRQL = PASSIVE_LEVEL. |
0x0002000F | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlKeApcLte1. Правило IrqlKeApcLte1 указывает, что драйвер должен вызывать определенные подпрограммы ядра, только если IRQL <= APC_LEVEL. |
0x00020010 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlKeApcLte2. Правило IrqlKeApcLte2 указывает, что драйвер должен вызывать определенные подпрограммы ядра, только если IRQL <= APC_LEVEL. |
0x00020011 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlKeDispatchLte. Правило IrqlKeDispatchLte указывает, что драйвер должен вызывать определенные подпрограммы ядра, только если IRQL <= DISPATCH_LEVEL. |
0x00020015 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlKeReleaseSpinLock. Правило IrqlKeReleaseSpinLock указывает, что драйвер должен вызывать KeReleaseSpinLock, только если IRQL = DISPATCH_LEVEL. |
0x00020016 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlKeSetEvent. Правило IrqlKeSetEvent указывает, что подпрограмма KeSetEvent вызывается только в среде IRQL <= DISPATCH_LEVEL, если параметр Wait имеет значение FALSE, и в параметре IRQL <= APC_LEVEL, если параметр Wait имеет значение TRUE. |
0x00020019 | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlMmApcLte. Правило IrqlMmApcLte указывает, что драйвер должен вызывать определенные подпрограммы диспетчера памяти, только если IRQL <= APC_LEVEL. |
0x0002001A | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlMmDispatch. Правило IrqlMmDispatch указывает, что драйвер должен вызывать MmFreeContiguousMemory , только если IRQL = DISPATCH_LEVEL. |
0x0002001B | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlObPassive. Правило IrqlObPassive указывает, что драйвер должен вызывать ObReferenceObjectByHandle , только если IRQL = PASSIVE_LEVEL. |
0x0002001C | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlPsPassive. Правило IrqlPsPassive указывает, что драйвер должен вызывать определенные процедуры диспетчера процессов и потоков, только если IRQL = PASSIVE_LEVEL. |
0x0002001D | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI IrqlReturn. |
0x0002001E | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlRtlPassive. Правило IrqlRtlPassive указывает, что драйвер должен вызывать RtlDeleteRegistryValue , только если IRQL = PASSIVE_LEVEL. |
0x0002001F | Указатель на строку, описывающую условие нарушенного правила. | Необязательный указатель на переменные состояния правила. | Зарезервировано | Драйвер нарушил правило соответствия DDI IrqlZwPassive. Правило IrqlZwPassive указывает, что драйвер должен вызывать ZwClose только в том случае, если IRQL = PASSIVE_LEVEL. |
0x00020022 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Драйвер нарушил правило соответствия DDI IrqlIoDispatch. |
0x00020023 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое). | Зарезервировано (неиспользуемое). | Драйвер нарушил правило соответствия DDI IrqlIoRtlZwPassive. Правило IrqlIoRtlZwPassive указывает, что драйвер вызывает DDIs, перечисленные в правиле, только если он выполняется в irQL = PASSIVE_LEVEL. |
0x00020024 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое). | Зарезервировано (неиспользуемое). | Драйвер нарушил правило соответствия DDI IrqlNtifsApcPassive. Правило IrqlNtifsApcPassive указывает, что драйвер вызывает DDIs, перечисленные в правиле, только если он выполняется в IRQL = PASSIVE_LEVEL или в IRQL <= APC_LEVEL. |
0x00020025 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое). | Зарезервировано (неиспользуемое). | Драйвер нарушил внутреннее правило соответствия DDI Майкрософт IrqlKeMore. |
0x00040003 к 0x00043006 — нарушения правил соответствия требованиям DDI
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x00040003 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI CriticalRegions. |
0x00040006 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI QueuedSpinLock. |
0x00040007 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI QueuedSpinLockRelease. |
0x00040009 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI SpinLock. |
0x0004000A | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo) | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI SpinlockRelease. |
0x0004000E | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI GuardedRegions. |
0x0004100B | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Драйвер нарушил правило соответствия DDI RequestedPowerIrp. |
0x0004100F | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия требованиям DDI IoSetCompletionExCompleteIrp. |
0x00043006 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Драйвер нарушил правило соответствия DDI PnpRemove. |
0x00081001 0x00082005 — нарушения правил соответствия драйверов AVStream
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x00081001 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsDeviceMutex. |
0x00081002 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsStreamPointerClone. |
0x00081003 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Драйвер нарушил правило соответствия DDI KsStreamPointerLock. |
0x00081004 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsStreamPointerUnlock. |
0x00081005 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Драйвер нарушил правило соответствия DDI KsCallbackReturn. |
0x00081006 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsIrqlDeviceCallbacks. |
0x00081007 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsIrqlFilterCallbacks. |
0x00081008 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsIrqlPinCallbacks. |
0x00081009 | Указатель на строку, описывающую условие нарушенного правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Драйвер нарушил правило соответствия DDI KsIrqlDDIs. |
0x0008100A | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsFilterMutex. |
0x0008100B | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsProcessingMutex. |
0x0008100C | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsInvalidStreamPointer. |
0x00082001 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsTimedPinSetDeviceState. |
0x00082002 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент для !ruleinfo). | Драйвер нарушил правило соответствия DDI KsTimedDeviceCallbacks. |
0x00082003 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент для !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило соответствия DDI KsTimedFilterCallbacks. |
0x00082004 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило соответствия DDI KsTimedPinCallbacks. |
0x00082005 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило соответствия DDI KsTimedProcessingMutex. |
0x00091001 на 0x0009400C — нарушения правил соответствия требованиям NDIS DDI
Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
---|---|---|---|---|
0x00091001 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило соответствия DDI NdisOidComplete. |
0x00091002 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило соответствия DDI NdisOidDoubleComplete. |
0x0009100E | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило соответствия DDI NdisOidDoubleRequest. |
0x00092003 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI NdisTimedOidComplete. |
0x0009200D | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило проверки NDIS/WIFI NdisTimedDataSend. |
0x0009200F | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI NdisTimedDataHang. |
0x00092010 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI NdisFilterTimedPauseComplete. |
0x00092011 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI NdisFilterTimedDataSend. |
0x00092012 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI NdisFilterTimedDataReceive. |
0x00093004 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanAssociation. |
0x00093005 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanConnectionRoaming. |
0x00093006 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanDisassociation. |
0x00093101 | Указатель на строку, описывающую нарушенное условие правила. | Зарезервировано (неиспользуемое) | Зарезервировано (неиспользуемое) | Водитель нарушил правило проверки NDIS/WIFI WlanAssert. |
0x00094007 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanTimedAssociation. |
0x00094008 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanTimedConnectionRoaming. |
0x00094009 | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Драйвер нарушил правило проверки NDIS/WIFI WlanTimedConnectRequest. |
0x0009400B | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanTimedLinkQuality. |
0x0009400C | Указатель на строку, описывающую условие нарушенного правила. | Адрес внутреннего состояния правила (второй аргумент в !ruleinfo). | Адрес дополнительных состояний (третий аргумент в !ruleinfo). | Водитель нарушил правило проверки NDIS/WIFI WlanTimedScan. |
Причина
Описание причины см. в описании каждого кода в разделе Параметры. Дополнительные сведения можно получить с помощью расширения !analyze -v .
Решение
Эта ошибка проверка может возникнуть только в том случае, если средство проверки драйверов было проинструктировано отслеживать один или несколько драйверов. Если вы не планируете использовать средство проверки драйверов, его следует отключить. Вы также можете удалить драйвер, который вызвал эту проблему.
Если вы являетесь модулем записи драйверов, используйте сведения, полученные с помощью этой проверка, чтобы исправить ошибки в коде.
Полные сведения о средствах проверки драйверов см. в разделе Средство проверки драйверов.
Комментарии
Коды _POOL_TYPE перечислены в ntddk.h. В частности, 0 (ноль) указывает на невыгружаемый пул, а 1 (один) — на выгружаемый пул.
(Windows 8 и более поздних версий Windows) Если проверка соответствия DDI вызывает проверка ошибок, запустите средство проверки статических драйверов в исходном коде драйвера и укажите правило соответствия DDI (идентифицируемое значением параметра 1), которое вызвало ошибку проверка. Средство проверки статических драйверов помогает определить причину проблемы в исходном коде.
См. также
Обработка проверки ошибок при включении средства проверки драйверов