feat(windows): Rust UMDF virtual DualSense driver + shared-memory host channel
A self-authored UMDF2 HID minidriver (packaging/windows/dualsense-driver) that presents a virtual Sony DualSense (VID 054C/PID 0CE6) on Windows — adaptive triggers / lightbar / rumble that ViGEm structurally cannot deliver. Validated live on an RTX box (Win11 25H2, Secure Boot ON): the self-signed driver loads, Steam recognizes it as a genuine DualSense, and a game's 0x02 output report reaches the driver. The host<->driver channel is a named shared-memory section (Global\pfds-shm-<idx>) the host creates and the driver maps from its timer: input report 0x01 host->driver, output report 0x02 driver->host — input and output proven both directions live. This bypasses hidclass, which gates both a custom device interface and custom IOCTLs on the HID node, and UMDF has no control device. Built in Rust on microsoft/windows-drivers-rs. The load wall was the PE FORCE_INTEGRITY bit that wdk-build sets via /INTEGRITYCHECK (forces a CI-trusted page-hash signature a self-signed cert cannot satisfy) — cleared post-build. See packaging/windows/dualsense-driver/README.md for the build/sign/install recipe. Deferred: SwDeviceCreate per-session device lifecycle; removing the inert in-driver IOCTL-channel code; full on-glass session test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
[package]
|
||||
edition = "2024"
|
||||
name = "pf-dualsense"
|
||||
version = "0.1.0"
|
||||
publish = false
|
||||
license = "MIT OR Apache-2.0"
|
||||
description = "punktfunk virtual DualSense UMDF2 HID minidriver (M0 spike)"
|
||||
|
||||
[package.metadata.wdk.driver-model]
|
||||
driver-type = "UMDF"
|
||||
target-umdf-version-minor = 31
|
||||
umdf-version-major = 2
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
[build-dependencies]
|
||||
wdk-build.path = "../../crates/wdk-build"
|
||||
|
||||
[dependencies]
|
||||
wdk.path = "../../crates/wdk"
|
||||
wdk-sys.path = "../../crates/wdk-sys"
|
||||
|
||||
[features]
|
||||
default = ["hid"]
|
||||
hid = ["wdk-sys/hid"]
|
||||
nightly = ["wdk-sys/nightly", "wdk/nightly"]
|
||||
|
||||
[profile.dev]
|
||||
lto = true
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
|
||||
# Standalone package (not part of the windows-drivers-rs root workspace).
|
||||
[workspace]
|
||||
Reference in New Issue
Block a user