From de907c7081d0bea7bc34a382eeb5005031d8803d Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Sat, 28 Feb 2026 09:44:18 -0800 Subject: [PATCH 1/2] fix: unnecessary trailing commas and nightly import ordering - Remove unnecessary trailing commas in format!/println! macros to pass new nightly clippy::unnecessary_trailing_comma lint - Reorder underscore-prefixed imports to match nightly rustfmt sorting --- general/echo/kmdf/driver/DriverSync/src/device.rs | 4 ++-- general/echo/kmdf/driver/DriverSync/src/queue.rs | 8 ++++---- general/echo/kmdf/exe/src/main.rs | 8 ++++---- tools/dv/kmdf/fail_driver_pool_leak/src/driver.rs | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/general/echo/kmdf/driver/DriverSync/src/device.rs b/general/echo/kmdf/driver/DriverSync/src/device.rs index e25e274..d452af1 100644 --- a/general/echo/kmdf/driver/DriverSync/src/device.rs +++ b/general/echo/kmdf/driver/DriverSync/src/device.rs @@ -4,6 +4,8 @@ use wdk::{nt_success, paged_code, println}; use wdk_sys::{ call_unsafe_wdf_function_binding, + _WDF_EXECUTION_LEVEL, + _WDF_SYNCHRONIZATION_SCOPE, NTSTATUS, STATUS_SUCCESS, WDFDEVICE, @@ -13,8 +15,6 @@ use wdk_sys::{ WDF_NO_HANDLE, WDF_OBJECT_ATTRIBUTES, WDF_PNPPOWER_EVENT_CALLBACKS, - _WDF_EXECUTION_LEVEL, - _WDF_SYNCHRONIZATION_SCOPE, }; use crate::{ diff --git a/general/echo/kmdf/driver/DriverSync/src/queue.rs b/general/echo/kmdf/driver/DriverSync/src/queue.rs index dc9c8e3..3780c95 100644 --- a/general/echo/kmdf/driver/DriverSync/src/queue.rs +++ b/general/echo/kmdf/driver/DriverSync/src/queue.rs @@ -7,6 +7,10 @@ use wdk::{nt_success, paged_code, println, wdf}; use wdk_sys::{ call_unsafe_wdf_function_binding, ntddk::{ExAllocatePool2, ExFreePool}, + _WDF_EXECUTION_LEVEL, + _WDF_IO_QUEUE_DISPATCH_TYPE, + _WDF_SYNCHRONIZATION_SCOPE, + _WDF_TRI_STATE, NTSTATUS, POOL_FLAG_NON_PAGED, SIZE_T, @@ -25,10 +29,6 @@ use wdk_sys::{ WDF_NO_HANDLE, WDF_OBJECT_ATTRIBUTES, WDF_TIMER_CONFIG, - _WDF_EXECUTION_LEVEL, - _WDF_IO_QUEUE_DISPATCH_TYPE, - _WDF_SYNCHRONIZATION_SCOPE, - _WDF_TRI_STATE, }; use crate::{ diff --git a/general/echo/kmdf/exe/src/main.rs b/general/echo/kmdf/exe/src/main.rs index 10075fd..13b0940 100644 --- a/general/echo/kmdf/exe/src/main.rs +++ b/general/echo/kmdf/exe/src/main.rs @@ -413,7 +413,7 @@ fn async_io_work(io_type: u32) -> Result<(), Box> { // - Memory safety: Returns u32 value (no pointer dereferences) let error = unsafe { GetLastError() }; if error != ERROR_IO_PENDING { - return Err(format!("{i}th Read failed {error}",).into()); + return Err(format!("{i}th Read failed {error}").into()); } } } else { @@ -488,7 +488,7 @@ fn async_io_work(io_type: u32) -> Result<(), Box> { } if io_type == READER_TYPE { - println!("Number of bytes read by request number {i} is {number_of_bytes_transferred}",); + println!("Number of bytes read by request number {i} is {number_of_bytes_transferred}"); if globals.limited_loops { remaining_requests_to_receive -= 1; @@ -539,7 +539,7 @@ fn async_io_work(io_type: u32) -> Result<(), Box> { } } else { println!( - "Number of bytes written by request number {i} is {number_of_bytes_transferred}", + "Number of bytes written by request number {i} is {number_of_bytes_transferred}" ); if globals.limited_loops { @@ -636,7 +636,7 @@ fn get_device_path(interface_guid: &Uuid) -> Result<(), Box> { if config_ret != DeviceAndDriverInstallation::CR_SUCCESS { return Err( - format!("Error 0x{config_ret:08X} retrieving device interface list size.",).into(), + format!("Error 0x{config_ret:08X} retrieving device interface list size.").into(), ); } diff --git a/tools/dv/kmdf/fail_driver_pool_leak/src/driver.rs b/tools/dv/kmdf/fail_driver_pool_leak/src/driver.rs index 044ae2e..2fcfbb1 100644 --- a/tools/dv/kmdf/fail_driver_pool_leak/src/driver.rs +++ b/tools/dv/kmdf/fail_driver_pool_leak/src/driver.rs @@ -5,6 +5,8 @@ use wdk::{nt_success, paged_code, println}; use wdk_sys::{ call_unsafe_wdf_function_binding, ntddk::ExAllocatePool2, + _WDF_EXECUTION_LEVEL, + _WDF_SYNCHRONIZATION_SCOPE, DRIVER_OBJECT, NTSTATUS, PCUNICODE_STRING, @@ -19,8 +21,6 @@ use wdk_sys::{ WDF_NO_HANDLE, WDF_NO_OBJECT_ATTRIBUTES, WDF_OBJECT_ATTRIBUTES, - _WDF_EXECUTION_LEVEL, - _WDF_SYNCHRONIZATION_SCOPE, }; use crate::{GLOBAL_BUFFER, GUID_DEVINTERFACE}; From bcbb0437ac93cdba7c9b8c741bd7adcd5931b81c Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Sat, 7 Mar 2026 17:27:08 -0800 Subject: [PATCH 2/2] ci: workaround RUSTFLAGS leaking into cargo-make rust-script builds Unset RUSTFLAGS for the cargo-make step in build.yaml to prevent -D warnings from leaking into rust-script compilation of wdk-build. Only cargo-make is affected since it uses rust-script to compile inline build scripts where wdk-build is a path dependency (via symlink), bypassing cargo's --cap-lints. cargo-wdk and cargo install are normal cargo operations with proper --cap-lints handling and do not need this workaround. Temporary workaround until microsoft/windows-drivers-rs#629 is merged and a new wdk-build is published. Tracked in ADO Bug #5396440. --- .github/workflows/build.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e9437a1..75adf50 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -107,7 +107,13 @@ jobs: tool: cargo-make - name: Build and Package Sample Drivers - run: cargo make default +${{ matrix.rust_toolchain }} --locked --profile ${{ matrix.cargo_profile }} --target ${{ matrix.target_triple.name }} + # Unset RUSTFLAGS for cargo-make to work around RUSTFLAGS leaking into + # rust-script compilation of wdk-build (path dep via symlink defeats + # --cap-lints). Upstream fix: microsoft/windows-drivers-rs#629 + run: | + $env:RUSTFLAGS = $null + cargo make default +${{ matrix.rust_toolchain }} --locked --profile ${{ matrix.cargo_profile }} --target ${{ matrix.target_triple.name }} + shell: pwsh # Steps to use cargo-wdk to build and package drivers - name: Install cargo-wdk binary