| Предыдущий | Следующий |
| SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION | SYSTEM_IMAGE_BAD_SIGNATURE |
BAD_POOL_CALLER
bug check BAD_POOL_CALLER имеет значение 0x000000C2. Текущий поток выполняет недопустимый запрос к pool.
Параметры BAD_POOL_CALLER
Параметр 1 задаёт тип нарушения.
| Параметр 1 | Параметр 2 | Параметр 3 | Параметр 4 | Причина ошибки |
|---|---|---|---|---|
0x00 |
0 |
Тип pool |
Тег pool |
Текущий поток запросил выделение pool нулевого размера. |
0x01, 0x02, 0x04 |
Указатель на заголовок pool |
Первая часть содержимого заголовка pool |
0 |
Заголовок pool повреждён. |
0x06 |
Зарезервировано |
Указатель на заголовок pool |
Содержимое заголовка pool |
Текущий поток попытался освободить уже освобождённый pool. |
0x07 |
Зарезервировано |
Содержимое заголовка pool |
Адрес освобождаемого блока pool |
|
0x08 |
Текущий IRQL |
Тип pool |
Размер выделения в байтах |
Текущий поток попытался выделить pool при недопустимом IRQL. |
0x09 |
Текущий IRQL |
Тип pool |
Адрес pool |
Текущий поток попытался освободить pool при недопустимом IRQL. |
0x0A |
Адрес pool |
Тег выделившего компонента |
Тег, использованный при попытке освобождения |
Текущий поток попытался освободить pool memory с неправильным тегом. Память может принадлежать другому компоненту. |
0x0B, 0x0C, or 0x0D |
Адрес pool |
Тег выделения pool |
Недопустимый указатель quota process |
Текущий поток попытался освободить quota повреждённого выделения pool. |
0x40 |
Начальный адрес |
Начало системного адресного пространства |
0 |
Текущий поток попытался освободить kernel pool по адресу user mode. |
0x41 |
Начальный адрес |
Номер физической страницы |
Наибольший номер физической страницы |
Текущий поток попытался освободить невыделенный адрес невыгружаемый пул. |
0x42 или 0x43 |
Освобождаемый адрес |
0 |
0 |
Текущий поток попытался освободить виртуальный адрес, никогда не принадлежавший pool. |
0x44 |
Начальный адрес |
Зарезервировано |
0 |
|
0x46 |
Начальный адрес |
0 |
0 |
Текущий поток попытался освободить недопустимый адрес pool. |
0x47 |
Начальный адрес |
Номер физической страницы |
Наибольший номер физической страницы |
|
0x48 |
Начальный адрес |
Зарезервировано |
Зарезервировано |
Текущий поток попытался освободить невыделенный адрес paged pool. |
0x50 |
Начальный адрес |
Начальное смещение в страницах от начала paged pool |
Размер paged pool в байтах |
|
0x60 |
Начальный адрес |
0 |
0 |
Текущий поток попытался освободить недопустимый адрес contiguous memory. Вызывающая сторона функции MmFreeContiguousMemory передала недопустимый указатель. |
0x99 |
Освобождаемый адрес |
0 |
0 |
Текущий поток попытался освободить pool по недопустимому адресу. Код также может означать повреждение заголовка pool. |
0x9A |
Тип pool |
Запрошенное число байтов |
Тег pool |
Текущий поток пометил запрос выделения как MUST_SUCCEED. Этот тип pool больше не поддерживается. |
0x9B |
Тип pool |
Запрошенное число байтов |
Адрес вызывающей стороны |
Текущий поток попытался выделить pool с тегом 0 Такое выделение нельзя отслеживать, и оно может повредить существующие таблицы тегов. |
0x9C |
Тип pool |
Запрошенное число байтов |
Адрес вызывающей стороны |
Текущий поток попытался выделить pool с тегом "BIG". Такое выделение нельзя отслеживать, и оно способно повредить таблицы тегов. |
0x9D |
Использован неправильный тег pool |
Тип pool |
Адрес вызывающей стороны |
Текущий поток попытался выделить pool с тегом без букв и цифр. Такие теги затрудняют отслеживание проблем pool. |
0x41286 |
Зарезервировано |
Зарезервировано |
Смещение от начала paged pool в страницах |
Текущий поток попытался освободить адрес paged pool в середине выделенного блока. |
Коды _POOL_TYPE перечислены в Ntddk.h: 0 означает невыгружаемый пул, а 1 — paged pool.
Причина
Текущий поток выполнил недопустимый запрос pool, обычно при неправильном IRQL или повторном освобождении одного выделения.
Устранение неполадок
Включите Driver Verifier с опциями memory pool, чтобы получить дополнительные данные и найти отказавший driver.
Driver Verifier
Driver Verifier проверяет поведение drivers в реальном времени и создаёт исключение при обнаружении ошибки выполнения. Менеджер встроен в Windows и запускается командой Verifier. Выберите минимально необходимый набор подозреваемых drivers, поскольку проверка создаёт дополнительную нагрузку.
Диагностика памяти Windows
При повреждении memory pool запустите Windows Memory Diagnostics, чтобы исключить физическую память. После теста проверьте в Event Viewer журнал System и запись MemoryDiagnostics-Results.
Официальные ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
