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

Win10旧Metro应用随机文件访问错误及RuntimeBroker崩溃排查

Windows 10旧Metro应用Documents Library操作触发RPC异常及RuntimeBroker崩溃问题

问题背景

有一个需在Windows 10上运行的旧Metro应用,通过Documents Library与本地其他进程交互执行文件操作,多数情况下运行正常,但偶尔会触发异常。

触发异常的代码

StorageFolder flagFolder = await KnownFolders.DocumentsLibrary.GetFolderAsync(dirPath);

异常日志

Message: The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
Source : Windows.Storage
Type   : System.Exception
Stack  :
 at Windows.Storage.KnownFolders.get_DocumentsLibrary()
 at XXX.<TimerTick>d__a.MoveNext()

事件查看器记录的RuntimeBroker崩溃日志

Faulting application name: RuntimeBroker.exe, version: 10.0.19041.746, time stamp: 0x5b78739c
Faulting module name: shcore.dll, version: 10.0.19041.746, time stamp: 0x5e98fab6
Exception code: 0xc0000005
Fault offset: 0x0000000000022227
Faulting process id: 0xe94
Faulting application start time: 0x01d8f4397cb4625c
Faulting application path: C:\Windows\System32\RuntimeBroker.exe
Faulting module path: C:\Windows\System32\shcore.dll
Report Id: ce450896-5110-4b5e-9aa2-a6ea4182d40a
Faulting package full name: XXX
Faulting package-relative application ID: runtimebroker07f4358a809ac99a64a67c1

异常后应用症状

  • 无法从线程池注册新线程
  • 依赖线程池的定时器失效
  • 仍可向之前打开的日志文件写入
  • 约半小时后,无法在Documents Library中读写新文件,触发相同RPC异常

Windbg转储分析结果

堆栈信息

[0x0]   ntdll!NtWaitForMultipleObjects + 0x14   
[0x1]   KERNELBASE!WaitForMultipleObjectsEx + 0xf0   
[0x2]   KERNELBASE!WaitForMultipleObjects + 0xe   
[0x3]   kernel32!WerpReportFaultInternal + 0x58a   
[0x4]   kernel32!WerpReportFault + 0xbe   
[0x5]   KERNELBASE!UnhandledExceptionFilter + 0x3d9   
[0x6]   ntdll!RtlUserThreadStart$filt$0 + 0xa2   
[0x7]   ntdll!_C_specific_handler + 0x96   
[0x8]   ntdll!RtlpExecuteHandlerForException + 0xf   
[0x9]   ntdll!RtlDispatchException + 0x244   
[0xa]   ntdll!KiUserExceptionDispatch + 0x2e   
[0xb]   SHCore!COplockFileHandle::_Initialize + 0x167   
[0xc]   SHCore!COplockFileHandle::s_CreateInstance + 0xaa   
[0xd]   SHCore!SHManagedCreateFile + 0x1ff   
[0xe]   SHCore!CSafeSaveHandleManager::_EnsureMainHandle + 0x154   
[0xf]   SHCore!CSafeSaveHandleManager::GetHandleForRead + 0x4a   
[0x10]   SHCore!`anonymous namespace'::_CreateRandomAccessStreamOnFileHelper + 0xd6   
[0x11]   SHCore!CreateRandomAccessStreamOnFileWithOptions + 0x19   
[0x12]   windows_storage!CFSFolder::_BindToChild + 0xdb3   
[0x13]   windows_storage!CFSFolder::_Bind + 0x9de   
[0x14]   windows_storage!CFSFolder::BindToObject + 0x44e   
[0x15]   windows_storage!CShellItem::BindToHandler + 0x548   
[0x16]   windows_storage!_CreateRandomAccessStream + 0xeb   
[0x17]   windows_storage!CShellItem::BindToHandler + 0x67b   
[0x18]   windows_storage!CStorageFileBase::s_OpenAsyncPrivateWorker + 0x1ae   
[0x19]   windows_storage!<lambda_6590a290d3704fa33cc8569c7c432ebe>::operator() + 0x135   
[0x1a]   windows_storage!<lambda_b0a6a9cfa44b8f830e3e8e8eecceff13>::operator() + 0x74   
[0x1b]   windows_storage!Windows::Internal::COperationLambdaVar<0,<lambda_b0a6a9cfa44b8f830e3e8e8eecceff13>,Windows::Internal::CMarshaledInterfaceResult<Windows::Storage::Streams::IInputStream> >::Run + 0x23   
[0x1c]   windows_storage!Windows::Internal::AsyncOperation<Windows::Foundation::IAsyncOperation<Windows::Storage::Streams::IInputStream *>,Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Storage::Streams::IInputStream *>,Windows::Internal::CMarshaledInterfaceResult<Windows::Storage::Streams::IInputStream>,Windows::Internal::ComTaskPoolHandler,Windows::Internal::INilDelegate,Microsoft::WRL::AsyncOptions<-1,0,&GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2> >::Run + 0x79   
[0x1d]   SHCore!WorkThreadManager::CThread::ThreadProc + 0x1d0   
[0x1e]   SHCore!WorkThreadManager::CThread::s_ExecuteThreadProc + 0x18   
[0x1f]   SHCore!<lambda_9844335fc14345151eefcc3593dd6895>::<lambda_invoker_cdecl> + 0x11   
[0x20]   kernel32!BaseThreadInitThunk + 0x14   
[0x21]   ntdll!RtlUserThreadStart + 0x21   

分析摘要

STACK_COMMAND:  ~4s; .ecxr ; kb

SYMBOL_NAME:  SHCore!COplockFileHandle::_Initialize+167

MODULE_NAME: SHCore

IMAGE_NAME:  SHCore.dll

FAILURE_BUCKET_ID:  NULL_POINTER_READ_c0000005_SHCore.dll!COplockFileHandle::_Initialize

OS_VERSION:  10.0.19041.1

BUILDLAB_STR:  vb_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  10.0.19041.746

FAILURE_ID_HASH:  {6e7c4134-ffb6-90fc-7715-5adc39084c1a}

Followup:     MachineOwner

补充信息

  • 重启电脑可解决问题,但并非可行方案
  • 仅重启应用无法可靠修复
  • 该应用在Windows 8、8.1及旧版Windows 10上运行时从未出现此问题

疑问

有没有人遇到过类似问题?这是什么原因导致的?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:50:41