From f33efae05a789a2f37e3da6980e8aec143ba4dd0 Mon Sep 17 00:00:00 2001 From: Marijn Suijten Date: Thu, 16 Oct 2025 19:53:38 +0200 Subject: [PATCH] Generate `dxdiag.h` bindings in `DirectX.Diagnostics` namespace --- .../WinSDK/Partitions/DirectX.Diagnostics/main.cpp | 9 +++++++++ .../WinSDK/Partitions/DirectX.Diagnostics/settings.rsp | 6 ++++++ generation/WinSDK/Windows.Win32.proj | 2 +- generation/WinSDK/emitter.settings.rsp | 6 ++++++ generation/WinSDK/scraper.header.txt | 1 + scripts/ChangesSinceLastRelease.txt | 7 +++++++ scripts/HeaderFileCoverageExceptions.csv | 1 - sources/MetadataUtils/ConstantWriter.cs | 2 +- 8 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 generation/WinSDK/Partitions/DirectX.Diagnostics/main.cpp create mode 100644 generation/WinSDK/Partitions/DirectX.Diagnostics/settings.rsp diff --git a/generation/WinSDK/Partitions/DirectX.Diagnostics/main.cpp b/generation/WinSDK/Partitions/DirectX.Diagnostics/main.cpp new file mode 100644 index 000000000..4b39b2f49 --- /dev/null +++ b/generation/WinSDK/Partitions/DirectX.Diagnostics/main.cpp @@ -0,0 +1,9 @@ +#define SECURITY_WIN32 // For sspi.h +#define QCC_OS_GROUP_WINDOWS + +#include "intrinfix.h" + +#include "windows.fixed.h" +#include + +#include diff --git a/generation/WinSDK/Partitions/DirectX.Diagnostics/settings.rsp b/generation/WinSDK/Partitions/DirectX.Diagnostics/settings.rsp new file mode 100644 index 000000000..2b0d37a7c --- /dev/null +++ b/generation/WinSDK/Partitions/DirectX.Diagnostics/settings.rsp @@ -0,0 +1,6 @@ +--traverse +/um/dxdiag.h +--namespace +Windows.Win32.Graphics.DirectX.Diagnostics +--remap +_DXDIAG_INIT_PARAMS=DXDIAG_INIT_PARAMS diff --git a/generation/WinSDK/Windows.Win32.proj b/generation/WinSDK/Windows.Win32.proj index 433078ac2..349182d4f 100644 --- a/generation/WinSDK/Windows.Win32.proj +++ b/generation/WinSDK/Windows.Win32.proj @@ -49,7 +49,7 @@ true - ActiveDirectory;AllJoyn;Antimalware;ApplicationVerifier;Audio.Apo;Audio.DirectMusic;Audio.DirectSound;Audio.Endpoints;Authorization;Authorization.UI;Base;Bits;Bluetooth;Buses;CEIP;Certificates;Cloudapi;ClrHosting;ClrProfiling;CmpApi;Com;Com.CallObj;Com.ChannelCreds;Com.Events;Com.StructuredStorage;Com.Urlmon;Communication;ComOle;CompositionSwapchain;Console;Cos;Credentials;DataXchg;Debug.ActiveScript;Debug.Extensions;Debug.WebApp;Dedup;DeviceAccess;DeviceQuery;Devices.Properties;Devices.1394;Devices.Beep;Devices.Cdrom;Devices.Changer;Devices.Dvd;DevLic;Dhcp;Direct2D;Direct2D.Common;Direct3D;Direct3D10;Direct3D11;Direct3D11on12;Direct3D12;Direct3D9on12;Direct3DDxc;Direct3DFxc;DirectComp;DirectDraw;DirectManipulation;DirectML;DirectWrite;Dlna;DTC;Dwm;DXCore;Dxgi;Dxgi.Common;Eap;EapHost;Edp;Enstor;Environment;Etw;Fax;FileHistory;Foundation;Fs;Fsrm;FunctionDiscovery;GameInput;GameMode;GamingDvcInfo;Gdi;Gdiplus;Gpmc;HostComputeNetwork;HostComputeSystem;HtmlHelp;HttpServer;Hypervisor;Identity;IdentityProvider;Ifsk;Iis;ImagingDevice;IMapi;IndexSrv;Input_Ink;Input_IntContext;Input.Ime;InputRadial;InternetConnectionWizard;InternetExplorer;Intl;IO;Isolation;JobObjects;Kernel;KeyboardAndMouseInput;Ldap;LibraryLoader;Lwef;MachineLearning;MadCap;MagApi;Mapi;Mbn;MdmReg;Media;Media.DShow;Media.DShow.Xml;Media.DxMediaObjects;Memory;MessageQueuing;Mi;MixedReality;MixedRealityInterop;Mmc;Monitor;MsChap;MsCs;MsHtml;MsTv;MsXml;Multimedia;Ndf;Ndis;NetMgmt;NetShell;NetworkAccessProtection;Nfc;Nfp;Nla;Nps;NWifi;Of;Opc;OpenGL;P2p;Parcon;PicAcq;Pipes;Pla;Policy;Power;PrintTicket;Proc_Snap;ProjFs;Properties;PsApi1;PsApi2;PWM;Qos;Rdc;Rdp;RealTimeCommunications;Registry;RemoteAssist;Rm;Rpc;RstMgr;SecBitomet;Security;Security.AppLocker;Security.ConfigurationSnapin;Security.Cryptography;Security.Cryptography.Catalog;Security.Cryptography.Sip;Security.Cryptography.UI;Security.DiagnosticDataQuery;Security.DirectoryServices;Security.LicenseProtection;Security.Tpm;Security.WinTrust;Security.WinWlx;SecurityCenter;Sens;SerPorts;Services;Setup;Shell.Common;Shutdown;SideShow;Smi;Speech;Sr;Storage.Nvme;SwDevice;SystemInformation;Tablet;Tapi3;TaskSchd;Tbs;Tcui;TermServ;Threading;Time;ToolHelp;TraceLogging;TransactionServer;Tsf;Ual;UiAnimation;UpdateAssessment;Upnp;Variant;Vhd;VirtualDiskService;VSS;Wab;Wcm;Wcn;Wcs;Wds;WebDav;WebServicesOnDevices;WebSock;Wec;Wer;Wes;Wia;Wibe;Wic;Win32_Tile_Badge_Notif;WinAuto;WinContacts;WindowsConnectionManager;WindowsFilteringPlatform;WindowsFirewall;WindowsRibbon;WindowsSetupAndMigration;WinInet;WinLocation;WinRm;WinRT;WinRT.AllJoyn;WinRT.Composition;WinRT.CoreInputView;WinRT.Direct2D;WinRT.Direct3D11;WinRT.Display;WinRT.Graphics.Capture;WinRT.Graphics.Imaging;WinRT.Holographic;WinRT.Isolation;WinRT.Media;WinRT.ML;WinRT.Pdf;WinRT.Printing;WinRT.Storage;WinRT.Xaml;WinSat;WinSensors;WinSync;WinTouch;Wmdm;WmFormat;Wmi;Wmlss;Wmp;Wnet;wnv;WpdSdk;Wsb;Wsl;Wsw;Wua;Xaml_Diagnostics;Xaudio2;Xblidp;Xinput;XmlLite;Xps;XpsPrinting + ActiveDirectory;AllJoyn;Antimalware;ApplicationVerifier;Audio.Apo;Audio.DirectMusic;Audio.DirectSound;Audio.Endpoints;Authorization;Authorization.UI;Base;Bits;Bluetooth;Buses;CEIP;Certificates;Cloudapi;ClrHosting;ClrProfiling;CmpApi;Com;Com.CallObj;Com.ChannelCreds;Com.Events;Com.StructuredStorage;Com.Urlmon;Communication;ComOle;CompositionSwapchain;Console;Cos;Credentials;DataXchg;Debug.ActiveScript;Debug.Extensions;Debug.WebApp;Dedup;DeviceAccess;DeviceQuery;Devices.Properties;Devices.1394;Devices.Beep;Devices.Cdrom;Devices.Changer;Devices.Dvd;DevLic;Dhcp;Direct2D;Direct2D.Common;Direct3D;Direct3D10;Direct3D11;Direct3D11on12;Direct3D12;Direct3D9on12;Direct3DDxc;Direct3DFxc;DirectComp;DirectDraw;DirectManipulation;DirectML;DirectWrite;DirectX.Diagnostics;Dlna;DTC;Dwm;DXCore;Dxgi;Dxgi.Common;Eap;EapHost;Edp;Enstor;Environment;Etw;Fax;FileHistory;Foundation;Fs;Fsrm;FunctionDiscovery;GameInput;GameMode;GamingDvcInfo;Gdi;Gdiplus;Gpmc;HostComputeNetwork;HostComputeSystem;HtmlHelp;HttpServer;Hypervisor;Identity;IdentityProvider;Ifsk;Iis;ImagingDevice;IMapi;IndexSrv;Input_Ink;Input_IntContext;Input.Ime;InputRadial;InternetConnectionWizard;InternetExplorer;Intl;IO;Isolation;JobObjects;Kernel;KeyboardAndMouseInput;Ldap;LibraryLoader;Lwef;MachineLearning;MadCap;MagApi;Mapi;Mbn;MdmReg;Media;Media.DShow;Media.DShow.Xml;Media.DxMediaObjects;Memory;MessageQueuing;Mi;MixedReality;MixedRealityInterop;Mmc;Monitor;MsChap;MsCs;MsHtml;MsTv;MsXml;Multimedia;Ndf;Ndis;NetMgmt;NetShell;NetworkAccessProtection;Nfc;Nfp;Nla;Nps;NWifi;Of;Opc;OpenGL;P2p;Parcon;PicAcq;Pipes;Pla;Policy;Power;PrintTicket;Proc_Snap;ProjFs;Properties;PsApi1;PsApi2;PWM;Qos;Rdc;Rdp;RealTimeCommunications;Registry;RemoteAssist;Rm;Rpc;RstMgr;SecBitomet;Security;Security.AppLocker;Security.ConfigurationSnapin;Security.Cryptography;Security.Cryptography.Catalog;Security.Cryptography.Sip;Security.Cryptography.UI;Security.DiagnosticDataQuery;Security.DirectoryServices;Security.LicenseProtection;Security.Tpm;Security.WinTrust;Security.WinWlx;SecurityCenter;Sens;SerPorts;Services;Setup;Shell.Common;Shutdown;SideShow;Smi;Speech;Sr;Storage.Nvme;SwDevice;SystemInformation;Tablet;Tapi3;TaskSchd;Tbs;Tcui;TermServ;Threading;Time;ToolHelp;TraceLogging;TransactionServer;Tsf;Ual;UiAnimation;UpdateAssessment;Upnp;Variant;Vhd;VirtualDiskService;VSS;Wab;Wcm;Wcn;Wcs;Wds;WebDav;WebServicesOnDevices;WebSock;Wec;Wer;Wes;Wia;Wibe;Wic;Win32_Tile_Badge_Notif;WinAuto;WinContacts;WindowsConnectionManager;WindowsFilteringPlatform;WindowsFirewall;WindowsRibbon;WindowsSetupAndMigration;WinInet;WinLocation;WinRm;WinRT;WinRT.AllJoyn;WinRT.Composition;WinRT.CoreInputView;WinRT.Direct2D;WinRT.Direct3D11;WinRT.Display;WinRT.Graphics.Capture;WinRT.Graphics.Imaging;WinRT.Holographic;WinRT.Isolation;WinRT.Media;WinRT.ML;WinRT.Pdf;WinRT.Printing;WinRT.Storage;WinRT.Xaml;WinSat;WinSensors;WinSync;WinTouch;Wmdm;WmFormat;Wmi;Wmlss;Wmp;Wnet;wnv;WpdSdk;Wsb;Wsl;Wsw;Wua;Xaml_Diagnostics;Xaudio2;Xblidp;Xinput;XmlLite;Xps;XpsPrinting false diff --git a/generation/WinSDK/emitter.settings.rsp b/generation/WinSDK/emitter.settings.rsp index d55afbdc8..9a56a537d 100644 --- a/generation/WinSDK/emitter.settings.rsp +++ b/generation/WinSDK/emitter.settings.rsp @@ -2121,3 +2121,9 @@ SetPrinterDataW::pValueName=[Const] FindFirstPrinterChangeNotification::return=FINDPRINTERCHANGENOTIFICATION_HANDLE FindNextPrinterChangeNotification::hChange=FINDPRINTERCHANGENOTIFICATION_HANDLE FindClosePrinterChangeNotification::hChange=FINDPRINTERCHANGENOTIFICATION_HANDLE +IDxDiagProvider::Initialize::pParams=[Const] +IDxDiagContainer::GetNumberOfChildContainers::pdwCount=[Out] +IDxDiagContainer::EnumChildContainerNames::pwszContainer=[Out][NativeArrayInfo(CountParamIndex = 2)] +IDxDiagContainer::EnumPropNames::pwszPropName=[Out][NativeArrayInfo(CountParamIndex = 2)] +IDxDiagContainer::GetNumberOfProps::pdwCount=[Out] +IDxDiagContainer::GetProp::pvarProp=[Out] diff --git a/generation/WinSDK/scraper.header.txt b/generation/WinSDK/scraper.header.txt index 416b50275..9cdf001cd 100644 --- a/generation/WinSDK/scraper.header.txt +++ b/generation/WinSDK/scraper.header.txt @@ -46,6 +46,7 @@ using Windows.Win32.Graphics.DirectComposition; using Windows.Win32.Graphics.DirectDraw; using Windows.Win32.Graphics.DirectManipulation; using Windows.Win32.Graphics.DirectWrite; +using Windows.Win32.Graphics.DirectX.Diagnostics; using Windows.Win32.Graphics.Dwm; using Windows.Win32.Graphics.DXCore; using Windows.Win32.Graphics.Dxgi; diff --git a/scripts/ChangesSinceLastRelease.txt b/scripts/ChangesSinceLastRelease.txt index e69de29bb..cc8bd6060 100644 --- a/scripts/ChangesSinceLastRelease.txt +++ b/scripts/ChangesSinceLastRelease.txt @@ -0,0 +1,7 @@ +# Generate dxdiag.h bindings in DirectX.Diagnostics namespace +Windows.Win32.Graphics.DirectX.Diagnostics.Apis.CLSID_DxDiagProvider added +Windows.Win32.Graphics.DirectX.Diagnostics.Apis.DXDIAG_DX9_SDK_VERSION added +Windows.Win32.Graphics.DirectX.Diagnostics.Apis.DXDIAG_E_INSUFFICIENT_BUFFER added +Windows.Win32.Graphics.DirectX.Diagnostics.DXDIAG_INIT_PARAMS added +Windows.Win32.Graphics.DirectX.Diagnostics.IDxDiagContainer added +Windows.Win32.Graphics.DirectX.Diagnostics.IDxDiagProvider added diff --git a/scripts/HeaderFileCoverageExceptions.csv b/scripts/HeaderFileCoverageExceptions.csv index 78804c201..cea92218d 100644 --- a/scripts/HeaderFileCoverageExceptions.csv +++ b/scripts/HeaderFileCoverageExceptions.csv @@ -148,7 +148,6 @@ File,Skipping,Reason /um/dpx1.h,false,Need DPX section /um/dshow.h,true,Includes only /um/dx95type.h,true,Ignoring kernel stuff -/um/dxdiag.h,true,Not intended to be used in user code /um/dxgiddi.h,true,Ignoring kernel stuff /um/dxtmpl.h,true,Inlines and templates /um/easencryptprov.h,false,Need EAS diff --git a/sources/MetadataUtils/ConstantWriter.cs b/sources/MetadataUtils/ConstantWriter.cs index 81b93bcf8..0cc5cca2e 100644 --- a/sources/MetadataUtils/ConstantWriter.cs +++ b/sources/MetadataUtils/ConstantWriter.cs @@ -97,7 +97,7 @@ public static string FixIntValueText(bool forceUnsigned, ref string type, string { if (valueText.Length > 0 && (char.IsLetter(valueText[0]) || valueText[0] == '_')) { - // This means our value is probably using an enum or some other expresssion, + // This means our value is probably using an enum or some other expression, // so don't mess with the valueText // Set the type to something