Windows 为什么AllocateStreamingResources会失败,错误代码为0x80004005?

Windows 为什么AllocateStreamingResources会失败,错误代码为0x80004005?,windows,winapi,audio,ms-media-foundation,dmo,Windows,Winapi,Audio,Ms Media Foundation,Dmo,我正在尝试让AEC DMO的演示正常工作()。它可以工作,但只在某些机器上。在这些机器上,它发生故障,并出现错误代码0x80004005。确切的代码行是 我在演示代码生成的.exe上运行了dependency walker,在它发生故障的机器上,没有检测到任何依赖项故障。在报告AllocateStreamingResources失败后,代码没有做任何事情 我使用以下参数运行:-out mic_out.pcm-mod 0-spkdev 0-micdev 0 所有机器都有功能性扬声器和麦克风。运行应

我正在尝试让AEC DMO的演示正常工作()。它可以工作,但只在某些机器上。在这些机器上,它发生故障,并出现错误代码0x80004005。确切的代码行是

我在演示代码生成的.exe上运行了dependency walker,在它发生故障的机器上,没有检测到任何依赖项故障。在报告AllocateStreamingResources失败后,代码没有做任何事情

我使用以下参数运行:-out mic_out.pcm-mod 0-spkdev 0-micdev 0


所有机器都有功能性扬声器和麦克风。运行应用程序时,扬声器发出声音。有什么想法吗?

我通过以下方法解决了类似的问题:

  • 在设备管理器中卸载音频设备
  • 重新启动

  • 它可以工作,但只能在某些机器上工作。在这些机器上,它在
    哪些机器成功,哪些机器失败<代码>0x80004005表示未指定的故障。我无法在我的机器上复制(windows 10 20H2)。@Straightsun MSFT:谢谢您的回复。它们是Intel NUC,我们提供的产品具有Windows 10.0.17763映像。图像在功能上是相对锁定的(如果有帮助的话,我可以得到确切的细节),但是是否有可以禁用的窗口功能会导致DMO以这种方式出错?例如,我可以让Windows Media Player在这些机器上启动并播放WAV文件(这就是我在这些设备上发出声音的方式)。所以我知道这很有效。在我测试过示例代码的任何其他机器上,它都能工作,除了这些NUC之外。@STRIVESSUN MSFT:我在理解问题的本质方面取得了一些进展。这不是基本图像,但它似乎是我们连接到NUC作为麦克风的Azure Kinect。卸下Azure Kinect并使用现成的USB或基于插孔的麦克风,它可以在这些机器上工作。USB总线+Azure Kinect是否可能存在导致DMO失败的限制因素?正如我所说,我至少可以让另一个USB麦克风工作。问题可能与您使用DMO的设备有关。媒体类型详细信息、设备功能等。很难确定真正的原因,但最终你需要抓住它
    AllocateStreamingResources
    只是初始化操作时的一种方法,该方法不会告诉您太多有关错误的信息。@Straightsun MSFT:让我借此机会游说您游说Microsoft的权力机构不要让Windows API生成未指定的故障。尝试用谷歌搜索这个错误代码——在尝试解决与之相关的问题时,已经浪费了数千、可能数百万个小时。如果我们被告知实际问题是什么(Windows必须知道),这可能会大大减少。谢谢,现在从我的肥皂盒里拿出来:)