92e68024f1
Fold the pf-dualsense (DualSense / DualShock 4) and pf-xusb (Xbox 360 / XInput)
UMDF drivers into the in-tree drivers workspace (their source had stale
../../crates/wdk-* path-deps from before the wdk vendoring reorg and could no
longer build at all) and build them from source per release, exactly like
pf-vdisplay - same anti-stale reasoning. One `cargo build --release` now builds
all three drivers against the vendored wdk-sys (incl. the bindgen 0.72 pin), and
build-gamepad-drivers.ps1 signs pf_dualsense + pf_xusb (clear FORCE_INTEGRITY ->
sign dll -> stampinf -> Inf2Cat -> sign cat) with one shared cert + .cer,
matching the layout install-gamepad-drivers.ps1 expects. pack-host-installer.ps1
builds + stages them instead of the retired checked-in binaries.
Validated on the runner: the whole workspace (pf-vdisplay + pf-dualsense +
pf-xusb) builds with CARGO_TARGET_DIR=C:\t set, and build-gamepad-drivers.ps1
produces signed pf_dualsense.{dll,inf,cat} + pf_xusb.{dll,inf,cat} + the .cer.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
65 lines
1.6 KiB
Plaintext
65 lines
1.6 KiB
Plaintext
;/*++
|
|
; punktfunk virtual Xbox 360 XUSB companion — a non-HID UMDF2 driver that registers the XUSB
|
|
; device-interface GUID {EC87F1E3-...} and answers the buffered XInput IOCTLs, so classic
|
|
; XInputGetState() reads the pad without a kernel bus driver (the HIDMaestro approach). System class,
|
|
; hosted by the in-box WUDFRd reflector. Created per-session by the host via SwDeviceCreate
|
|
; (hardware id `pf_xusb`); `root\pf_xusb` is the devgen/devcon test id.
|
|
;--*/
|
|
[Version]
|
|
Signature = "$WINDOWS NT$"
|
|
Class = System
|
|
ClassGuid = {4D36E97D-E325-11CE-BFC1-08002BE10318}
|
|
Provider = %ProviderString%
|
|
CatalogFile = pf_xusb.cat
|
|
PnpLockdown = 1
|
|
|
|
[DestinationDirs]
|
|
DefaultDestDir = 13
|
|
|
|
[SourceDisksNames]
|
|
1 = %DiskId1%,,,""
|
|
|
|
[SourceDisksFiles]
|
|
pf_xusb.dll = 1,,
|
|
|
|
[Manufacturer]
|
|
%StdMfg%=Standard, NT$ARCH$.10.0...22000
|
|
|
|
[Standard.NT$ARCH$.10.0...22000]
|
|
%DeviceDesc%=pfXusb, root\pf_xusb, pf_xusb
|
|
|
|
[pfXusb.NT]
|
|
CopyFiles=Drivers_Dir
|
|
Include=WUDFRD.inf
|
|
Needs=WUDFRD.NT
|
|
|
|
[Drivers_Dir]
|
|
pf_xusb.dll
|
|
|
|
[pfXusb.NT.HW]
|
|
Include=WUDFRD.inf
|
|
Needs=WUDFRD.NT.HW
|
|
|
|
[pfXusb.NT.Services]
|
|
Include=WUDFRD.inf
|
|
Needs=WUDFRD.NT.Services
|
|
|
|
[pfXusb.NT.Wdf]
|
|
UmdfService=pf_xusb, pfXusb_Install
|
|
UmdfServiceOrder=pf_xusb
|
|
UmdfKernelModeClientPolicy=AllowKernelModeClients
|
|
UmdfFileObjectPolicy=AllowNullAndUnknownFileObjects
|
|
UmdfMethodNeitherAction=Copy
|
|
UmdfFsContextUsePolicy=CanUseFsContext2
|
|
UmdfHostProcessSharing=ProcessSharingDisabled
|
|
|
|
[pfXusb_Install]
|
|
UmdfLibraryVersion=$UMDFVERSION$
|
|
ServiceBinary=%13%\pf_xusb.dll
|
|
|
|
[Strings]
|
|
ProviderString = "punktfunk"
|
|
StdMfg = "(Standard system devices)"
|
|
DiskId1 = "punktfunk XUSB Installation Disk"
|
|
DeviceDesc = "punktfunk Virtual Xbox 360 (XUSB)"
|