

Void GetChildContainer(string pwszContainer, out IDxDiagContainer ppInstance) Void EnumPropNames(uint dwIndex, string pwszPropName, uint cchPropName) Void EnumChildContainerNames(uint dwIndex, string pwszContainer, uint cchContainer) You also need to wrap the IDxDiagContainer class: Void GetRootContainer(out IDxDiagContainer ppInstance) Void Initialize(ref DXDIAG_INIT_PARAMS pParams) NET Core, so let's wrap those COM objects ourselves! For documentation of the methods, you can still refer to the documentation linked above.įirst, you need the IDxDiagProvider interface and the DxDiagProvider coclass together with the DXDIAG_INIT_PARAMS passed to the provider: It requires a moment to complete too, so it's not a fast solution either, but at least you don't need to create or parse a raw file.Īpparently, this functionality was previously wrapped in the managed DirectX assemblies in, as they have a very similar interface to what the COM objects provide, but these assemblies are outdated and not working in. That means determining if their version is 10, 10.1, 11 or 11.1.Īnother possibility is using the IDxDiagProvider COM object directly and browse through the IDxDiagContainer hierarchy it yields - this is what dxdiag.exe does internally. I need an answer that applies to DirectX 10 installs and up.

