(PNP_DETECTED_FATAL_ERROR, PNP_ERR_DUPLICATE_PDO)

Тема в разделе "WASM.NT.KERNEL", создана пользователем genesis, 14 авг 2007.

  1. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    Всем привет.
    Копирую с системы диск в образ (например physicaldrive0), после чего через PnpManager монтирую образ в ту же систему.
    Получаю указанный bugcheck при добавление копии volume, оригинал которого уже есть в системе.

    Есть какие то идеи?

    *** Fatal System Error: 0x000000ca
    (0x00000001,0x811F4708,0x811A3100,0x00000000)

    Break instruction exception - code 80000003 (first chance)

    A fatal system error has occurred.
    Debugger entered on first try; Bugcheck callbacks have not been invoked.

    A fatal system error has occurred.

    Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
    Loading Kernel Symbols
    .............................................................................................................
    Loading User Symbols

    Loading unloaded module list
    ....................
    *******************************************************************************
    * *
    * Bugcheck Analysis *
    * *
    *******************************************************************************

    Use !analyze -v to get detailed debugging information.

    BugCheck CA, {1, 811f4708, 811a3100, 0}

    60
    Probably caused by : ftdisk.sys

    Followup: MachineOwner
    ---------

    nt!RtlpBreakWithStatusInstruction:
    0008:804e3b25 cc int 3

    kd> !analyze -v
    *******************************************************************************
    * *
    * Bugcheck Analysis *
    * *
    *******************************************************************************

    PNP_DETECTED_FATAL_ERROR (ca)
    PnP encountered a severe error, either as a result of a problem in a driver or
    a problem in PnP itself. The first argument describes the nature of the
    problem, the second argument is the address of the PDO. The other arguments
    vary depending on argument 1.
    Arguments:
    Arg1: 00000001, Duplicate PDO
    A specific instance of a driver has enumerated multiple PDOs with
    identical device id and unique ids.
    Arg2: 811f4708, Newly reported PDO.
    Arg3: 811a3100, PDO of which it is a duplicate.
    Arg4: 00000000

    Debugging Details:
    ------------------

    OVERLAPPED_MODULE: Address regions for 'p2eemnt' and 'kmixer.sys' overlap

    BUGCHECK_STR: 0xCA_1

    DEVICE_OBJECT: 811f4708

    DRIVER_OBJECT: 81257998

    IMAGE_NAME: ftdisk.sys

    DEBUG_FLR_IMAGE_TIMESTAMP: 3b7d8419

    MODULE_NAME: ftdisk

    FAULTING_MODULE: baf81000 ftdisk

    DEFAULT_BUCKET_ID: INTEL_CPU_MICROCODE_ZERO

    PROCESS_NAME: System

    LOCK_ADDRESS: 80558be0 -- (!locks 80558be0)

    Resource @ nt!IopDeviceTreeLock (0x80558be0) Shared 1 owning threads
    Threads: 8128c640-01<*>
    1 total locks, 1 locks currently held

    PNP_TRIAGE:
    Lock address : 0x80558be0
    Thread Count : 1
    Thread address: 0x8128c640
    Thread wait : 0x1341ec

    LAST_CONTROL_TRANSFER: from 805328e7 to 804e3b25

    STACK_TEXT:
    fc90a57c 805328e7 00000003 fc90a8d8 00000000 nt!RtlpBreakWithStatusInstruction
    fc90a5c8 805333be 00000003 811a3100 00000118 nt!KiBugCheckDebugBreak+0x19
    fc90a9a8 805339ae 000000ca 00000001 811f4708 nt!KeBugCheck2+0x574
    fc90a9c8 805ebaa7 000000ca 00000001 811f4708 nt!KeBugCheckEx+0x1b
    fc90aac4 805b7d58 811a5220 ffbc7818 811729c8 nt!PipProcessNewDeviceNode+0x5d1
    fc90ad18 805aba64 811729c8 00000001 00000000 nt!PipProcessDevNodeTree+0x16b
    fc90ad4c 8050cff5 00000003 80558c40 80561b7c nt!PiProcessReenumeration+0x60
    fc90ad74 804e47fe 00000000 00000000 8128c640 nt!PipDeviceActionWorker+0x166
    fc90adac 8057dfed 00000000 00000000 00000000 nt!ExpWorkerThread+0x100
    fc90addc 804fa477 804e4729 00000001 00000000 nt!PspSystemThreadStartup+0x34
    00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

    STACK_COMMAND: kb

    FOLLOWUP_NAME: MachineOwner

    FAILURE_BUCKET_ID: 0xCA_1_VRF_IMAGE_ftdisk.sys_DATE_2001_08_17

    BUCKET_ID: 0xCA_1_VRF_IMAGE_ftdisk.sys_DATE_2001_08_17

    Followup: MachineOwner
    ---------
     
  2. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    Как показало следствие -

    nt!PipProcessNewDeviceNode для раздела вызывает nt!PpQueryID, которое возвращает следующую строку -
    kd> du e14bac68
    e14bac68 "Signature897F2070Offset7E00Lengt"
    e14baca8 "h2F08E00"

    (где Offset и Length смещение и размер раздела, а Signature(897F2070) - некое мистическое число, которое я нашел в образе, в структуре MBR, строго над талицей разделов (смещение - 0x1b8). Вопрос, что это такое?)

    Именно эту строку ниже сравнивают, и если она совпадает с каким то существующим разделом - вызывают KebugCheckEx(PNP_DETECTED_FATAL_ERROR, PNP_ERR_DUPLICATE_PDO).

    Я заменил Signature(897F2070) на Signature(997F2070) - образ примантился. (Во всяком случае, в DiskManagement он отображается, и Far его видит). Explorer не видет, наверное и за совпадения серийников волумов. Вот.

    Насчет Signature - что это все таки такое, гугл молчит, говорит что перед таблицей разделов никакого поля нет?