0xC2 проверки ошибок: BAD_POOL_CALLER
Проверка ошибок BAD_POOL_CALLER имеет значение 0x000000C2. Это означает, что текущий поток выполняет неправильный запрос пула.
Важно!
Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки "синий экран" во время работы с компьютером, см. статью Устранение ошибок синего экрана.
Параметры BAD_POOL_CALLER
Параметр 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 |
Тип пула |
Число запрошенных байтов |
Тег пула |
Текущий поток помечает запрос на выделение MUST_SUCCEED. (Этот тип пула больше не поддерживается.) |
0x9B |
Тип пула |
Число запрошенных байтов |
Адрес вызывающего абонента |
Текущий поток попытался выделить пул с тегом 0 (Это не поддается отслеживанию и, возможно, повреждает существующие таблицы тегов.) |
0x9C |
Тип пула |
Число запрошенных байтов |
Адрес вызывающего абонента |
Текущий поток попытался выделить пул с тегом BIG. (Это не поддается отслеживанию и может привести к повреждению существующих таблиц тегов.) |
0x9D |
Использован неправильный тег пула |
Тип пула |
Адрес вызывающего абонента |
Текущий поток попытался выделить пул с тегом, который не содержит букв или цифр. Использование таких тегов усложняет отслеживание проблем с пулом. |
0x41286 |
Зарезервировано |
Зарезервировано |
Начальное смещение от начала пула страниц в страницах |
Текущий поток попытался освободить адрес страничного пула в середине выделения. |
Коды _POOL_TYPE перечисляются в ntddk.h. В частности, 0 означает невыгружаемый пул, а 1 — пул с разбивкой на страницы.
Причина
Текущий поток сделал недопустимый запрос пула. Обычно это происходит на плохом уровне IRQL или двойном освобождении одного и того же выделения памяти и т. д.
Решение
Активируйте средство проверки драйверов с включенными параметрами пула памяти, чтобы получить дополнительные сведения об этих ошибках и найти неисправный драйвер.
Средство проверки драйверов
Средство проверки драйверов — это средство, которое выполняется в режиме реального времени для проверки поведения драйверов. Если при выполнении кода драйвера отображаются ошибки, он заранее создает исключение, чтобы обеспечить дальнейшее изучение этой части кода драйвера. Диспетчер проверки драйверов встроен в Windows и доступен на всех компьютерах с Windows. Чтобы запустить диспетчер средства проверки драйверов, введите Verifier в командной строке. Вы можете настроить драйверы, которые вы хотите проверить. Код, который проверяет драйверы, добавляет дополнительные затраты при выполнении, поэтому попробуйте проверить минимальное количество драйверов. Дополнительные сведения см. в разделе Средство проверки драйверов.
Диагностика памяти Windows
В частности, в ситуациях с повреждением пула памяти запустите средство диагностики памяти Windows, чтобы попытаться изолировать физическую память в качестве причины. В поле поиска панели управления введите Память, а затем выберите Диагностика проблем с памятью компьютера. После запуска теста используйте средство просмотра событий, чтобы просмотреть результаты в системном журнале. Найдите запись MemoryDiagnostics-Results , чтобы просмотреть результаты.