diff options
Diffstat (limited to 'UsbDk/WdfDevice.cpp')
-rw-r--r-- | UsbDk/WdfDevice.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/UsbDk/WdfDevice.cpp b/UsbDk/WdfDevice.cpp index fe09930..566a078 100644 --- a/UsbDk/WdfDevice.cpp +++ b/UsbDk/WdfDevice.cpp @@ -125,6 +125,8 @@ NTSTATUS CWdfDevice::Create(CPreAllocatedDeviceInit &DeviceInit, WDF_OBJECT_ATTR TraceEvents(TRACE_LEVEL_ERROR, TRACE_WDFDEVICE, "%!FUNC! Device name caching failed %!STATUS!", status); } + m_LowerDeviceObj = IoGetLowerDeviceObject(WdmObject()); + return status; } @@ -170,6 +172,10 @@ void CWdfSpecificQueue::InitConfig(WDF_IO_QUEUE_CONFIG &QueueConfig) CWdfDevice::~CWdfDevice() { TraceEvents(TRACE_LEVEL_INFORMATION, TRACE_WDFDEVICE, "%!FUNC! Deleting device %wZ", m_CachedName); + if (m_LowerDeviceObj) + { + ObDereferenceObject(m_LowerDeviceObj); + } } NTSTATUS CWdfDevice::CacheDeviceName() |