ReactOS 0.4.16-dev-1948-gd260c1d
FxUsbPipeRequestContext Struct Reference

#include <fxusbpipe.hpp>

Inheritance diagram for FxUsbPipeRequestContext:
Collaboration diagram for FxUsbPipeRequestContext:

Public Member Functions

 FxUsbPipeRequestContext (__in FX_URB_TYPE FxUrbType)
 
 ~FxUsbPipeRequestContext (VOID)
 
__checkReturn NTSTATUS AllocateUrb (__in USBD_HANDLE USBDHandle)
 
virtual VOID Dispose (VOID)
 
VOID SetInfo (__in WDF_USB_REQUEST_TYPE Type, __in USBD_PIPE_HANDLE PipeHandle, __in USHORT Function)
 
VOID SetInfo (__in WDF_USB_REQUEST_TYPE Type, __in WINUSB_INTERFACE_HANDLE WinUsbHandle, __in UCHAR PipeId, __in USHORT Function)
 
USBD_STATUS GetUsbdStatus (VOID)
 
- Public Member Functions inherited from FxUsbRequestContext
 FxUsbRequestContext (__in FX_REQUEST_CONTEXT_TYPE Type)
 
virtual USBD_STATUS GetUsbdStatus (VOID)=0
 
virtual VOID CopyParameters (__in FxRequestBase *Request)
 
VOID SetUsbType (__in WDF_USB_REQUEST_TYPE Type)
 
VOID __inline InitUsbParameters (VOID)
 
- Public Member Functions inherited from FxRequestContext
 FxRequestContext (__in FX_REQUEST_CONTEXT_TYPE Type)
 
virtual ~FxRequestContext (VOID)
 
virtual VOID Dispose (VOID)
 
virtual VOID StoreAndReferenceMemory (__in FxRequestBuffer *Buffer)
 
virtual VOID ReleaseAndRestore (__in FxRequestBase *Request)
 
__inline BOOLEAN IsType (__in FX_REQUEST_CONTEXT_TYPE Type)
 
virtual VOID CopyParameters (__in FxRequestBase *Request)
 
VOID FormatWriteParams (__in_opt IFxMemory *WriteMemory, __in_opt PWDFMEMORY_OFFSET WriteOffsets)
 
VOID FormatReadParams (__in_opt IFxMemory *ReadMemory, __in_opt PWDFMEMORY_OFFSET ReadOffsets)
 
VOID FormatOtherParams (__in FxInternalIoctlParams *InternalIoctlParams)
 
- Public Member Functions inherited from FxStump
PVOID operator new (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals)
 
PVOID operator new (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in POOL_TYPE PoolType)
 
VOID operator delete (__in PVOID pointer)
 
PVOID operator new[] (__in size_t Size, __in PFX_DRIVER_GLOBALS FxDriverGlobals)
 
VOID operator delete[] (__in PVOID pointer)
 

Public Attributes

_URB_PIPE_REQUEST m_UrbLegacy
 
_URB_PIPE_REQUESTm_Urb
 
- Public Attributes inherited from FxUsbRequestContext
WDF_USB_REQUEST_COMPLETION_PARAMS m_UsbParameters
 
UMURB m_UmUrb
 
- Public Attributes inherited from FxRequestContext
WDF_REQUEST_COMPLETION_PARAMS m_CompletionParams
 
IFxMemorym_RequestMemory
 
FX_REQUEST_CONTEXT_TYPE m_RequestType
 

Private Attributes

USBD_HANDLE m_USBDHandle
 

Additional Inherited Members

- Protected Member Functions inherited from FxRequestContext
VOID __inline InitCompletionParams (VOID)
 
- Protected Member Functions inherited from FxStump
 FxStump (VOID)
 
- Static Protected Member Functions inherited from FxRequestContext
static VOID _StoreAndReferenceMemoryWorker (__in PVOID Tag, __deref_out_opt IFxMemory **PPMemory, __in FxRequestBuffer *Buffer)
 

Detailed Description

Definition at line 123 of file fxusbpipe.hpp.

Constructor & Destructor Documentation

◆ FxUsbPipeRequestContext()

FxUsbPipeRequestContext::FxUsbPipeRequestContext ( __in FX_URB_TYPE  FxUrbType)

Definition at line 966 of file fxusbpipe.cpp.

968 :
970{
972
973 if (FxUrbType == FxUrbTypeLegacy) {
975 }
976 else {
977 m_Urb = NULL;
978 }
979}
#define NULL
Definition: types.h:112
@ FX_RCT_USB_PIPE_REQUEST
@ FxUrbTypeLegacy
Definition: fxusbdevice.hpp:27
USBD_HANDLE m_USBDHandle
Definition: fxusbpipe.hpp:167
_URB_PIPE_REQUEST m_UrbLegacy
Definition: fxusbpipe.hpp:170
_URB_PIPE_REQUEST * m_Urb
Definition: fxusbpipe.hpp:175

◆ ~FxUsbPipeRequestContext()

FxUsbPipeRequestContext::~FxUsbPipeRequestContext ( VOID  )

Definition at line 981 of file fxusbpipe.cpp.

984{
985 if (m_Urb && (m_Urb != &m_UrbLegacy)) {
987 }
988 m_Urb = NULL;
990}
Definition: usb.h:529
VOID USBD_UrbFree(_In_ USBD_HANDLE USBDHandle, _In_ PURB Urb)
Definition: usbdex.c:83

Member Function Documentation

◆ AllocateUrb()

__checkReturn NTSTATUS FxUsbPipeRequestContext::AllocateUrb ( __in USBD_HANDLE  USBDHandle)

Definition at line 994 of file fxusbpipe.cpp.

997{
999
1000 if (m_Urb) {
1002 goto Done;
1003 }
1004
1006
1007 if (!NT_SUCCESS(status)) {
1008 goto Done;
1009 }
1010
1012
1013Done:
1014 return status;
1015}
LONG NTSTATUS
Definition: precomp.h:26
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
Definition: ps.c:97
#define STATUS_INVALID_DEVICE_STATE
Definition: udferr_usr.h:178
NTSTATUS USBD_UrbAllocate(_In_ USBD_HANDLE USBDHandle, _Outptr_result_bytebuffer_(sizeof(URB)) PURB *Urb)
Definition: usbdex.c:59
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ ULONG _In_ ULONG _Out_ USBD_HANDLE * USBDHandle
Definition: usbdlib.h:278

Referenced by FxUsbPipe::FormatAbortRequest(), and FxUsbPipe::FormatResetRequest().

◆ Dispose()

VOID FxUsbPipeRequestContext::Dispose ( VOID  )
virtual

Reimplemented from FxRequestContext.

Definition at line 1018 of file fxusbpipe.cpp.

1021{
1022 if (m_Urb && (m_Urb != &m_UrbLegacy)){
1024 m_Urb = NULL;
1026 }
1027}

◆ GetUsbdStatus()

USBD_STATUS FxUsbPipeRequestContext::GetUsbdStatus ( VOID  )
virtual

Implements FxUsbRequestContext.

Definition at line 1045 of file fxusbpipe.cpp.

1048{
1049 return m_Urb->Hdr.Status;
1050}
struct _URB_HEADER Hdr
Definition: usb.h:315

◆ SetInfo() [1/2]

VOID FxUsbPipeRequestContext::SetInfo ( __in WDF_USB_REQUEST_TYPE  Type,
__in USBD_PIPE_HANDLE  PipeHandle,
__in USHORT  Function 
)

Definition at line 1030 of file fxusbpipe.cpp.

1035{
1036 RtlZeroMemory(m_Urb, sizeof(*m_Urb));
1037 m_Urb->Hdr.Length = sizeof(*m_Urb);
1038 m_Urb->Hdr.Function = Function;
1039 m_Urb->PipeHandle = PipeHandle;
1040
1042}
Type
Definition: Type.h:7
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
VOID SetUsbType(__in WDF_USB_REQUEST_TYPE Type)
USBD_PIPE_HANDLE PipeHandle
Definition: usb.h:316
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by FxUsbPipe::FormatAbortRequest(), and FxUsbPipe::FormatResetRequest().

◆ SetInfo() [2/2]

VOID FxUsbPipeRequestContext::SetInfo ( __in WDF_USB_REQUEST_TYPE  Type,
__in WINUSB_INTERFACE_HANDLE  WinUsbHandle,
__in UCHAR  PipeId,
__in USHORT  Function 
)

Definition at line 13 of file fxusbpipeum.cpp.

19{
20 RtlZeroMemory(&m_UmUrb, sizeof(m_UmUrb));
21
22 m_UmUrb.UmUrbPipeRequest.Hdr.InterfaceHandle = WinUsbHandle;
23 m_UmUrb.UmUrbPipeRequest.Hdr.Function = Function;
25
26 m_UmUrb.UmUrbPipeRequest.PipeID = PipeId;
27
29}
struct _UMURB_PIPE_REQUEST UmUrbPipeRequest
Definition: umusb.h:186

Member Data Documentation

◆ m_Urb

◆ m_UrbLegacy

◆ m_USBDHandle

USBD_HANDLE FxUsbPipeRequestContext::m_USBDHandle
private

The documentation for this struct was generated from the following files: