From dfb20a92857e1e3ed051e7d37c80358db3a300c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20V=C3=A9ril?= Date: Wed, 16 Jul 2025 14:57:49 +0200 Subject: [PATCH 1/5] Use the sys crate instead of windows crate for this sys binding --- wslpluginapi-sys/Cargo.toml | 3 +-- wslpluginapi-sys/build/WslPluginApi.rs | 7 +++---- wslpluginapi-sys/build/checksum.sha256 | 2 +- wslpluginapi-sys/src/manual.rs | 10 +++++----- xtask/src/header_processing.rs | 7 +++---- 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/wslpluginapi-sys/Cargo.toml b/wslpluginapi-sys/Cargo.toml index a28e6da..52836d4 100644 --- a/wslpluginapi-sys/Cargo.toml +++ b/wslpluginapi-sys/Cargo.toml @@ -30,11 +30,10 @@ struct-field-names-as-array = { version = "0.3", features = [ "derive", ], optional = true } -[dependencies.windows] +[dependencies.windows-sys] version = ">0.32" features = [ "Win32_Foundation", - "Win32_Security", "Win32_System_Diagnostics_Debug", "Win32_Networking_WinSock", ] diff --git a/wslpluginapi-sys/build/WslPluginApi.rs b/wslpluginapi-sys/build/WslPluginApi.rs index cbd22b3..971ccef 100644 --- a/wslpluginapi-sys/build/WslPluginApi.rs +++ b/wslpluginapi-sys/build/WslPluginApi.rs @@ -1,9 +1,8 @@ /* automatically generated by rust-bindgen 0.72.0 */ -use windows::core::*; -use windows::Win32::Foundation::*; -use windows::Win32::Networking::WinSock::SOCKET; -use windows::Win32::Security::*; +use windows_sys::core::*; +use windows_sys::Win32::Foundation::*; +use windows_sys::Win32::Networking::WinSock::SOCKET; #[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR; #[allow(clippy::upper_case_acronyms)] diff --git a/wslpluginapi-sys/build/checksum.sha256 b/wslpluginapi-sys/build/checksum.sha256 index 873a81c..38c59c8 100644 --- a/wslpluginapi-sys/build/checksum.sha256 +++ b/wslpluginapi-sys/build/checksum.sha256 @@ -1,2 +1,2 @@ 896ecb0b3b7e6467e6f4cda3b00201473ed7b7face1a31081671bc32b9e679d3 metadata.json -b8f7209005250c821184da6a11eefc40a84bfc9d44a34cb9bbd1fc302d62e4b4 WslPluginApi.rs +779d41150c68022860afabf494d9b0e5d1e311e1013ab977aaf75f7bfb977909 WslPluginApi.rs diff --git a/wslpluginapi-sys/src/manual.rs b/wslpluginapi-sys/src/manual.rs index f4b5821..daa9a22 100644 --- a/wslpluginapi-sys/src/manual.rs +++ b/wslpluginapi-sys/src/manual.rs @@ -1,11 +1,11 @@ use crate::WSLPluginAPIV1; -use windows::core::HRESULT; -use windows::Win32::Foundation::{SEVERITY_ERROR, S_OK}; -use windows::Win32::System::Diagnostics::Debug::{FACILITY_CODE, FACILITY_ITF}; +use windows_sys::core::HRESULT; +use windows_sys::Win32::Foundation::{SEVERITY_ERROR, S_OK}; +use windows_sys::Win32::System::Diagnostics::Debug::{FACILITY_CODE, FACILITY_ITF}; #[inline(always)] const fn make_hresult(severity: u32, facility: FACILITY_CODE, code: u32) -> HRESULT { - HRESULT(((severity << 31) | (facility.0 << 16) | code) as i32) + ((severity << 31) | (facility << 16) | code) as HRESULT } pub const WSL_E_PLUGIN_REQUIRES_UPDATE: HRESULT = @@ -60,7 +60,7 @@ pub const unsafe fn require_version( mod tests { use super::*; use crate::{WSLPluginAPIV1, WSLVersion}; - use windows::Win32::Foundation::S_OK; + use windows_sys::Win32::Foundation::S_OK; #[test] fn test_version_exact_match() { diff --git a/xtask/src/header_processing.rs b/xtask/src/header_processing.rs index 0df9e17..a8bde23 100644 --- a/xtask/src/header_processing.rs +++ b/xtask/src/header_processing.rs @@ -54,10 +54,9 @@ pub(crate) fn process>( target: Option<&str>, ) -> anyhow::Result { let mut builder = bindgen::Builder::default() - .raw_line("use windows::core::*;") - .raw_line("use windows::Win32::Foundation::*;") - .raw_line("use windows::Win32::Security::*;") - .raw_line("use windows::Win32::Networking::WinSock::SOCKET;") + .raw_line("use windows_sys::core::*;") + .raw_line("use windows_sys::Win32::Foundation::*;") + .raw_line("use windows_sys::Win32::Networking::WinSock::SOCKET;") .raw_line("#[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR;") .raw_line("#[allow(clippy::upper_case_acronyms)] type LPCSTR = PCSTR;") .raw_line("#[allow(clippy::upper_case_acronyms)] type DWORD = u32;") From ee4c66aa8a5f1497bc3d10901de50a6f69ed55e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20V=C3=A9ril?= Date: Wed, 16 Jul 2025 15:31:06 +0200 Subject: [PATCH 2/5] Fix Win32::Security needed for PSID --- wslpluginapi-sys/Cargo.toml | 1 + wslpluginapi-sys/build/WslPluginApi.rs | 1 + wslpluginapi-sys/build/checksum.sha256 | 2 +- xtask/src/header_processing.rs | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/wslpluginapi-sys/Cargo.toml b/wslpluginapi-sys/Cargo.toml index 52836d4..ee5d7a5 100644 --- a/wslpluginapi-sys/Cargo.toml +++ b/wslpluginapi-sys/Cargo.toml @@ -34,6 +34,7 @@ struct-field-names-as-array = { version = "0.3", features = [ version = ">0.32" features = [ "Win32_Foundation", + "Win32_Security", "Win32_System_Diagnostics_Debug", "Win32_Networking_WinSock", ] diff --git a/wslpluginapi-sys/build/WslPluginApi.rs b/wslpluginapi-sys/build/WslPluginApi.rs index 971ccef..b32a6a3 100644 --- a/wslpluginapi-sys/build/WslPluginApi.rs +++ b/wslpluginapi-sys/build/WslPluginApi.rs @@ -3,6 +3,7 @@ use windows_sys::core::*; use windows_sys::Win32::Foundation::*; use windows_sys::Win32::Networking::WinSock::SOCKET; +use windows_sys::Win32::Security::*; #[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR; #[allow(clippy::upper_case_acronyms)] diff --git a/wslpluginapi-sys/build/checksum.sha256 b/wslpluginapi-sys/build/checksum.sha256 index 38c59c8..496c2f7 100644 --- a/wslpluginapi-sys/build/checksum.sha256 +++ b/wslpluginapi-sys/build/checksum.sha256 @@ -1,2 +1,2 @@ 896ecb0b3b7e6467e6f4cda3b00201473ed7b7face1a31081671bc32b9e679d3 metadata.json -779d41150c68022860afabf494d9b0e5d1e311e1013ab977aaf75f7bfb977909 WslPluginApi.rs +684512437797ad4f770ae1ccfec3694a42af7066037a55661465a3a69a5cb419 WslPluginApi.rs diff --git a/xtask/src/header_processing.rs b/xtask/src/header_processing.rs index a8bde23..74d2f80 100644 --- a/xtask/src/header_processing.rs +++ b/xtask/src/header_processing.rs @@ -56,6 +56,7 @@ pub(crate) fn process>( let mut builder = bindgen::Builder::default() .raw_line("use windows_sys::core::*;") .raw_line("use windows_sys::Win32::Foundation::*;") + .raw_line("use windows_sys::Win32::Security::*;") .raw_line("use windows_sys::Win32::Networking::WinSock::SOCKET;") .raw_line("#[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR;") .raw_line("#[allow(clippy::upper_case_acronyms)] type LPCSTR = PCSTR;") From 7a69fb582ffeb7ac5990dca85c6b521fd8713621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20V=C3=A9ril?= Date: Fri, 18 Jul 2025 17:26:27 +0200 Subject: [PATCH 3/5] Reexport windows_sys --- wslpluginapi-sys/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/wslpluginapi-sys/src/lib.rs b/wslpluginapi-sys/src/lib.rs index e8e513b..13c8a75 100644 --- a/wslpluginapi-sys/src/lib.rs +++ b/wslpluginapi-sys/src/lib.rs @@ -1,5 +1,6 @@ #![cfg_attr(docsrs, feature(doc_auto_cfg))] mod bindgen; mod manual; +pub extern crate windows_sys; pub use crate::bindgen::*; pub use manual::*; From b38a31e4e049a01ff12513fa42495dd7b4f3b988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20V=C3=A9ril?= Date: Fri, 18 Jul 2025 18:16:43 +0200 Subject: [PATCH 4/5] Add comment and fix warning --- wslpluginapi-sys/build/WslPluginApi.rs | 1 + wslpluginapi-sys/build/checksum.sha256 | 2 +- wslpluginapi-sys/src/lib.rs | 1 + xtask/src/header_processing.rs | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/wslpluginapi-sys/build/WslPluginApi.rs b/wslpluginapi-sys/build/WslPluginApi.rs index b32a6a3..cf00f27 100644 --- a/wslpluginapi-sys/build/WslPluginApi.rs +++ b/wslpluginapi-sys/build/WslPluginApi.rs @@ -3,6 +3,7 @@ use windows_sys::core::*; use windows_sys::Win32::Foundation::*; use windows_sys::Win32::Networking::WinSock::SOCKET; +#[allow(clippy::unused_imports)] use windows_sys::Win32::Security::*; #[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR; diff --git a/wslpluginapi-sys/build/checksum.sha256 b/wslpluginapi-sys/build/checksum.sha256 index 496c2f7..7f0172d 100644 --- a/wslpluginapi-sys/build/checksum.sha256 +++ b/wslpluginapi-sys/build/checksum.sha256 @@ -1,2 +1,2 @@ 896ecb0b3b7e6467e6f4cda3b00201473ed7b7face1a31081671bc32b9e679d3 metadata.json -684512437797ad4f770ae1ccfec3694a42af7066037a55661465a3a69a5cb419 WslPluginApi.rs +9a52dd15a188ec2d672121a0659767506235332392becb56b5252115ad40687b WslPluginApi.rs diff --git a/wslpluginapi-sys/src/lib.rs b/wslpluginapi-sys/src/lib.rs index 13c8a75..04a7f89 100644 --- a/wslpluginapi-sys/src/lib.rs +++ b/wslpluginapi-sys/src/lib.rs @@ -1,6 +1,7 @@ #![cfg_attr(docsrs, feature(doc_auto_cfg))] mod bindgen; mod manual; +/// Re-export the [windows_sys] crate for use in higher-level crates pub extern crate windows_sys; pub use crate::bindgen::*; pub use manual::*; diff --git a/xtask/src/header_processing.rs b/xtask/src/header_processing.rs index 74d2f80..6f33c6f 100644 --- a/xtask/src/header_processing.rs +++ b/xtask/src/header_processing.rs @@ -56,6 +56,7 @@ pub(crate) fn process>( let mut builder = bindgen::Builder::default() .raw_line("use windows_sys::core::*;") .raw_line("use windows_sys::Win32::Foundation::*;") + .raw_line("#[allow(clippy::unused_imports)]") .raw_line("use windows_sys::Win32::Security::*;") .raw_line("use windows_sys::Win32::Networking::WinSock::SOCKET;") .raw_line("#[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR;") From 530c031d287b7628e4711dc14679ecfae693e2c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20V=C3=A9ril?= Date: Sun, 20 Jul 2025 12:41:56 +0200 Subject: [PATCH 5/5] Fix allow(unused_import) --- wslpluginapi-sys/build/WslPluginApi.rs | 2 +- wslpluginapi-sys/build/checksum.sha256 | 2 +- xtask/src/header_processing.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wslpluginapi-sys/build/WslPluginApi.rs b/wslpluginapi-sys/build/WslPluginApi.rs index cf00f27..ee2e4aa 100644 --- a/wslpluginapi-sys/build/WslPluginApi.rs +++ b/wslpluginapi-sys/build/WslPluginApi.rs @@ -3,7 +3,7 @@ use windows_sys::core::*; use windows_sys::Win32::Foundation::*; use windows_sys::Win32::Networking::WinSock::SOCKET; -#[allow(clippy::unused_imports)] +#[allow(unused_imports)] use windows_sys::Win32::Security::*; #[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR; diff --git a/wslpluginapi-sys/build/checksum.sha256 b/wslpluginapi-sys/build/checksum.sha256 index 7f0172d..4d01c01 100644 --- a/wslpluginapi-sys/build/checksum.sha256 +++ b/wslpluginapi-sys/build/checksum.sha256 @@ -1,2 +1,2 @@ 896ecb0b3b7e6467e6f4cda3b00201473ed7b7face1a31081671bc32b9e679d3 metadata.json -9a52dd15a188ec2d672121a0659767506235332392becb56b5252115ad40687b WslPluginApi.rs +62b630c8c307ef6321c5ca698a79adaca3b6375575de62ebb2d007e73dfc15cc WslPluginApi.rs diff --git a/xtask/src/header_processing.rs b/xtask/src/header_processing.rs index 6f33c6f..cc095ae 100644 --- a/xtask/src/header_processing.rs +++ b/xtask/src/header_processing.rs @@ -56,7 +56,7 @@ pub(crate) fn process>( let mut builder = bindgen::Builder::default() .raw_line("use windows_sys::core::*;") .raw_line("use windows_sys::Win32::Foundation::*;") - .raw_line("#[allow(clippy::unused_imports)]") + .raw_line("#[allow(unused_imports)]") .raw_line("use windows_sys::Win32::Security::*;") .raw_line("use windows_sys::Win32::Networking::WinSock::SOCKET;") .raw_line("#[allow(clippy::upper_case_acronyms)] type LPCWSTR = PCWSTR;")