【发布时间】:2023-02-13 02:15:40
【问题描述】:
在使用 PeekMessage 的消息循环中,我发现我的应用程序出现奇怪的崩溃。该应用程序是使用 VS2013 构建的,并在 Windows 11 中运行。该应用程序不会崩溃 在 Windows 10 中,但仅在 Windows 11 中。崩溃时的调用堆栈如下:
KernelBase.dll!RaiseFailFastException()
CoreMessaging.dll!CFlat::Abandonment::FailWithException(struct _EXCEPTION_RECORD *,struct _CONTEXT *)
CoreMessaging.dll!CFlat::Abandonment::FailWithHR(int,void *,int)
CoreMessaging.dll!AlpcConnection::Callback_ProcessIncoming()
CoreMessaging.dll!Microsoft::CoreUI::Messaging::CrossProcessReceivePort$AlpcReceiveSource::OnReceive()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::OffThreadReceiver::Callback_OnDispatch()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::DoWork()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::WindowProc()
user32.dll!UserCallWinProcCheckWow()
user32.dll!CallWindowProcAorW(__int64 (*)(struct HWND__ *,unsigned int,unsigned __int64,__int64),struct HWND__ *,enum _WM_VALUE,unsigned __int64,__int64,int)
user32.dll!CallWindowProcA()
mfc120.dll!00007ffbc54c625b()
user32.dll!UserCallWinProcCheckWow()
user32.dll!DispatchClientMessage()
user32.dll!__fnDWORD()
ntdll.dll!00007ffc197676a4()
win32u.dll!00007ffc16e413b4()
user32.dll!_PeekMessage()
user32.dll!PeekMessageA()
通过反汇编代码我发现CallWindowProc派发的消息ID是96(decimal)/0x0060,但是我找不到这个消息ID是什么。有没有人知道这条消息或关于这次崩溃的一些建议?
【问题讨论】:
-
PROCESS_INITIALIZATION_FAILEDjames.darpinian.com/decoder/?q=0x0060 -
@Genjutsu 不,似乎不正确
-
我发现消息 96 被发送到类名为“SystemUserAdapterWindowClass”的窗口。似乎是我没有创建的系统窗口。有谁知道这个窗口是什么?