aa159df33f
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>
37 lines
720 B
TOML
37 lines
720 B
TOML
[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]
|