小数: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。