【问题标题】:What's the windows message of ID 96/0x0060?ID 96/0x0060 的窗口消息是什么?
【发布时间】: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_FAILED james.darpinian.com/decoder/?q=0x0060
  • @Genjutsu 不,似乎不正确
  • 我发现消息 96 被发送到类名为“SystemUserAdapterWindowClass”的窗口。似乎是我没有创建的系统窗口。有谁知道这个窗口是什么?

标签: c++ windows


【解决方案1】:

我看到类似的神秘 0x60 消息。虽然它没有崩溃,但我认为这只是一个简单的单线程 Win32 GUI 进程,有几个线程会退出并返回,这似乎与 0x60 消息通过以及 CoreMessaging.dll 加载到进程中的时间相对应。

我的 UI 有一个无模式对话框。然后我在 GetMessage 上循环(使用 hWnd=NULL),将它交给 IsDialogMessage/DispatchMessage。当我更改对 GetMessage 的调用,将我的对话句柄提供给它时​​,我从未收到此消息。所以它似乎是一条发往某个系统窗口的消息,可能是一个更高级的控件,最终错误地通过消息泵路由。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多