Ошибка bad pool caller
Автор KoT9p koT9poBu4 задал вопрос в разделе Другие языки и технологии
ошибка синего экрана "сметри" BAD_POOL_CALLER и получил лучший ответ
Ответ от Daulet Abdulin[гуру]
STOP 0x000000C5 DRIVER_CORRUPTED_EXPOOL
Процесс ядра или драйвер попытались неверно произвести операцию с памятью. Обычно причиной являются неисправные драйвера или софт.
Windows 2000 XP
Применяется к следующим системам:
Microsoft Windows 2000 Server
Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Datacenter Server
Microsoft Windows 2000 Professional
Microsoft Windows XP 64-Bit Edition
Microsoft Windows XP Home Edition
Microsoft Windows XP Professional
Решение:
Windows 2000 содержит много различных встроенных фич, которые усиливают процесс распределение памяти (pool allocation process). Эти фичи могут помочь вам установить корневую причину ошибки простым дебагом (debugging).
Следуйте следующим шагам:
BAD_POOL_CALLER (0xC2)
Текущая нить неправильно обращается к памяти. Обычно, это из-за неверного уровня IRQL или двойного освобождения одного и того же места памяти, и т.д.
1 - тип нарушения обращения к бассеину.
6 - адрес освобождаемого бассеина, который уже был освобождён.
7 - адрес освобождаемого бассеина, который уже был освобождён.
8 - переметр 2 - это IRQL расположения, параметр 3 - тип
9 - переметр 2 - это IRQL высвобождения, параметр 3 - тип
Parameter 1 = 0x1, 0x2, or 0x4 : заголовок басейна повреждён
Parameter 2 = указатель на заголовок
Parameter 3 = первая чать содержания заголовка
Parameter 4 = 0
Parameter 1 = 0x6 : попытка освободить пямять, которая уже свободна
Parameter 2 = резерв (__LINE__)
Parameter 3 = указатель на заголовок
Parameter 4 = содержание заголовока
Parameter 1 = 0x7 : попытка освободить пямять, которая уже свободна
Parameter 2 = резерв (__LINE__)
Parameter 3 = указатель на заголовок
Parameter 4 = 0
Parameter 1 = 0x8 : попытка освободить пямять используя неверный IRQL
Parameter 2 = текущий IRQL
Parameter 3 = тип басейна памяти
Parameter 4 = его размер
Parameter 1 = 0x9 : попытка освободить пямять используя неверный IRQL
Parameter 2 = текущий IRQL
Parameter 3 = тип басейна памяти
Parameter 4 = его адрес
Parameter 1 = 0x40 : попытка освободить пользовательский адрес для ядра
Parameter 2 = адрес начала
Parameter 3 = начало системного места
Parameter 4 = 0
Parameter 1 = 0x41 : попытка освободить неиспользуемый адрес
Parameter 2 = адрес начала
Parameter 3 = рамка физической страницы
Parameter 4 = наибольшая рамка
Parameter 1 = 0x50 : попытка освободить неиспользуемый адрес
Parameter 2 = адрес начала
Parameter 3 = Start offset in pages from beginning of paged pool
Parameter 4 = размер в байтах
Parameter 1 = 0x99 : попытка освободить неверный адрес памяти (или повреждение заголовка)
Parameter 2 = освобождаемый адрес
Parameter 3 = 0
Parameter 4 = 0
После того, как вы выяснили детальную информацию по ошибке, воспользуйтесь дебагером.
E:bin>i386kd -z K:DOWNLOADmemory.dmp
Loading Dump File [K:DOWNLOADmemory.dmp]
Full Kernel Dump File...
0: kd> !reload GOOD HOUSEKEEPING DONE HERE
0: kd> dd kibugcheckdata l8 DUMPING THE ERROR
8047fba0 000000c2 00000007 00000b68 815bade0
8047fbb0 815bade8 e1007000 00000000 818988c0
0: kd> kv DUMPING STACK
ChildEBP RetAddr Args to Child
bdce0348 be11dc84 e1fff000 a08d0008 000007f8 banshee!vH3ImageTransferMm32
bdce037c be116f18 be85fd78 00000001 bdce03dc banshee!vMmXferNative
bdce03ac be113eec e1fff000 e25e2a38 bdce03dc banshee!vPutBits
bdce03e8 a008e47f e1ff86f8 e25e2a38 e1fef908 banshee!DrvCopyBits
bdce0430 a008e899 be113d40 bdce04d8 e1ff86f8 win32k!OffCopyBits
bdce04e4 a008e4d1 e1ff86f8 e25e2a38 00000000 win32k!SpBitBlt
Документация ошибки указывает, что память была освобождена. Это явно из линии:
Parameter 1 = 0x7: Attempt to free pool which was already freed.
Так же видно, что видео карта в процессе записи, поэтому мы должны продолжать работу над ошибкой. Во-первых, мы должны выявить, если этот компьютер мультипроцессорный:
0: kd> ~1 SWITCH PROC
1: kd> kv DUMPING STACK
ChildEBP RetAddr Args to Child
bde81b7c 8046894d 815bade8 00000000 be03bb2b nt
Источник: Microsoft Debugging Tools
BAD_POOL_CALLER (0xC2) Неправильное обращение к памяти. Обычно, это из-за неверного уровня IRQL или двойного освобождения одного и того же места памяти, и т. д.
Не качайте файл с windowsfix.ru. Он с вирусом.
помогите с переводом песни All Saints - Never Ever .
Несколько вопросов, которые я должен знать
Как Вы могли когда-либо причинять мне боль так
подробнее...
Синий Экран STOP 0x000000c2(0x00000007...) BAD_POOL-CALLER не дает установить Windows.
STOP 0x000000C5 DRIVER_CORRUPTED_EXPOOL
Процесс ядра или драйвер попытались неверно произвести
подробнее...