deb / build-publish-client-arm64 (push) Failing after 4s
docker / builders (ci/android-ci.Dockerfile, punktfunk-android-ci) (push) Successful in 13s
docker / builders (ci/arch-ci.Dockerfile, punktfunk-arch-ci) (push) Successful in 11s
docker / builders (ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 11s
docker / builders (ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 11s
ci / web (push) Successful in 1m53s
docker / builders (ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 13s
ci / docs-site (push) Successful in 2m3s
docker / builders (--build-arg FEDORA_VERSION=44, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm, -f44) (push) Successful in 15s
docker / apps (., web/Dockerfile, punktfunk-web) (push) Successful in 30s
docker / apps (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m24s
windows-drivers / driver-build (push) Successful in 2m30s
docker / builders-arm64cross (push) Successful in 6s
docker / deploy-docs (push) Successful in 29s
android / android (push) Successful in 5m7s
apple / swift (push) Canceled after 4m50s
apple / screenshots (push) Canceled after 0s
deb / build-publish (push) Successful in 4m42s
arch / build-publish (push) Canceled after 5m25s
ci / rust (push) Canceled after 5m26s
ci / rust-arm64 (push) Canceled after 5m31s
deb / build-publish-host (push) Canceled after 5m19s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Canceled after 3m30s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Canceled after 3m26s
windows-host / package (push) Canceled after 2m29s
windows-host / winget-source (push) Canceled after 0s
windows-drivers / probe-and-proto (push) Successful in 37s
Device Manager, the firewall list and the monitor name all said "punktfunk". The brand
is Punktfunk.
Renamed: the [Strings] blocks of all four driver INFs (device descriptions, install
disks, provider, manufacturer), the `description` on every SwDeviceProfile the host
creates, pf-mouse's HID manufacturer + product strings, pf-vdisplay's IddCx endpoint
friendly + manufacturer names, the EDID 0xFC display-name descriptor — so Windows now
shows `Generic Monitor (Punktfunk)` — and the netsh firewall rule names.
The EDID edit is a single byte (0x70 -> 0x50) and needs no hand-patched checksum:
Edid::generate_with already recomputes both block checksums after patching the serial.
Deliberately left lowercase, because these are IDENTITIES rather than display names and
renaming them would orphan installed state:
* the SwDeviceCreate enumerator `w!("punktfunk")` — it IS the SWD\PUNKTFUNK\... path
every pad instance id is built from
* pf-paths' `join("punktfunk")` — C:\ProgramData\punktfunk
* the CN=punktfunk-driver cert subject, which purge_driver_certs and both driver build
scripts match by string
* install.rs' `lo.contains("punktfunk virtual display")` probes, whose haystack is
to_ascii_lowercase()d, so they already match the capitalised name
Nothing is orphaned by the renames that DID happen either: netsh rule names,
Get-NetFirewallRule -DisplayName and PowerShell's -match are all case-insensitive, so
the firewall delete paths and reset-pf-vdisplay.ps1's -AdapterName / -GhostMatch
defaults still reap what every release up to 0.22.1 created.
Cosmetic, with two consequences worth knowing: it takes a driver rebuild + re-sign to
appear at all, and an existing devnode keeps its cached FriendlyName until it is
recreated.
Co-Authored-By: Claude Opus 5 (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)"
|