Visual c++ DirectX3D 11枚举设备

Visual c++ DirectX3D 11枚举设备,visual-c++,directx,directx-11,Visual C++,Directx,Directx 11,我想编写一个程序,列出在Windows系统上运行的所有DirectX3D应用程序,并显示它们使用的资源。我知道如何使用IDXGIFactory接口枚举适配器,以及如何通过IDXGIAdapter接口枚举适配器输出。我还知道如何使用QueryInterface和GetParent查找ID3D11设备使用的适配器。不过,我需要的是相反的:在给定适配器上运行的ID3D11设备的枚举。您需要指定一个IDXGIAdapter,通过D3D11CreateDevice创建ID3D11设备。所以一定有联系。有没

我想编写一个程序,列出在Windows系统上运行的所有DirectX3D应用程序,并显示它们使用的资源。我知道如何使用IDXGIFactory接口枚举适配器,以及如何通过IDXGIAdapter接口枚举适配器输出。我还知道如何使用QueryInterface和GetParent查找ID3D11设备使用的适配器。不过,我需要的是相反的:在给定适配器上运行的ID3D11设备的枚举。您需要指定一个IDXGIAdapter,通过D3D11CreateDevice创建ID3D11设备。所以一定有联系。有没有办法得到这样一个枚举


非常感谢。

您可以尝试搜索已加载directx dll的进程


您可以在D3D11CreateDevice上放置一个全局钩子,每当有应用程序调用它时,都可以登记该应用程序。

我将这个问题放在这里,因为我希望Being能够避免钩子。与此同时,我发现我对上钩的怀疑是无缘无故的。我试过你的第二个建议,效果很好。谢谢你的提示。