BSOD 0x000000C2 — BAD_POOL_CALLER

BSOD 0x000000C2 Данный стоп код означает, что текущим потоком был выполнен некорректный запрос пула. Стоп код имеет следующие параметры (таблица ниже). Параметр 1 определяет тип ошибки.

Параметр 1 Параметр 2 Параметр 3 Параметр 4 Причина ошибки
0x00 0 Тип пула Тег пула Текущий поток запросил выделение памяти нулевого размера
0x01,0x02,0x04 Указатель на заголовок пула Первая часть содержимого заголовка пула 0 Заголовок пула поврежден
0x06 Зарезервировано Указатель на заголовок пула Содержимое заголовка пула Код текущего потока попытался выполнить операцию освобождения памяти пула, которая уже была освобождена
0x07 Зарезервировано Содержимое заголовка пула Адрес освобождаемого блока пула Код текущего потока попытался выполнить операцию освобождения памяти пула, которая уже была освобождена
0x08 Текущий IRQL Тип пула Размер выделяемой памяти в байтах Код текущего потока попытался выделить память в пуле при некорректном уровне IRQL
0x09 Текущий IRQL Тип пула Адрес пула Код текущего потока попытался освободить память в пуле при некорректном уровне IRQL
0x0A Адрес пула Тег “аллокатора” Тег используемый в попытке освобождения памяти Код текущего потока попытался освободить память пула используя неправильный тег. (Память относится к другому компоненту)
0x0B,
0x0C,
0x0D
Адрес пула Тег “аллокатора” Указатель на некорректное значение квоты процесса Код текущего потока попытался освободить квоту на некорректно выделенному пуле
0x40 Стартовый адрес Стартовый адрес системного пространства 0 Код текущего потока попытался освободить память пула ядра по адресу в пользовательскому режиме
0x41 Стартовый адрес Фрейм физической страницы Самый старший фрейм физической страницы Код текущего потока выполнил попытку освободить не выделенную память невыгружаемого пула ядра
0x42,
0x43
Освобождаемый адрес 0 0 Текущий поток попытался освободить виртуальный адрес, который никогда не принадлежал ни одному из пулов
0x44 Стартовый адрес Зарезервировано 0 Код текущего потока попытался выполнить освобождение невыделенной памяти невыгружаемого пула
0x46 Стартовый адрес 0 0 Код текущего потока попытался освободить память пула по неправильному адресу
0x47 Стартовый адрес Фрейм физической страницы Самый старший фрейм физической страницы Код текущего потока выполнил попытку освободить не выделенную память невыгружаемого пула ядра
0x48 Стартовый адрес Зарезервировано Зарезервировано Код текущего потока выполнил попытку освободить не выделенную память выгружаемого пула ядра
0x50 Стартовый адрес Начало смещения в страницах с начального адреса выгружаемого пула Размер выгружаемого пула в байтах Текущий поток попытался освободить не выделенную память из выгружаемого пула ядра
0x60 Стартовый адрес 0 0 Текущий поток попытался освободить память по неправильному адресу (произошел вызов MmFreeContiguousMemory с неправильным указателем)
0x99 Освобождаемый адрес 0 0 Текущий поток попытался освободить память по пула по неправильному адресу (также причиной может быть повреждения заголовка пула)
0x9A Тип пула Количество запрошенных байтов Тег пула Этот пул не поддерживается
0x9B Тип пула Количество запрошенных байтов Адрес кода, который выполнил вызов функции Текущий поток попытался выделить память в пуле с тегом 0
0x9C Тип пула Количество запрошенных байтов Адрес кода, который выполнил вызов функции Текущий поток попытался выделить память в пуле с тегом “BAG”
0x9D Неправильный тег пула Тип пула Адрес кода, который выполнил вызов функции Текущий поток попытался выделить память с тегом, который не содержит цифры или символы
0x41286 Зарезервировано Зарезервировано Начало смещения начиная с начала выгружаемого пула в страницах Текущий поток попытался освободить память в выгружаемом пуле по середине выделения

Коды _POOL_TYPE перечислены в Ntddk.h

Устранение

Необходимо воспользоваться утилитой Driver Verifier.