实时搜索异常:COMException: 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)

异常报告 · 1122 次浏览
FaniX 创建于 2024-02-16 21:20

使用实时搜索时,对于某些包含较长纯中文文件夹名的路径条目,点击资源管理器菜单项会引发异常

复现方法:实时搜索-datatype="path"条目-资源管理器菜单

点击任意条目后

一些会引发异常的路径:

  • D:\新建文件夹\新建 文本文档.txt
  • D:\新建文件夹\test\新建文件夹\test123.txt
  • D:\新建文件夹\新\test123.txt
  • D:\新建文件夹\新建文件夹\test\test123.txt

一些不引发异常的路径:

  • D:\新建文件夹\test\test123.txt
  • D:\新建文件夹\新\test\test123.txt

Quicker版本:1.42.9

测试动作

调试信息
COMException: 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)
StackTrace:
   在 System.StubHelpers.ValueClassMarshaler.ConvertToNative(IntPtr dst, IntPtr src, IntPtr pMT, CleanupWorkList& pCleanupWorkList)
   在 ManagedShell.ShellFolders.Interfaces.IContextMenu.InvokeCommand(CMINVOKECOMMANDINFOEX& info)
   在 ManagedShell.ShellFolders.ShellContextMenu.InvokeCommand(IContextMenu iContextMenu, String workingDir, UInt32 cmd, Point ptInvoke)
   在 SCMuS9dAE21Q6st7g8t.d0NyGHdfVLDN2hL42NL.D2oOzSG8Xl(UInt32  , String  )
   在 o7DncIInBZowJyeeLuV.r4jpsmIIHh8ClOliDQG.IYOQOfTDb4(Int32  )
   在 o7DncIInBZowJyeeLuV.r4jpsmIIHh8ClOliDQG.s3FQvNeMqW(BoxFg4IxlZ6MxVkuUBs  )
   在 o7DncIInBZowJyeeLuV.r4jpsmIIHh8ClOliDQG.upEQQdNSL7(Object  , RoutedEventArgs  )
   在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   在 System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   在 System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
   在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

回复内容
CL 2024-02-16 21:51
#1

测试未能复现。点任何一个菜单都会报错么? 

另外找了一个win10虚拟机测试也正常。 感觉可能是因为某个系统设置引起的。



CL 最后更新于 2024-02-16 21:59
FaniX 回复 CL 2024-02-16 22:34 :

我这边测试的时候任何一个菜单都会报错。二级菜单可以正常展开,但是点击会报错。

我在两台Win11设备上都遇到了这个问题,正好这两台设备最近都安装了更新,更新之后右键菜单也不太正常,那大概是Windows的问题。

系统版本信息:
Windows 11 专业版 23H2 22631.3155
Windows Feature Experience Pack 1000.22684.1000.0


CL 回复 FaniX 2024-02-16 22:41 :

我的电脑也是这个版本。右键菜单也不太正常 -- 是哪里的右键菜单?什么现象呢?

版本 Windows 11 专业版
版本 23H2
操作系统版本 22631.3155
体验 Windows Feature Experience Pack 1000.22684.1000.0


FaniX 回复 CL 2024-02-16 23:21 :

是资源管理器的右键菜单。在我电脑上 媒体、文档、图片文件的Win11简易右键菜单会卡死资源管理器进程,只有文件夹和可执行文件的右键菜单能正常展开,shift+右键的详细菜单倒是没有问题。

我在这个版本系统的Windows沙盒里试了一下也会出异常


CL 回复 FaniX 2024-02-17 07:59 :
什么时候开始出现的?试试卸载最近安装的windows补丁看看,还有看看在那个时间之后有没有更新过什么程序。也有可能有什么程序会修改系统设置导致异常。
FaniX 回复 CL 2024-02-17 11:20 :

我又换电脑试了一下,在Windows 10 22H2 19049.3992 和 Windows 11 23H2 22631.3007上也出现了相同的结果。

Quicker的Shell操作步骤也报类似的错误

我换了一个Quicker账号登录也是同样报错

CL 回复 FaniX 2024-02-17 11:22 :

这些电脑有安装其它什么相同的软件么?特别是安全类的,这种可能会修改系统的软件

FaniX 2024-02-17 12:18
#2
回复 CL :

这些电脑有安装其它什么相同的软件么?特别是安全类的,这种可能会修改系统的软件

找到原因了,是在语言和区域设置里启用了 Beta 版: 使用 Unicode UTF-8 提供全球语言支持(U) 选项,导致路径里包含某些Unicode字符的时候出了问题

关了这个选项就没这个问题了

CL 回复 FaniX 2024-02-17 12:46 :

好,这个选项有啥用么?

FaniX 回复 CL 2024-02-17 13:34 :

之前是因为和Linux交互比较多,想要减少文件编码导致的问题就打开了,现在关闭后遇到的唯一问题是powershell有可能不识别不带BOM的utf8编码脚本

看来这个选项创造的BUG似乎是比带来的好处更多一些(

回复主贴