diff --git a/UsbDk/ControlDevice.cpp b/UsbDk/ControlDevice.cpp index fe88e4b..aff9b43 100644 --- a/UsbDk/ControlDevice.cpp +++ b/UsbDk/ControlDevice.cpp @@ -255,7 +255,7 @@ bool CUsbDkControlDevice::UsbDeviceExists(const USB_DK_DEVICE_ID &ID) return !EnumUsbDevicesByID(ID, ConstFalse); } -NTSTATUS CUsbDkControlDevice::ResetUsbDevice(const USB_DK_DEVICE_ID &DeviceID) +PDEVICE_OBJECT CUsbDkControlDevice::GetPDOByDeviceID(const USB_DK_DEVICE_ID &DeviceID) { PDEVICE_OBJECT PDO = nullptr; @@ -270,6 +270,16 @@ NTSTATUS CUsbDkControlDevice::ResetUsbDevice(const USB_DK_DEVICE_ID &DeviceID) if (PDO == nullptr) { TraceEvents(TRACE_LEVEL_ERROR, TRACE_CONTROLDEVICE, "%!FUNC! PDO was not found"); + } + + return PDO; +} + +NTSTATUS CUsbDkControlDevice::ResetUsbDevice(const USB_DK_DEVICE_ID &DeviceID) +{ + PDEVICE_OBJECT PDO = GetPDOByDeviceID(DeviceID); + if (PDO == nullptr) + { return STATUS_NOT_FOUND; } diff --git a/UsbDk/ControlDevice.h b/UsbDk/ControlDevice.h index f754e9c..eaf40ba 100644 --- a/UsbDk/ControlDevice.h +++ b/UsbDk/ControlDevice.h @@ -131,6 +131,7 @@ private: template bool EnumUsbDevicesByID(const USB_DK_DEVICE_ID &ID, TFunctor Functor); + PDEVICE_OBJECT GetPDOByDeviceID(const USB_DK_DEVICE_ID &DeviceID); bool UsbDeviceExists(const USB_DK_DEVICE_ID &ID);