You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinUI3拖放触发MONZA::DdiThreadingContext异常,Drop回调失效

拖放功能异常:Drop回调未执行且触发GPU相关异常

问题现象

拖放任意项目时触发异常,Drop回调函数完全无法执行;将回调移至其他组件中测试,问题依旧。该异常不会导致应用崩溃,但Drop逻辑始终不触发。

使用版本

C++/WinRT version: 2.0.230706.1
WindowsAppSDK Version: 1.4.230913002

错误信息

Microsoft C++ exception: MONZA::DdiThreadingContext<MONZA::AdapterTraits_Gen12LP>::msg_end at memory location 0x0000001AFB4FFDF0.

回调声明(XAML)

<Border x:Name="BorderName"
        BorderBrush="{StaticResource BorderColor}"
        BorderThickness="1"
        Padding="16,8"
        AllowDrop="True"
        Drop="Image_OnDrop">

堆栈跟踪

>   KernelBase.dll!00007ffdc7454ffc()   Unknown
    igd10um64xe.dll!00007ffdb93e2830()  Unknown
    igd10um64xe.dll!00007ffdb98c1d9c()  Unknown
    igd10um64xe.dll!00007ffdb92c3aff()  Unknown
    igd10um64xe.dll!00007ffdb93b8b26()  Unknown
    igd10um64xe.dll!00007ffdb93f3d6a()  Unknown
    kernel32.dll!00007ffdc8c4257d() Unknown
    ntdll.dll!00007ffdc9caaa78()    Unknown

问题分析与解决建议

  1. GPU驱动问题:从堆栈和异常信息来看,异常来自Intel核显驱动(igd10um64xe.dll是Intel UHD/Iris系列核显的用户态驱动),MONZA是Intel显卡驱动内部模块。拖放过程中触发的GPU渲染操作引发驱动内部异常,直接中断了拖放流程,导致Drop回调无法被调用。建议直接从Intel官网下载对应显卡型号的最新驱动安装,替代Windows更新提供的通用版本。
  2. 补全拖放前置事件处理:异常可能发生在DragEnter/DragOver阶段,导致流程无法推进到Drop。可以添加DragOver回调并标记事件已处理:
    void Image_OnDragOver(IInspectable const& sender, DragEventArgs const& args)
    {
        args.AcceptedOperation(DataPackageOperation::Copy);
        args.Handled(true);
    }
    
    同时在XAML的Border标签上补充DragOver="Image_OnDragOver",确保拖放流程能正常走到Drop阶段。
  3. 框架版本兼容性检查:当前使用的Windows App SDK 1.4版本可能存在与特定GPU驱动的兼容性问题,尝试升级到最新稳定版(如1.5及以上),同时同步更新C++/WinRT到配套版本。
  4. 异常捕获调试:在拖放相关的所有事件回调中添加全局异常捕获,确认是否在DragEnter/DragOver阶段就已触发异常,中断了后续流程。

内容的提问来源于stack exchange,提问作者yonutix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:32:52