From 85c75e7ad6c53b8892a89fc8f1d71bd7e5252fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=B6glinger-Stelzer?= Date: Mon, 11 May 2020 14:19:27 +0200 Subject: [PATCH] Implemented overriding VID & PID for DS4 target --- sys/Ds4Pdo.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/Ds4Pdo.cpp b/sys/Ds4Pdo.cpp index 1ec122c..cdf0d05 100644 --- a/sys/Ds4Pdo.cpp +++ b/sys/Ds4Pdo.cpp @@ -19,7 +19,7 @@ NTSTATUS ViGEm::Bus::Targets::EmulationTargetDS4::PdoPrepareDevice(PWDFDEVICE_IN PUNICODE_STRING DeviceId, PUNICODE_STRING DeviceDescription) { NTSTATUS status; - UNICODE_STRING buffer; + DECLARE_UNICODE_STRING_SIZE(buffer, _maxHardwareIdLength); // prepare device description status = RtlUnicodeStringInit(DeviceDescription, _deviceDescription); @@ -33,7 +33,8 @@ NTSTATUS ViGEm::Bus::Targets::EmulationTargetDS4::PdoPrepareDevice(PWDFDEVICE_IN } // Set hardware IDs - RtlUnicodeStringInit(&buffer, L"USB\\VID_054C&PID_05C4&REV_0100"); + RtlUnicodeStringPrintf(&buffer, L"USB\\VID_%04X&PID_%04X&REV_0100", + this->VendorId, this->ProductId); status = WdfPdoInitAddHardwareID(DeviceInit, &buffer); if (!NT_SUCCESS(status)) @@ -47,7 +48,8 @@ NTSTATUS ViGEm::Bus::Targets::EmulationTargetDS4::PdoPrepareDevice(PWDFDEVICE_IN RtlUnicodeStringCopy(DeviceId, &buffer); - RtlUnicodeStringInit(&buffer, L"USB\\VID_054C&PID_05C4"); + RtlUnicodeStringPrintf(&buffer, L"USB\\VID_%04X&PID_%04X", + this->VendorId, this->ProductId); status = WdfPdoInitAddHardwareID(DeviceInit, &buffer); if (!NT_SUCCESS(status))