NTSTATUS BuildTransferDescriptorChain(IN PVOID TransferBuffer, IN ULONG TransferBufferLength, IN UCHAR PidCode, OUT POHCI_GENERAL_TD * OutFirstDescriptor, OUT POHCI_GENERAL_TD * OutLastDescriptor, OUT PULONG OutTransferBufferOffset);
VOID InitDescriptor(IN POHCI_GENERAL_TD CurrentDescriptor, IN PVOID TransferBuffer, IN ULONG TransferBufferLength, IN UCHAR PidCode);
-
// constructor / destructor
- CUSBRequest(IUnknown *OuterUnknown){}
- virtual ~CUSBRequest(){}
+ CUSBRequest(IUnknown *OuterUnknown);
+ virtual ~CUSBRequest();
protected:
LONG m_Ref;
PVOID m_Base;
};
+//----------------------------------------------------------------------------------------
+CUSBRequest::CUSBRequest(IUnknown *OuterUnknown) :
+ m_CompletionEvent(NULL)
+{
+ UNREFERENCED_PARAMETER(OuterUnknown);
+}
+
+//----------------------------------------------------------------------------------------
+CUSBRequest::~CUSBRequest()
+{
+ if (m_CompletionEvent != NULL)
+ {
+ ExFreePoolWithTag(m_CompletionEvent, TAG_USBOHCI);
+ }
+}
+
//----------------------------------------------------------------------------------------
NTSTATUS
STDMETHODCALLTYPE