diff --git a/packaging/windows/drivers/vendor/wdk-sys/build.rs b/packaging/windows/drivers/vendor/wdk-sys/build.rs index b4b6964..db95e2d 100644 --- a/packaging/windows/drivers/vendor/wdk-sys/build.rs +++ b/packaging/windows/drivers/vendor/wdk-sys/build.rs @@ -373,16 +373,13 @@ fn generate_iddcx(out_path: &Path, config: &Config) -> Result<(), ConfigError> { // wdk-sys does NOT bindgen. Emit those locally (non-conflicting — they're absent from // crate::types). WDF/GUID/ULONG types it shares DO resolve from crate::types (no WDF type is // missing), so this stays type-identical for the WDF surface. - .allowlist_type("DXGI_.*") + .allowlist_type("_?DXGI_.*") .allowlist_type("IDXGI.*") // OPM types are `typedef struct _OPM_X {..} OPM_X` — allowlist BOTH the tag and the typedef // (allowlist_recursively(false) won't pull the tag in from the typedef). Plus D3DCOLORVALUE, // referenced by an OPM struct. .allowlist_type("_?OPM_.*") .allowlist_type("_?D3DCOLORVALUE") - // `UINT` is `unsigned int`; wdk-sys never references it so it's absent from crate::types and - // allowlist_type won't emit a bare primitive alias. Shim it (unambiguous on Windows). - .raw_line("pub type UINT = ::core::ffi::c_uint;") }; trace!(bindgen_builder = ?bindgen_builder); diff --git a/packaging/windows/drivers/vendor/wdk-sys/src/iddcx.rs b/packaging/windows/drivers/vendor/wdk-sys/src/iddcx.rs index d7e6781..1254a9c 100644 --- a/packaging/windows/drivers/vendor/wdk-sys/src/iddcx.rs +++ b/packaging/windows/drivers/vendor/wdk-sys/src/iddcx.rs @@ -26,6 +26,10 @@ mod bindings { )] use crate::types::*; + // `UINT` (= unsigned int) is referenced by IddCx/DXGI/OPM structs but wdk-sys never uses it, so it + // is absent from crate::types. Define it here, in the same scope the generated bindings see. + pub type UINT = ::core::ffi::c_uint; + include!(concat!(env!("OUT_DIR"), "/iddcx.rs")); } #[allow(