bsod win32k.sys

Тема в разделе "WASM.NT.KERNEL", создана пользователем AntiB, 15 фев 2010.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток!

    Я запускаю приложение используя длл в winlogon.exe, иногда бывает что система падает с ошибкой в win32k.sys. Проблема как я понимаю из за того что я делаю операции с графикой не дождавшись завершении инициализации графики. Вот и вопрос - как можно определить что графическая система до конца проинициализированная?

    Заранее спасибо!
     
  2. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Хотелось бы взглянуть на минидамп.
     
  3. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Код (Text):
    1. MODULE_NAME: win32k
    2.  
    3. FAULTING_MODULE: 804d7000 nt
    4.  
    5. DEBUG_FLR_IMAGE_TIMESTAMP:  43446b4e
    6.  
    7. FAULTING_IP:
    8. win32k!EngFreeUserMem+30d4
    9. bf80e5ca ff7044          push    dword ptr [eax+44h]
    10.  
    11. EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
    12. ExceptionAddress: bf80e5ca (win32k!EngFreeUserMem+0x000030d4)
    13.    ExceptionCode: c0000005 (Access violation)
    14.   ExceptionFlags: 00000008
    15. NumberParameters: 2
    16.    Parameter[0]: 00000000
    17.    Parameter[1]: 00000044
    18. Attempt to read from address 00000044
    19.  
    20. ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
    21.  
    22. EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
    23.  
    24. EXCEPTION_PARAMETER1:  00000000
    25.  
    26. EXCEPTION_PARAMETER2:  00000044
    27.  
    28. READ_ADDRESS: unable to get nt!MmSpecialPoolStart
    29. unable to get nt!MmSpecialPoolEnd
    30. unable to get nt!MmPoolCodeStart
    31. unable to get nt!MmPoolCodeEnd
    32.  00000044
    33.  
    34. FOLLOWUP_IP:
    35. win32k!EngFreeUserMem+30d4
    36. bf80e5ca ff7044          push    dword ptr [eax+44h]
    37.  
    38. BUGCHECK_STR:  ACCESS_VIOLATION
    39.  
    40. DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE
    41.  
    42. LAST_CONTROL_TRANSFER:  from bf8af44b to bf80e5ca
    43.  
    44. STACK_TEXT:  
    45. WARNING: Stack unwind information not available. Following frames may be wrong.
    46. f804c288 bf8af44b 00000000 e16d2aa8 e168bdd8 win32k!EngFreeUserMem+0x30d4
    47. f804c2c8 bf8aeb92 e168bdd8 f804c308 00000028 win32k!EngStretchBltROP+0x558d
    48. f804c318 bf8af9fa 00000000 f804c35c bf8b602b win32k!EngStretchBltROP+0x4cd4
    49. f804c324 bf8b602b bc5101e0 82b8d9b8 e16d2aa8 win32k!EngStretchBltROP+0x5b3c
    50. f804c35c bf80f096 00000001 f804c384 bf80f15a win32k!EngMulDiv+0x128f
    51. f804c368 bf80f15a 82d2fa60 00000001 00000000 win32k!EngFreeUserMem+0x3ba0
    52. f804c384 8056a1cf 82d2fa60 00000001 82a2d930 win32k!EngFreeUserMem+0x3c64
    53. f804c430 80584d65 c0000005 f804c48c 804e60e9 nt!ObCloseHandle+0x30
    54. f804c43c 804e60e9 82a2d930 f804c488 f804c47c nt!ExRundownCompleted+0x3b9
    55. f804c48c 804de9dd 00000001 00000000 f804c4a4 nt!KeInitializeDpc+0x683
    56. f804c524 8054ac38 00000007 0100027f 00250000 nt!ZwYieldExecution+0xd69
    57. f804c528 00000000 0100027f 00250000 4ecdea8b nt!ExFreePoolWithTag+0x131
    58.  
    59.  
    60. STACK_COMMAND:  kb
    61.  
    62. SYMBOL_STACK_INDEX:  0
    63.  
    64. SYMBOL_NAME:  win32k!EngFreeUserMem+30d4
    65.  
    66. FOLLOWUP_NAME:  MachineOwner
    67.  
    68. IMAGE_NAME:  win32k.sys
    69.  
    70. BUCKET_ID:  WRONG_SYMBOLS
    71.  
    72. Followup: MachineOwner
    73. ---------
    Вот что есть.
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Символы подгрузи нормальные.
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Больше бактрейс покажите.
     
  6. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Код (Text):
    1. PROCESS_NAME:  MyExe.exe
    2.  
    3. FAULTING_IP:
    4. win32k!HMFreeObject+7c
    5. bf80e5ca ff7044          push    dword ptr [eax+44h]
    6.  
    7. EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
    8. ExceptionAddress: bf80e5ca (win32k!HMFreeObject+0x0000007c)
    9.    ExceptionCode: c0000005 (Access violation)
    10.   ExceptionFlags: 00000008
    11. NumberParameters: 2
    12.    Parameter[0]: 00000000
    13.    Parameter[1]: 00000044
    14. Attempt to read from address 00000044
    15.  
    16. ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
    17.  
    18. EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
    19.  
    20. EXCEPTION_PARAMETER1:  00000000
    21.  
    22. EXCEPTION_PARAMETER2:  00000044
    23.  
    24. READ_ADDRESS:  00000044
    25.  
    26. FOLLOWUP_IP:
    27. win32k!HMFreeObject+7c
    28. bf80e5ca ff7044          push    dword ptr [eax+44h]
    29.  
    30. BUGCHECK_STR:  ACCESS_VIOLATION
    31.  
    32. DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE
    33.  
    34. LAST_CONTROL_TRANSFER:  from bf8af44b to bf80e5ca
    35.  
    36. STACK_TEXT:  
    37. f803c288 bf8af44b 00000000 e16ceaa8 e16ae448 win32k!HMFreeObject+0x7c
    38. f803c2c8 bf8aeb92 e16ae448 f803c308 00000028 win32k!xxxFreeWindow+0x6b9
    39. f803c318 bf8af9fa 00000000 f803c35c bf8b602b win32k!xxxDestroyWindow+0x42d
    40. f803c324 bf8b602b bc5101e0 82bc0f20 e16ceaa8 win32k!HMDestroyUnlockedObject+0x1c
    41. f803c338 bf8b67f9 82e79448 00000000 00000000 win32k!DestroyThreadsObjects+0x72
    42. f803c35c bf80f096 00000001 f803c384 bf80f15a win32k!xxxDestroyThreadInfo+0x1cf
    43. f803c368 bf80f15a 82e79448 00000001 00000000 win32k!UserThreadCallout+0x4b
    44. f803c384 8056a1cf 82e79448 00000001 82bbfa30 win32k!W32pThreadCallout+0x3d
    45. f803c430 80584d64 c0000005 f803c48c 804e60e9 nt!PspExitThread+0x40b
    46. f803c43c 804e60e9 82bbfa30 f803c488 f803c47c nt!PsExitSpecialApc+0x22
    47. f803c48c 804de9dd 00000001 00000000 f803c4a4 nt!KiDeliverApc+0x1af
    48. f803c48c 77d3b234 00000001 00000000 f803c4a4 nt!KiServiceExit2+0x39
    49. 0013f718 77d3b409 e16ae448 00000081 00000000 USER32!RealDefWindowProcWorker+0xd
    50. 0013f734 77d3b3a3 00010028 00000081 00000000 USER32!RealDefWindowProcW+0x47
    51. 0013f77c 0040491a 00010028 00000081 00000000 USER32!DefWindowProcW+0x72
    52. 0013f7a4 77d38744 00010028 00000081 00000000 MyExe!WndProc+0x1fa
    53. 0013f7d0 77d38826 00404720 00010028 00000081 USER32!InternalCallWinProc+0x28
    54. 0013f838 77d3b4d0 00000000 00404720 00010028 USER32!UserCallWinProcCheckWow+0x150
    55. 0013f88c 77d3fa73 e16ae448 00000081 00000000 USER32!DispatchClientMessage+0xa3
    56. 0013f8bc 7c90eae3 0013f8cc 00000060 00000060 USER32!__fnINLPCREATESTRUCT+0x8b
    57. 0013f8bc 804e2b1c 0013f8cc 00000060 00000060 ntdll!KiUserCallbackDispatcher+0x13
    58. f803c758 80565fec f803c874 f803c878 f803c848 nt!KiCallUserMode+0x4
    59. f803c7b4 bf83874a 0000000a f803c7dc 00000060 nt!KeUserModeCallback+0x87
    60. f803cacc bf813fbd e16ae448 00000081 00000000 win32k!SfnINLPCREATESTRUCT+0x41f
    61. f803cb14 bf8141af 006ae448 00000081 00000000 win32k!xxxSendMessageToClient+0x176
    62. f803cb60 bf80f598 e16ae448 00000081 00000000 win32k!xxxSendMessageTimeout+0x1a6
    63. f803cb84 bf839384 e16ae448 00000081 00000000 win32k!xxxSendMessage+0x1b
    64. f803cc6c bf82fdef 00000088 00000000 e16bb798 win32k!xxxCreateWindowEx+0x993
    65. f803cd20 804de7ec 00000088 f803ccec f803cce0 win32k!NtUserCreateWindowEx+0x1c1
    66. f803cd20 7c90eb94 00000088 f803ccec f803cce0 nt!KiFastCallEntry+0xf8
    67. 0013f8bc 7c90eae3 0013f8cc 00000060 00000060 ntdll!KiFastSystemCallRet
    68. 0013f928 77d3fe88 77d3fe4e 00000088 0013fe50 ntdll!KiUserCallbackDispatcher+0x13
    69. 0013fdcc 77d3ff41 00000088 0013fe50 0013fe64 USER32!NtUserCreateWindowEx+0xc
    70. 0013fe78 77d3fccd 00000088 00414308 0013fe64 USER32!_CreateWindowEx+0x1ed
    71. 0013feb4 004046e7 00000088 00414308 004142f4 USER32!CreateWindowExW+0x33
    72. 0013feec 0040406f 00400000 00000000 003e3170 MyExe!InitInstance+0x57
    73. 0013ff30 00409e17 00400000 00000000 0016233a MyExe!WinMain+0x16f
    74. 0013ffc0 7c816f97 00000000 7c906274 7ffde000 MyExe!__tmainCRTStartup+0x113 [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 263]
    75. 0013fff0 00000000 00409e82 00000000 78746341 kernel32!BaseProcessStart+0x23
    76.  
    77.  
    78. STACK_COMMAND:  kb
    79.  
    80. SYMBOL_STACK_INDEX:  0
    81.  
    82. SYMBOL_NAME:  win32k!HMFreeObject+7c
    83.  
    84. FOLLOWUP_NAME:  MachineOwner
    85.  
    86. MODULE_NAME: win32k
    87.  
    88. IMAGE_NAME:  win32k.sys
    89.  
    90. DEBUG_FLR_IMAGE_TIMESTAMP:  43446b4e
    91.  
    92. FAILURE_BUCKET_ID:  ACCESS_VIOLATION_win32k!HMFreeObject+7c
    93.  
    94. BUCKET_ID:  ACCESS_VIOLATION_win32k!HMFreeObject+7c
    95.  
    96. Followup: MachineOwner
    97. ---------
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    AntiB
    Нужно реверсить HMFreeObject() и смотреть какой указатель не валидный. Шадов работает, не искслючена возможность внутренних багов ядра. Вобщем ищите ошибку в кривых перехватах. В антивирях внедряться в чужие процессы не тру ;)
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    AntiB
    >я делаю операции с графикой не дождавшись завершении инициализации графики
    Нам кажется, что это не должно приводить к бсоду. Т.е. вполне вероятно, что это некий баг винды.

    Можешь приложить сам малый дамп (C:\windows\minidump\*.dmp)? Если он не сгенерился для этой винды, то можно сделать его из полного\ядерного – ".dump /m smalldumpname.dmp". Кроме того, если ядерный\полный дамп в наличии, то имеет смысл посмотреть на состояние структуры окна – "dt win32k!tagWND e16ae448", а также в раскрытом виде ""dt -r win32k!tagWND e16ae448" (посколку в малом дампе таких данных нет). Если символ tagWND для этой винды не предоставляется, то можно просто сдампить в байтовом виде: "db e16ae448 L200".
    Ещё вопрос – в MyExe!WndProc выполняется какая-либо обработка для WM_NCDESTROY?

    Сейчас (предварительно) видно лишь, что ядро в процессе создания окна делает колл-аут в юзермод для доставки WM_NCCREATE, соответственно WndProc пытается делегировать обработку xxxDefWindowProc, однако в этот момент приходит Apc для терминации потока(?). Поток пытается очиститься перед терминацией и при освобождении какого-то элемента окна постфактум выяснеется, что этот элемент нулевой. (?)
     
  9. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    минидамп не могу приложить.

    символ tagWND - не определен, поэтому:
    Код (Text):
    1. db e179f5e8 L200
    2. e179f5e8  2c 00 01 00 00 00 00 00-58 8d 6d e1 00 00 00 00  ,.......X.m.....
    3. e179f5f8  00 00 00 00 00 00 04 80-00 07 00 00 88 00 00 00  ................
    4. e179f608  00 00 00 84 00 00 40 00-00 00 00 80 00 00 00 00  ......@.........
    5. e179f618  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
    6. e179f628  d4 00 00 00 86 00 00 00-2c 03 00 00 7a 02 00 00  ........,...z...
    7. e179f638  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
    8. e179f648  47 d1 80 bf 00 00 00 00-00 00 00 00 00 00 00 00  G...............
    9. e179f658  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
    10. e179f668  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
    11. e179f678  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
    12. e179f688  05 00 00 00 00 1a 14 00-16 04 cf 0c 4d 6d 53 74  ............MmSt
    13. e179f698  18 78 c3 82 8c 01 00 00-8c 01 00 00 00 00 00 00  .x..............
    14. e179f6a8  00 c0 18 00 00 00 00 00-80 00 00 00 8c 01 00 00  ................
    15. e179f6b8  00 00 00 00 00 00 00 00-00 00 00 00 28 0a ac 82  ............(...
    16. e179f6c8  00 00 00 00 d0 f6 79 e1-63 f1 6f 0a 63 01 86 0a  ......y.c.o.c...
    17. e179f6d8  63 11 6c 0a 63 21 6a 0a-63 31 66 0a 63 41 68 0a  c.l.c!j.c1f.cAh.
    18. e179f6e8  63 51 6c 0a 63 61 6a 0a-63 71 68 0a 63 81 6e 0a  cQl.caj.cqh.c.n.
    19. e179f6f8  63 91 6e 0a 63 a1 78 0a-63 b1 76 0a 63 c1 78 0a  c.n.c.x.c.v.c.x.
    20. e179f708  63 d1 70 0a 63 e1 68 0a-63 f1 5c 0a 63 01 5d 0a  c.p.c.h.c.\.c.].
    21. e179f718  63 11 65 0a 63 21 67 0a-63 31 6d 0a 63 41 61 0a  c.e.c!g.c1m.cAa.
    22. e179f728  63 51 61 0a 63 61 61 0a-63 71 61 0a 63 81 6b 0a  cQa.caa.cqa.c.k.
    23. e179f738  63 91 69 0a 63 a1 69 0a-63 b1 63 0a 63 c1 5f 0a  c.i.c.i.c.c.c._.
    24. e179f748  63 d1 59 0a 63 e1 5d 0a-63 f1 71 0a 63 01 88 0a  c.Y.c.].c.q.c...
    25. e179f758  63 11 6e 0a 63 21 6c 0a-63 31 68 0a 63 41 6a 0a  c.n.c!l.c1h.cAj.
    26. e179f768  63 51 6e 0a 63 61 6c 0a-63 71 6a 0a 63 81 70 0a  cQn.cal.cqj.c.p.
    27. e179f778  63 91 70 0a 63 a1 7a 0a-63 b1 78 0a 63 c1 7a 0a  c.p.c.z.c.x.c.z.
    28. e179f788  63 d1 72 0a 63 e1 6a 0a-63 f1 5e 0a 63 01 5f 0a  c.r.c.j.c.^.c._.
    29. e179f798  63 11 67 0a 63 21 69 0a-63 31 6f 0a 63 41 63 0a  c.g.c!i.c1o.cAc.
    30. e179f7a8  63 51 63 0a 63 61 63 0a-63 71 63 0a 63 81 6d 0a  cQc.cac.cqc.c.m.
    31. e179f7b8  63 91 6b 0a 63 a1 6b 0a-63 b1 65 0a 63 c1 61 0a  c.k.c.k.c.e.c.a.
    32. e179f7c8  63 d1 5b 0a 63 e1 5f 0a-63 f1 73 0a 63 01 8a 0a  c.[.c._.c.s.c...
    33. e179f7d8  63 11 70 0a 63 21 6e 0a-63 31 6a 0a 63 41 6c 0a  c.p.c!n.c1j.cAl.
    >Ещё вопрос – в MyExe!WndProc выполняется какая-либо обработка для WM_NCDESTROY?
    нет
     
  10. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    AntiB
    >минидамп не могу приложить.
    Хм. Может быть в пм? Он совсем малый – меньше 300k в незапакованном виде, зачастую 64k-128k. И в нём только текущие структуры _EPROCESS и _ETHREAD, часть ядерного стека, список загруженных драйверов, базовая дебажная информация о системе и по странице памяти на каждый адрес в регистрах на момент исключения – т.е. никакого бинарного кода или частной информации. При наличии минидампа мы по крайней мере могли бы определить версии win32k и ntoskrnl, что позволило бы подгрузить конкретные версии этих модулей с симсервера Майкрософт для исследования.
    Нет, мы не в праве настаивать, конечно – но просто мало кто сможет сказать что-либо не имея информации о ядерном стеке и версиях бинарников ядра в формате минидампа.
     
  11. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    убрал задержку в виде создание thread-а который запускал процесс и получил следующий бсод:
    Код (Text):
    1. PROCESS_NAME:  MyExe.exe
    2.  
    3. FAULTING_IP:
    4. USER32!RealDefWindowProcWorker+d
    5. 77d3b234 8b06            mov     eax,dword ptr [esi]
    6.  
    7. EXCEPTION_RECORD:  0013f40c -- (.exr 0x13f40c)
    8. ExceptionAddress: 77d3b234 (USER32!RealDefWindowProcWorker+0x0000000d)
    9.    ExceptionCode: c0000005 (Access violation)
    10.   ExceptionFlags: 00000000
    11. NumberParameters: 2
    12.    Parameter[0]: 00000000
    13.    Parameter[1]: e1741438
    14. Attempt to read from address e1741438
    15.  
    16. ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
    17.  
    18. EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
    19.  
    20. EXCEPTION_PARAMETER1:  00000000
    21.  
    22. EXCEPTION_PARAMETER2:  00000044
    23.  
    24. READ_ADDRESS:  e1741438 Paged pool
    25.  
    26. FOLLOWUP_IP:
    27. USER32!RealDefWindowProcWorker+d
    28. 77d3b234 8b06            mov     eax,dword ptr [esi]
    29.  
    30. BUGCHECK_STR:  ACCESS_VIOLATION
    31.  
    32. DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE
    33.  
    34. CONTEXT:  0013f428 -- (.cxr 0x13f428)
    35. eax=e1741438 ebx=00000000 ecx=00000081 edx=00000010 esi=e1741438 edi=0013f810
    36. eip=77d3b234 esp=0013f6f4 ebp=0013f71c iopl=0         nv up ei pl nz na pe nc
    37. cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206
    38. USER32!RealDefWindowProcWorker+0xd:
    39. 001b:77d3b234 8b06            mov     eax,dword ptr [esi] ds:0023:e1741438=00010028
    40. Resetting default scope
    41.  
    42. LAST_CONTROL_TRANSFER:  from 77d3b409 to 77d3b234
    43.  
    44. STACK_TEXT:  
    45. 0013f71c 77d3b409 e1741438 00000081 00000000 USER32!RealDefWindowProcWorker+0xd
    46. 0013f738 77d3b3a3 00010028 00000081 00000000 USER32!RealDefWindowProcW+0x47
    47. 0013f780 0040491a 00010028 00000081 00000000 USER32!DefWindowProcW+0x72
    48. 0013f7a8 77d38744 00010028 00000081 00000000 MyExe!WndProc+0x1fa
    49. 0013f7d4 77d38826 00404720 00010028 00000081 USER32!InternalCallWinProc+0x28
    50. 0013f83c 77d3b4d0 00000000 00404720 00010028 USER32!UserCallWinProcCheckWow+0x150
    51. 0013f890 77d3fa73 e1741438 00000081 00000000 USER32!DispatchClientMessage+0xa3
    52. 0013f8c0 7c90eae3 0013f8d0 00000060 00000060 USER32!__fnINLPCREATESTRUCT+0x8b
    53. 0013f8c0 804e2b1c 0013f8d0 00000060 00000060 ntdll!KiUserCallbackDispatcher+0x13
    54. f804c758 80565fec f804c874 f804c878 f804c848 nt!KiCallUserMode+0x4
    55. f804c7b4 bf83874a 0000000a f804c7dc 00000060 nt!KeUserModeCallback+0x87
    56. f804cacc bf813fbd e1741438 00000081 00000000 win32k!SfnINLPCREATESTRUCT+0x41f
    57. f804cb14 bf8141af 00741438 00000081 00000000 win32k!xxxSendMessageToClient+0x176
    58. f804cb60 bf80f598 e1741438 00000081 00000000 win32k!xxxSendMessageTimeout+0x1a6
    59. f804cb84 bf839384 e1741438 00000081 00000000 win32k!xxxSendMessage+0x1b
    60. f804cc6c bf82fdef 00000088 00000000 e16bc4e8 win32k!xxxCreateWindowEx+0x993
    61. f804cd20 804de7ec 00000088 f804ccec f804cce0 win32k!NtUserCreateWindowEx+0x1c1
    62. f804cd20 7c90eb94 00000088 f804ccec f804cce0 nt!KiFastCallEntry+0xf8
    63. 0013f8c0 7c90eae3 0013f8d0 00000060 00000060 ntdll!KiFastSystemCallRet
    64. 0013f92c 77d3fe88 77d3fe4e 00000088 0013fe54 ntdll!KiUserCallbackDispatcher+0x13
    65. 0013fdd0 77d3ff41 00000088 0013fe54 0013fe68 USER32!NtUserCreateWindowEx+0xc
    66. 0013fe7c 77d3fccd 00000088 00414308 0013fe68 USER32!_CreateWindowEx+0x1ed
    67. 0013feb8 004046e7 00000088 00414308 004142f4 USER32!CreateWindowExW+0x33
    68. 0013fef0 00404070 00400000 00000000 003e3050 MyExe!InitInstance+0x57
    69. 0013ff30 00409e17 00400000 00000000 0016233a MyExe!WinMain+0x170
    70. 0013ffc0 7c816f97 04050458 04570455 7ffd5000 MyExe!__tmainCRTStartup+0x113 [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 263]
    71. 0013fff0 00000000 00409e82 00000000 78746341 kernel32!BaseProcessStart+0x23
    72.  
    73.  
    74. SYMBOL_STACK_INDEX:  0
    75.  
    76. SYMBOL_NAME:  USER32!RealDefWindowProcWorker+d
    77.  
    78. FOLLOWUP_NAME:  MachineOwner
    79.  
    80. MODULE_NAME: USER32
    81.  
    82. IMAGE_NAME:  USER32.dll
    83.  
    84. DEBUG_FLR_IMAGE_TIMESTAMP:  42260409
    85.  
    86. STACK_COMMAND:  .cxr 0x13f428 ; kb
    87.  
    88. FAILURE_BUCKET_ID:  ACCESS_VIOLATION_USER32!RealDefWindowProcWorker+d
    89.  
    90. BUCKET_ID:  ACCESS_VIOLATION_USER32!RealDefWindowProcWorker+d
    91.  
    92. Followup: MachineOwner
    93. ---------
    а почему вы думаете что графика проинициализированная? так как я запускаю приложение очень скоро, можно сказать как-только winlogon.exe запускается.
     
  12. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    AntiB
    Перехвати инициализацию гины ( как вариант ) там уже наверняка графика доступна
     
  13. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    AntiB
    >а почему вы думаете что графика проинициализированная?
    Мы не знаем, проинициализирована графика или нет, потому что не представляем, на каком этапе она инициализируется. Но считаем, что бсода быть не должно.

    Последний "бсод" – это почти то же самое, что и в предыдущий. Но в последнем случае автоанализ ошибся. Нужно смотреть вручную.

    >0013f71c 77d3b409 e1741438 00000081 00000000 USER32!RealDefWindowProcWorker+0xd
    >USER32!RealDefWindowProcWorker+d
    >77d3b234 8b06 mov eax,dword ptr [esi]
    По какой-то причине закэшированная pwnd (Teb.Win32ClientInfo.CallbackWnd.pwnd) является адресом структуры окна в ядре, а не в клиенте. Соответственно, происходит исключение на первых инструкциях функции RealDefWindowProcWorker() – при попытке обращения к ядерной памяти. Далее ядро раскручивает исключение и в конце концов решает уничтожить поток(?). Структура окна каким-то образом повреждена – при освобождении одного из его элементов делается предположение что этот элемент не может быть нулевым. Нуль-дереференс -> бсод.

    AntiB
    Для того, чтобы разобраться, на какой точке инициализация идёт в сторону, можно запустить винду под отладчиком. Ключевые моменты:
    1) Инициализация user32.dll – коннект к csrsss и заполнение структуры SharedInfo. Соответственно, точка входа user32.dll и функция win32k!NtUserProcessConnect().
    2) Создание окна и конретно посылка сообщения WM_NCREATE из этой процедуры. Соответственно, процедура win32k!xxxCreateWindowEx().
    3) Исключение в процедуре USER32!RealDefWindowProcWorker(). Посмотреть, что приводит к инициации терминации потока.
    4) Момент освобождения окна – win32k!xxxFreeWindow(). Узнать, какой элемент полагается ненулевым.

    Ты, кстати, ни разу не сказал, что за версия системы. Судя по "kernel32!BaseProcessStart+0x23", это XP. Если это не последний сервиспак, можно попробовать обновиться. Также можно проверить всё на семёрке.