summaryrefslogtreecommitdiff
path: root/UsbDk/WdfDevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'UsbDk/WdfDevice.cpp')
-rw-r--r--UsbDk/WdfDevice.cpp6
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()