WP-bit

Тема в разделе "WASM.WIN32", создана пользователем Maveric, 3 сен 2007.

  1. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Great - голова.
    и как это можно прокомментировать ?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Maveric
    либо ошибка в заполнении ирп, либо повреждение занимаемой им памяти, либо ошибки в передаче между средними драйверами, либо ошибочная передача ирп от нижнего драйвера ниже по стеку, когда уже некуда передавать
     
  3. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    !irp
    Код (Text):
    1. 0: kd> !irp 0x818c64b8
    2. Irp is active with 0 stacks 0 is current (= 0x818c6528)
    3.  No Mdl: System buffer=81905df0: Thread 821c6b30:  Irp stack trace.  
    4.      cmd  flg cl Device   File     Completion-Context
    dt nt!_irp r 0x818c64b8
    Код (Text):
    1. 0: kd> dt nt!_IRP -r 0x818c64b8
    2.    +0x000 Type             : 6
    3.    +0x002 Size             : 0x190
    4.    +0x004 MdlAddress       : (null)
    5.    +0x008 Flags            : 0x70
    6.    +0x00c AssociatedIrp    : __unnamed
    7.       +0x000 MasterIrp        : 0x81905df0 _IRP
    8.          +0x000 Type             : 512
    9.          +0x002 Size             : 0
    10.          +0x004 MdlAddress       : 0x00010100 _MDL
    11.          +0x008 Flags            : 0xeca000
    12.          +0x00c AssociatedIrp    : __unnamed
    13.          +0x010 ThreadListEntry  : _LIST_ENTRY [ 0x0 - 0x0 ]
    14.          +0x018 IoStatus         : _IO_STATUS_BLOCK
    15.          +0x020 RequestorMode    : 117 'u'
    16.          +0x021 PendingReturned  : 0xb ''
    17.          +0x022 StackCount       : 0 ''
    18.          +0x023 CurrentLocation  : 0 ''
    19.          +0x024 Cancel           : 0x9 ''
    20.          +0x025 CancelIrql       : 0 ''
    21.          +0x026 ApcEnvironment   : 0 ''
    22.          +0x027 AllocationFlags  : 0x6 ''
    23.          +0x028 UserIosb         : 0x821e2e10 _IO_STATUS_BLOCK
    24.          +0x02c UserEvent        : 0x821e2e10 _KEVENT
    25.          +0x030 Overlay          : __unnamed
    26.          +0x038 CancelRoutine    : 0x81905e60           void  +ffffffff81905e60
    27.          +0x03c UserBuffer       : 0x00010000
    28.          +0x040 Tail             : __unnamed
    29.       +0x000 IrpCount         : -2121245200
    30.       +0x000 SystemBuffer     : 0x81905df0
    31.    +0x010 ThreadListEntry  : _LIST_ENTRY [ 0x821c6d40 - 0x821c6d40 ]
    32.       +0x000 Flink            : 0x821c6d40 _LIST_ENTRY [ 0x818c64c8 - 0x818c64c8 ]
    33.          +0x000 Flink            : 0x818c64c8 _LIST_ENTRY [ 0x821c6d40 - 0x821c6d40 ]
    34.          +0x004 Blink            : 0x818c64c8 _LIST_ENTRY [ 0x821c6d40 - 0x821c6d40 ]
    35.       +0x004 Blink            : 0x821c6d40 _LIST_ENTRY [ 0x818c64c8 - 0x818c64c8 ]
    36.          +0x000 Flink            : 0x818c64c8 _LIST_ENTRY [ 0x821c6d40 - 0x821c6d40 ]
    37.          +0x004 Blink            : 0x818c64c8 _LIST_ENTRY [ 0x821c6d40 - 0x821c6d40 ]
    38.    +0x018 IoStatus         : _IO_STATUS_BLOCK
    39.       +0x000 Status           : 0
    40.       +0x000 Pointer          : (null)
    41.       +0x004 Information      : 0
    42.    +0x020 RequestorMode    : 0 ''
    43.    +0x021 PendingReturned  : 0 ''
    44.    +0x022 StackCount       : 0 ''
    45.    +0x023 CurrentLocation  : 0 ''
    46.    +0x024 Cancel           : 0 ''
    47.    +0x025 CancelIrql       : 0 ''
    48.    +0x026 ApcEnvironment   : 0 ''
    49.    +0x027 AllocationFlags  : 0x4 ''
    50.    +0x028 UserIosb         : 0xf88c7808 _IO_STATUS_BLOCK
    51.       +0x000 Status           : 0
    52.       +0x000 Pointer          : (null)
    53.       +0x004 Information      : 0x18
    54.    +0x02c UserEvent        : 0xf88c77f8 _KEVENT
    55.       +0x000 Header           : _DISPATCHER_HEADER
    56.          +0x000 Type             : 0 ''
    57.          +0x001 Absolute         : 0xb5 ''
    58.          +0x002 Size             : 0x4 ''
    59.          +0x003 Inserted         : 0xe1 ''
    60.          +0x004 SignalState      : 0
    61.          +0x008 WaitListHead     : _LIST_ENTRY [ 0xf88c7800 - 0xf88c7800 ]
    62.    +0x030 Overlay          : __unnamed
    63.       +0x000 AsynchronousParameters : __unnamed
    64.          +0x000 UserApcRoutine   : (null)
    65.          +0x004 UserApcContext   : (null)
    66.       +0x000 AllocationSize   : _LARGE_INTEGER 0x0
    67.          +0x000 LowPart          : 0
    68.          +0x004 HighPart         : 0
    69.          +0x000 u                : __unnamed
    70.          +0x000 QuadPart         : 0
    71.    +0x038 CancelRoutine    : (null)
    72.    +0x03c UserBuffer       : 0xf88c757c
    73.    +0x040 Tail             : __unnamed
    74.       +0x000 Overlay          : __unnamed
    75.          +0x000 DeviceQueueEntry : _KDEVICE_QUEUE_ENTRY
    76.          +0x000 DriverContext    : [4] (null)
    77.          +0x010 Thread           : 0x821c6b30 _ETHREAD
    78.          +0x014 AuxiliaryBuffer  : 0x00000020  ""
    79.          +0x018 ListEntry        : _LIST_ENTRY [ 0x7c088 - 0x0 ]
    80.          +0x020 CurrentStackLocation : 0x818c6528 _IO_STACK_LOCATION
    81.          +0x020 PacketType       : 0x818c6528
    82.          +0x024 OriginalFileObject : 0x817f5548 _FILE_OBJECT
    83.       +0x000 Apc              : _KAPC
    84.          +0x000 Type             : 0
    85.          +0x002 Size             : 0
    86.          +0x004 Spare0           : 0
    87.          +0x008 Thread           : (null)
    88.          +0x00c ApcListEntry     : _LIST_ENTRY [ 0xe - 0x821c6b30 ]
    89.          +0x014 KernelRoutine    : 0x00000020           void  +20
    90.          +0x018 RundownRoutine   : 0x0007c088           void  +7c088
    91.          +0x01c NormalRoutine    : (null)
    92.          +0x020 NormalContext    : 0x818c6528
    93.          +0x024 SystemArgument1  : 0x817f5548
    94.          +0x028 SystemArgument2  : (null)
    95.          +0x02c ApcStateIndex    : 0 ''
    96.          +0x02d ApcMode          : 0 ''
    97.          +0x02e Inserted         : 0 ''
    98.       +0x000 CompletionKey    : (null)
     
  4. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    скорее всего повреждение памяти...
    не может же он время от времени криво заполняться...
     
  5. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Ещё такой момент выяснился. Если багчек происходит при загрузке системы, то это либо 0x7e, 0x7f, 0x8e и крэшдамп не создаётся.
    Если система загрузилась(высокая вероятность) и в диспетчере устройств отключать/включать усстройство ,то иногда возникает багчек NO_MORE_IRP_STACK_LOCATIONS и создаётся дамп.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    еще неплохо было бы dt nt!_IO_STACK_LOCATION 0x818c6528
     
  7. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Great убрал всё между IoBuildDeviceIoControlRequest и IoCallDriver. Написал скрипт который включает/выключает устройство. Работает несколько часов полёт нормальный...
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ну.. я не шибко разбираюсь в заполнении irp пакета, но раз ты убрал и работает, значит ты заполнял неправильно )
    может быть в pNextStack = IoGetNextIrpStackLocation(pIRP) получался какойто левый адрес