这是一个难以重现的错误,但我终于设法重现了它。但是,我对可能导致它的原因没有清楚的了解。我目前正试图让自己克服这个错误并找出错误的根源。
想知道是否有人可以给我一些方向或提示。
我的程序在 Directshow 过滤器图中的停止函数中死锁。
这是调用堆栈:
ntdll.dll!_ZwDeviceIoControlFile@40() + 0x15 bytes
ntdll.dll!_ZwDeviceIoControlFile@40() + 0x15 bytes
KernelBase.dll!_CreateEventExW@16() + 0x6e bytes
ksproxy.ax!SetState() + 0x3e bytes
ksproxy.ax!Inactive() + 0x3d bytes
ksproxy.ax!CKsOutputPin::Inactive() + 0x1d 字节
ksproxy.ax!CKsProxy::Stop() + 0x59 字节
quartz.dll!CFilterGraph::Stop() + 0x123f3 字节
quartz.dll!CFGControl::CImplMediaControl::Stop () + 0x12dba 字节 <--- 直接调用 *cam.dll!UVCCamera::Shutdown() 第 140 行 + 0x1b 字节 C++ cam.dll!anonymous namespace'::closeCamera(unsigned int hCamera) Line 297 C++ cam.dll!
匿名命名空间'::CoreThreadFunc(void * data) 第 916 行 + 0xb 字节 C++ kernel32.dll!@BaseThreadInitThunk@12() + 0x12 字节
ntdll.dll!__ RtlUserThreadStart@8() + 0x27 字节
ntdll.dll!_RtlUserThreadStart@8() + 0x1b 字节*