小数:143196173
十六进制:0x889000D

调用IAudioSessionControl2->GetProcessId()的结果。

GetLastError = 126 *
消息=“找不到指定的模块”

我不太确定如何解释此错误。另外,我在任何地方都找不到HRESULT的描述。记录的返回码为S_OK,E_POINTER,AUDCLNT_E_NO_SINGLE_PROCESS和AUDCLNT_E_DEVICE_INVALIDATED。

有人知道此代码表示什么吗?

*这是由Marshal.GetLastError与提供消息的Win32Exception获取的跨托管/非托管边界的错误。可能是伪造的,但这是我所拥有的。 HRESULT直接从非托管代码中拉出。

进一步调查,FAILED()似乎并不认为这是错误。但是,将out参数清除(设置为0),这实际上没有任何意义。另外,GetErrorInfo返回S_FALSE;因此没有任何其他调试信息可以继续。

最佳答案

这是AUDCLNT_S_NO_CURRENT_PROCESS-我意识到它某种程度上错过了Windows 7 SDK header 。

SDK文档将进行更新以反射(reflect)这一点。

结果意味着该 session 是跨进程 session 。返回的进程ID是创建 session 的第一个进程的进程ID,但是如果获得此结果,则由于进程ID不是唯一的,因此您确实不能依赖于该进程ID。

10-08 08:12