diff --git a/sys/Ds4Pdo.cpp b/sys/Ds4Pdo.cpp
index 095f725..3cbe1c6 100644
--- a/sys/Ds4Pdo.cpp
+++ b/sys/Ds4Pdo.cpp
@@ -10,18 +10,12 @@ using namespace ViGEm::Bus::Targets;
PCWSTR EmulationTargetDS4::_deviceDescription = L"Virtual DualShock 4 Controller";
-NTSTATUS EmulationTargetDS4::PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT VID, USHORT PID,
+NTSTATUS EmulationTargetDS4::PrepareDevice(PWDFDEVICE_INIT DeviceInit,
PUNICODE_STRING DeviceId, PUNICODE_STRING DeviceDescription)
{
NTSTATUS status;
UNICODE_STRING buffer;
-
- //
- // TODO: implement usage!
- //
- UNREFERENCED_PARAMETER(VID);
- UNREFERENCED_PARAMETER(PID);
-
+
// prepare device description
status = RtlUnicodeStringInit(DeviceDescription, _deviceDescription);
if (!NT_SUCCESS(status))
diff --git a/sys/Ds4Pdo.hpp b/sys/Ds4Pdo.hpp
index 3866e68..88cea3f 100644
--- a/sys/Ds4Pdo.hpp
+++ b/sys/Ds4Pdo.hpp
@@ -13,7 +13,7 @@ namespace ViGEm::Bus::Targets
EmulationTargetDS4() = default;
~EmulationTargetDS4() = default;
- NTSTATUS PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT VID, USHORT PID,
+ NTSTATUS PrepareDevice(PWDFDEVICE_INIT DeviceInit,
PUNICODE_STRING DeviceId, PUNICODE_STRING DeviceDescription) override;
NTSTATUS PrepareHardware(WDFDEVICE Device) override;
diff --git a/sys/EmulationTargetPDO.hpp b/sys/EmulationTargetPDO.hpp
index 9c96983..a5ccea7 100644
--- a/sys/EmulationTargetPDO.hpp
+++ b/sys/EmulationTargetPDO.hpp
@@ -25,7 +25,7 @@ namespace ViGEm::Bus::Core
virtual ~EmulationTargetPDO() = default;
- virtual NTSTATUS PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT VendorId, USHORT ProductId,
+ virtual NTSTATUS PrepareDevice(PWDFDEVICE_INIT DeviceInit,
PUNICODE_STRING DeviceId, PUNICODE_STRING DeviceDescription) = 0;
virtual NTSTATUS PrepareHardware(WDFDEVICE Device) = 0;
diff --git a/sys/ViGEmBus.vcxproj b/sys/ViGEmBus.vcxproj
index 404f092..dcafc77 100644
--- a/sys/ViGEmBus.vcxproj
+++ b/sys/ViGEmBus.vcxproj
@@ -122,6 +122,7 @@
true
true
trace.h
+ stdcpp17
@@ -139,6 +140,7 @@
true
true
trace.h
+ stdcpp17
@@ -153,6 +155,7 @@
true
true
trace.h
+ stdcpp17
diff --git a/sys/XusbPdo.cpp b/sys/XusbPdo.cpp
index 5b1c5a9..c492915 100644
--- a/sys/XusbPdo.cpp
+++ b/sys/XusbPdo.cpp
@@ -6,13 +6,15 @@
#include
-using namespace ViGEm::Bus::Targets;
-PCWSTR EmulationTargetXUSB::_deviceDescription = L"Virtual Xbox 360 Controller";
+PCWSTR ViGEm::Bus::Targets::EmulationTargetXUSB::_deviceDescription = L"Virtual Xbox 360 Controller";
-NTSTATUS EmulationTargetXUSB::PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT VID,
- USHORT PID, PUNICODE_STRING DeviceId,
- PUNICODE_STRING DeviceDescription)
+ViGEm::Bus::Targets::EmulationTargetXUSB::EmulationTargetXUSB() : EmulationTargetPDO(0x045E, 0x028E)
+{
+}
+
+NTSTATUS ViGEm::Bus::Targets::EmulationTargetXUSB::PrepareDevice(PWDFDEVICE_INIT DeviceInit, PUNICODE_STRING DeviceId,
+ PUNICODE_STRING DeviceDescription)
{
NTSTATUS status;
DECLARE_UNICODE_STRING_SIZE(buffer, _maxHardwareIdLength);
@@ -29,7 +31,7 @@ NTSTATUS EmulationTargetXUSB::PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT V
}
// Set hardware ID
- RtlUnicodeStringPrintf(&buffer, L"USB\\VID_%04X&PID_%04X", VID, PID);
+ RtlUnicodeStringPrintf(&buffer, L"USB\\VID_%04X&PID_%04X", this->VendorId, this->ProductId);
RtlUnicodeStringCopy(DeviceId, &buffer);
@@ -96,7 +98,7 @@ NTSTATUS EmulationTargetXUSB::PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT V
return STATUS_SUCCESS;
}
-NTSTATUS EmulationTargetXUSB::PrepareHardware(WDFDEVICE Device)
+NTSTATUS ViGEm::Bus::Targets::EmulationTargetXUSB::PrepareHardware(WDFDEVICE Device)
{
WDF_QUERY_INTERFACE_CONFIG ifaceCfg;
@@ -214,7 +216,7 @@ NTSTATUS EmulationTargetXUSB::PrepareHardware(WDFDEVICE Device)
return STATUS_SUCCESS;
}
-NTSTATUS EmulationTargetXUSB::InitContext(WDFDEVICE Device)
+NTSTATUS ViGEm::Bus::Targets::EmulationTargetXUSB::InitContext(WDFDEVICE Device)
{
WDF_OBJECT_ATTRIBUTES attributes;
PUCHAR blobBuffer;
@@ -301,7 +303,7 @@ NTSTATUS EmulationTargetXUSB::InitContext(WDFDEVICE Device)
return STATUS_SUCCESS;
}
-VOID EmulationTargetXUSB::GetConfigurationDescriptorType(PUCHAR Buffer, ULONG Length)
+VOID ViGEm::Bus::Targets::EmulationTargetXUSB::GetConfigurationDescriptorType(PUCHAR Buffer, ULONG Length)
{
UCHAR XusbDescriptorData[XUSB_DESCRIPTOR_SIZE] =
{
@@ -443,7 +445,7 @@ VOID EmulationTargetXUSB::GetConfigurationDescriptorType(PUCHAR Buffer, ULONG Le
RtlCopyBytes(Buffer, XusbDescriptorData, Length);
}
-VOID EmulationTargetXUSB::GetDeviceDescriptorType(PUSB_DEVICE_DESCRIPTOR pDescriptor)
+VOID ViGEm::Bus::Targets::EmulationTargetXUSB::GetDeviceDescriptorType(PUSB_DEVICE_DESCRIPTOR pDescriptor)
{
pDescriptor->bLength = 0x12;
pDescriptor->bDescriptorType = USB_DEVICE_DESCRIPTOR_TYPE;
@@ -461,7 +463,7 @@ VOID EmulationTargetXUSB::GetDeviceDescriptorType(PUSB_DEVICE_DESCRIPTOR pDescri
pDescriptor->bNumConfigurations = 0x01;
}
-VOID EmulationTargetXUSB::SelectConfiguration(PUSBD_INTERFACE_INFORMATION pInfo)
+VOID ViGEm::Bus::Targets::EmulationTargetXUSB::SelectConfiguration(PUSBD_INTERFACE_INFORMATION pInfo)
{
TraceEvents(TRACE_LEVEL_VERBOSE,
TRACE_XUSB,
diff --git a/sys/XusbPdo.hpp b/sys/XusbPdo.hpp
index f555f31..8f0bd24 100644
--- a/sys/XusbPdo.hpp
+++ b/sys/XusbPdo.hpp
@@ -21,10 +21,10 @@ namespace ViGEm::Bus::Targets
class EmulationTargetXUSB : public Core::EmulationTargetPDO
{
public:
- EmulationTargetXUSB() = default;
+ EmulationTargetXUSB();
~EmulationTargetXUSB() = default;
- NTSTATUS PrepareDevice(PWDFDEVICE_INIT DeviceInit, USHORT VID, USHORT PID,
+ NTSTATUS PrepareDevice(PWDFDEVICE_INIT DeviceInit,
PUNICODE_STRING DeviceId, PUNICODE_STRING DeviceDescription) override;
NTSTATUS PrepareHardware(WDFDEVICE Device) override;