// Copyright (c) Microsoft Corporation // License: MIT OR Apache-2.0 //! Direct FFI bindings to IddCx APIs from the Windows Driver Kit (WDK) //! //! This module contains all bindings to functions, constants, methods, //! constructors and destructors in the following headers: `iddcx/1.10/IddCx.h`. Types are not included in this module, but are available in the //! top-level `wdk_sys` module. #[allow( missing_docs, reason = "most items in the WDK headers have no inline documentation, so bindgen is unable to \ generate documentation for their bindings" )] mod bindings { // The WDK IddCx C names (PFN_IDD_CX_*, EvtIddCx* fields, *TableIndex consts) are not Rust-cased; // bindgen emits them verbatim. Suppress the style lints for the generated surface. #![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)] #[allow( clippy::wildcard_imports, reason = "the underlying c code relies on all type definitions being in scope, which \ results in the bindgen generated code relying on the generated types being in \ scope as well" )] #[allow( unused_imports, reason = "in certain versions of the WDK, there are no functions related to IddCx that can \ be generated by bindgen, so these types are unused" )] 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( unused_imports, reason = "in certain versions of the WDK, there are no functions related to IddCx that can be \ generated by bindgen, so the `bindings` module is empty" )] pub use bindings::*;