Драйвер-фильтр (IRP_MJ_WRITE)

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

  1. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    оп-па... указывает на win32k.sys весело =))
    покажи вывод !analyze -v, без него сказать чето трудно. больше всего интересует стек вызовов и параметры с описанием багчека
     
  2. visualr

    visualr New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2005
    Сообщения:
    33
    Windows XP with Service Pack 2 x86 retail symbols, all languages

    Windows XP with Service Pack 2 x86 checked symbols, all languages

    какой Symbol Package нужен мне?

    вот только качать мне их ~5 часов =(
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ээээ, не надо ничего качать.
    поставь в WinDbg, чтобы скачивались символы онлайн по мере надобности.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    создай каталог, допустим, C:\symbols.
    грузи в WinDbg крешдамп и пропиши в WinDbg:
    srv*c:\symbols*http://mdsl.microsoft.com/downloads/symbols
    потом набери .reload и анализируй крешдамп через !analyze -v
     
  5. visualr

    visualr New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2005
    Сообщения:
    33
    Код (Text):
    1. kd> !analyze -v
    2. *******************************************************************************
    3. *                                                                             *
    4. *                        Bugcheck Analysis                                    *
    5. *                                                                             *
    6. *******************************************************************************
    7.  
    8. CRITICAL_OBJECT_TERMINATION (f4)
    9. A process or thread crucial to system operation has unexpectedly exited or been
    10. terminated.
    11. Several processes and threads are necessary for the operation of the
    12. system; when they are terminated (for any reason), the system can no
    13. longer function.
    14. Arguments:
    15. Arg1: 00000003, Process
    16. Arg2: 83f1c128, Terminating object
    17. Arg3: 83f1c29c, Process image file name
    18. Arg4: 805c749a, Explanatory message (ascii)
    19.  
    20. Debugging Details:
    21. ------------------
    22.  
    23.  
    24. PROCESS_OBJECT:  83f1c128
    25.  
    26. IMAGE_NAME:  csrss.exe
    27.  
    28. DEBUG_FLR_IMAGE_TIMESTAMP:  0
    29.  
    30. MODULE_NAME:  csrss
    31.  
    32. FAULTING_MODULE: 4a680000 csrss
    33.  
    34. EXCEPTION_RECORD:  f7815d10 -- (.exr fffffffff7815d10)
    35. ExceptionAddress: 75b5f9e5 (winsrv!_ValidateEH3RN)
    36.    ExceptionCode: c0000006 (In-page I/O error)
    37.   ExceptionFlags: 00000000
    38. NumberParameters: 3
    39.    Parameter[0]: 00000008
    40.    Parameter[1]: 75b5f9e5
    41.    Parameter[2]: c0000001
    42. Inpage operation failed at 75b5f9e5, due to I/O error c0000001
    43.  
    44. EXCEPTION_CODE: (NTSTATUS) 0xc0000001 - {
    45.  
    46. DEFAULT_BUCKET_ID:  DRIVER_FAULT
    47.  
    48. PROCESS_NAME:  csrss.exe
    49.  
    50. ERROR_CODE: (NTSTATUS) 0xc0000006 - <Unable to get error code text>
    51.  
    52. IO_ERROR: (NTSTATUS) 0xc0000001 - {
    53.  
    54. EXCEPTION_STR:  0xc0000006_c0000001
    55.  
    56. BUGCHECK_STR:  0xF4_IOERR_C0000001
    57.  
    58. STACK_TEXT:  
    59. f7815864 805c65cb 000000f4 00000003 83f1c128 nt!KeBugCheckEx+0x1b
    60. f7815888 805c7545 805c749a 83f1c128 83f1c29c nt!PspCatchCriticalBreak+0x75
    61. f78158b8 8053c808 83f1c370 c0000006 f7815cf4 nt!NtTerminateProcess+0x7d
    62. f78158b8 804fe699 83f1c370 c0000006 f7815cf4 nt!KiFastCallEntry+0xf8
    63. f7815938 804fc962 ffffffff c0000006 c0000001 nt!ZwTerminateProcess+0x11
    64. f7815cf4 8053d251 f7815d10 00000000 f7815d64 nt!KiDispatchException+0x3a0
    65. f7815d5c 8053f7f9 004f1134 75b5f9e5 badb0d00 nt!CommonDispatchException+0x4d
    66. f7815d5c 75b5f9e5 004f1134 75b5f9e5 badb0d00 nt!KiTrap0E+0x1d9
    67. 004f1110 75b3d68c 0052fe8c 004f1134 00000000 winsrv!_ValidateEH3RN
    68. 004f1134 7c9037bf 004f1220 0052fe8c 004f1240 winsrv!_except_handler3+0x39
    69. 004f1158 7c90378b 004f1220 0052fe8c 004f1240 ntdll!ExecuteHandler2+0x26
    70. 004f1208 7c90eafa 0052fe8c 004f1240 004f1220 ntdll!ExecuteHandler+0x24
    71. 004f1208 75b5f9e5 0052fe8c 004f1240 004f1220 ntdll!KiUserExceptionDispatcher+0xe
    72. 004f1508 75b3d68c 0052fe8c 004f152c 00000000 winsrv!_ValidateEH3RN
    73. 004f152c 7c9037bf 004f1618 0052fe8c 004f1638 winsrv!_except_handler3+0x39
    74. 004f1550 7c90378b 004f1618 0052fe8c 004f1638 ntdll!ExecuteHandler2+0x26
    75. 004f1600 7c90eafa 0052fe8c 004f1638 004f1618 ntdll!ExecuteHandler+0x24
    76. 004f1600 75b5f9e5 0052fe8c 004f1638 004f1618 ntdll!KiUserExceptionDispatcher+0xe
    77. 004f1900 75b3d68c 0052fe8c 004f1924 00000000 winsrv!_ValidateEH3RN
    78. 004f1924 7c9037bf 004f1a10 0052fe8c 004f1a30 winsrv!_except_handler3+0x39
    79. 004f1948 7c90378b 004f1a10 0052fe8c 004f1a30 ntdll!ExecuteHandler2+0x26
    80. 004f19f8 7c90eafa 0052fe8c 004f1a30 004f1a10 ntdll!ExecuteHandler+0x24
    81. 004f19f8 75b5f9e5 0052fe8c 004f1a30 004f1a10 ntdll!KiUserExceptionDispatcher+0xe
    82. 004f1cf8 75b3d68c 0052fe8c 004f1d1c 00000000 winsrv!_ValidateEH3RN
    83. 004f1d1c 7c9037bf 004f1e08 0052fe8c 004f1e28 winsrv!_except_handler3+0x39
    84. 004f1d40 7c90378b 004f1e08 0052fe8c 004f1e28 ntdll!ExecuteHandler2+0x26
    85. 004f1df0 7c90eafa 0052fe8c 004f1e28 004f1e08 ntdll!ExecuteHandler+0x24
    86. 004f1df0 75b5f9e5 0052fe8c 004f1e28 004f1e08 ntdll!KiUserExceptionDispatcher+0xe
    87. 004f20f0 75b3d68c 0052fe8c 004f2114 00000000 winsrv!_ValidateEH3RN
    88. 004f2114 7c9037bf 004f2200 0052fe8c 004f2220 winsrv!_except_handler3+0x39
    89. 004f2138 7c90378b 004f2200 0052fe8c 004f2220 ntdll!ExecuteHandler2+0x26
    90. 004f21e8 7c90eafa 0052fe8c 004f2220 004f2200 ntdll!ExecuteHandler+0x24
    91. 004f21e8 75b5f9e5 0052fe8c 004f2220 004f2200 ntdll!KiUserExceptionDispatcher+0xe
    92. 004f24e8 75b3d68c 0052fe8c 004f250c 00000000 winsrv!_ValidateEH3RN
    93. 004f250c 7c9037bf 004f25f8 0052fe8c 004f2618 winsrv!_except_handler3+0x39
    94. 004f2530 7c90378b 004f25f8 0052fe8c 004f2618 ntdll!ExecuteHandler2+0x26
    95. 004f25e0 7c90eafa 0052fe8c 004f2618 004f25f8 ntdll!ExecuteHandler+0x24
    96. 004f25e0 75b5f9e5 0052fe8c 004f2618 004f25f8 ntdll!KiUserExceptionDispatcher+0xe
    97. 004f28e0 75b3d68c 0052fe8c 004f2904 00000000 winsrv!_ValidateEH3RN
    98. 004f2904 7c9037bf 004f29f0 0052fe8c 004f2a10 winsrv!_except_handler3+0x39
    99. 004f2928 7c90378b 004f29f0 0052fe8c 004f2a10 ntdll!ExecuteHandler2+0x26
    100. 004f29d8 7c90eafa 0052fe8c 004f2a10 004f29f0 ntdll!ExecuteHandler+0x24
    101. 004f29d8 75b5f9e5 0052fe8c 004f2a10 004f29f0 ntdll!KiUserExceptionDispatcher+0xe
    102. 004f2cd8 75b3d68c 0052fe8c 004f2cfc 00000000 winsrv!_ValidateEH3RN
    103. 004f2cfc 7c9037bf 004f2de8 0052fe8c 004f2e04 winsrv!_except_handler3+0x39
    104. 004f2d20 7c90378b 004f2de8 0052fe8c 004f2e04 ntdll!ExecuteHandler2+0x26
    105. 004f2dd0 7c90eafa 0052fe8c 004f2e04 004f2de8 ntdll!ExecuteHandler+0x24
    106. 004f2dd0 75b5f9e5 0052fe8c 004f2e04 004f2de8 ntdll!KiUserExceptionDispatcher+0xe
    107. 004f30cc 75b3d68c 0052fe8c 004f30f0 00000000 winsrv!_ValidateEH3RN
    108. 004f30f0 7c9037bf 004f31dc 0052fe8c 004f31fc winsrv!_except_handler3+0x39
    109.  
    110.  
    111. FOLLOWUP_NAME:  MachineOwner
    112.  
    113. STACK_COMMAND:  kb
    114.  
    115. FAILURE_BUCKET_ID:  0xF4_IOERR_C0000001_IMAGE_csrss.exe
    116.  
    117. BUCKET_ID:  0xF4_IOERR_C0000001_IMAGE_csrss.exe
    118.  
    119. Followup: MachineOwner
    120. ---------
    вот все что получилось

    система падает, если запретить читать ей том (путем удаления пакетов IRP_MJ_READ)



    а где почитать о драйверах-фильтрах файловой системы, драйвер-фильтр из примера встраивается в стек всех томов, у которых фс-ntfs (deviceTree)
    По умолчанию так всегда или определяется самим драйвером?
     
  6. visualr

    visualr New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2005
    Сообщения:
    33
    более-менее разобрался, при перехвате IRP пакета необходимо в функции-обработчике делать фильтрацию по томам, а так драйвер инсталлируется автоматически в стек всех ФС
    (система валилась из-за некорректной фильтрации IRP_MJ_READ, нужно было подходить более аккуратно)

    вопрос, думаю, закрыт =)

    спасибо всем, кто помогал разобраться ;)