0x000000C2: 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 Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP 64-Bit Edition
  • Причина:

    Процесс ядра или драйвер попытались неверно произвести операцию с памятью. Обычно причиной являются неисправные драйвера или софт.

     

    Решение:

    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 ntkrnlmp!ExFreePoolWithTag
    bde81b88 be03bb2b 815bade8 be03ca94 815bade8 ntkrnlmp!ExFreePool
    00000128 00000000 00000000 00000000 00000000 BADDRIVER

    Предыдущий текст указывает, что память была освобождена драйвером имя_драйвера. Это может быть корневой причиной.
    Теперь выявим драйвер.
    1: kd> !drivers
    Loaded System Driver Summary


    Base Code Size Data Size Driver Name Creation Time
    80400000 139f40 (1255 kb) 4f3c0 (316 kb) ntoskrnl.exe Tue Dec 07 14:05:26 1999
    80062000 ffe0 ( 63 kb) 3d60 ( 15 kb) hal.dll Tue Nov 02 20:14:22 1999
    ed410000 1760 ( 5 kb) 1000 ( 4 kb) BOOTVID.dll Wed Nov 03 20:24:33 1999
    ed49c000 1b00 ( 6 kb) 680 ( 1 kb) gameenum.sys Sat Sep 25 14:35:57 1999
    ed080000 a000 ( 40 kb) 20c0 ( 8 kb) VIDEOPRT.SYS Sat Nov 06 16:55:20 1999
    bfdcf000 1d480 ( 117 kb) 7520 ( 29 kb) mga64m.sys Mon Nov 29 20:47:46 1999
    bfdbc000 11600 ( 69 kb) 1600 ( 5 kb) el90xnd5.sys Fri Oct 29 17:54:34 1999
    ed090000 3a60 ( 14 kb) 5980 ( 22 kb) banshee.sys Fri Oct 29 19:00:56 1999
    ed5df000 2e0 ( 0 kb) 4a0 ( 1 kb) audstub.sys Sat Sep 25 14:35:33 1999
    ed370000 33e0 ( 12 kb) a40 ( 2 kb) raspti.sys Fri Oct 08 16:45:10 1999
    ed0c0000 c5e0 ( 49 kb) 20e0 ( 8 kb) parallel.sys Fri Oct 22 18:00:54 1999
    ed5e0000 580 ( 1 kb) 540 ( 1 kb) swenum.sys Sat Sep 25 14:36:31 1999
    be552000 72a60 ( 458 kb) 13c40 ( 79 kb) mga64d.dll Tue Nov 30 04:33:19 1999
    be113000 36f00 ( 219 kb) 7a20 ( 30 kb) banshee.dll Tue Nov 30 04:31:18 1999
    be031000 FFFF ( FF kb) FFFF ( F kb) BADDRIVER.sys Mon Feb 30 23:22:43 2000


    TOTAL: 7f8dc0 (8163 kb) 172140 (1480 kb) ( 0 kb 0 kb)
    Предыдущий текст показывает, что драйвер используется ПО третьей стороны. Этот драйвер, скорей всего, и есть главная причина ошибки.


    Microsoft Debugging Tools
    http://www.microsoft.com/ddk/debugging/default.asp



    Hosted by uCoz