diff --git a/sys/Ds4Pdo.cpp b/sys/Ds4Pdo.cpp index c949f82..3bbd5b3 100644 --- a/sys/Ds4Pdo.cpp +++ b/sys/Ds4Pdo.cpp @@ -443,6 +443,12 @@ NTSTATUS ViGEm::Bus::Targets::EmulationTargetDS4::SelectConfiguration(PURB Urb) return STATUS_SUCCESS; } +void ViGEm::Bus::Targets::EmulationTargetDS4::AbortPipe() +{ + // Higher driver shutting down, emptying PDOs queues + WdfTimerStop(this->PendingUsbInRequestsTimer, TRUE); +} + VOID ViGEm::Bus::Targets::EmulationTargetDS4::PendingUsbRequestsTimerFunc( _In_ WDFTIMER Timer ) diff --git a/sys/Ds4Pdo.hpp b/sys/Ds4Pdo.hpp index 8dc7d8a..38a0e0d 100644 --- a/sys/Ds4Pdo.hpp +++ b/sys/Ds4Pdo.hpp @@ -28,6 +28,7 @@ namespace ViGEm::Bus::Targets NTSTATUS SelectConfiguration(PURB Urb) override; + void AbortPipe() override; private: static PCWSTR _deviceDescription; diff --git a/sys/XusbPdo.cpp b/sys/XusbPdo.cpp index b43e65c..e9ec14f 100644 --- a/sys/XusbPdo.cpp +++ b/sys/XusbPdo.cpp @@ -597,3 +597,7 @@ NTSTATUS ViGEm::Bus::Targets::EmulationTargetXUSB::SelectConfiguration(PURB Urb) return STATUS_SUCCESS; } + +void ViGEm::Bus::Targets::EmulationTargetXUSB::AbortPipe() +{ +} diff --git a/sys/XusbPdo.hpp b/sys/XusbPdo.hpp index df34783..0b546d7 100644 --- a/sys/XusbPdo.hpp +++ b/sys/XusbPdo.hpp @@ -36,6 +36,7 @@ namespace ViGEm::Bus::Targets NTSTATUS SelectConfiguration(PURB Urb) override; + void AbortPipe() override; private: static PCWSTR _deviceDescription;