7 #include "FxUsbPipeUm.tmh" 10 #include "Fxglobals.h" 15 __in WINUSB_INTERFACE_HANDLE WinUsbHandle,
77 __in size_t TotalBufferLength
87 #if (FX_CORE_MODE == FX_CORE_KERNEL_MODE) 96 #elif (FX_CORE_MODE == FX_CORE_USER_MODE) 134 "Could not allocate workitem: %!STATUS!",
status);
148 #if (FX_CORE_MODE == FX_CORE_KERNEL_MODE) 150 #elif (FX_CORE_MODE == FX_CORE_USER_MODE) 179 "Could not initialize ReadCompletedEvent: %!STATUS!",
237 "WDFUSBPIPE %p not the right type, %!STATUS!",
248 "WDFUSBPIPE %p, buffer size truncated, %!STATUS!",
260 "Pipe %p, sending __in transaction on a __out endpoint",
274 "Pipe %p, sending __out transaction on an __in endpoint",
284 "Pipe %p, Request %p, setting target failed, " 295 if (pContext ==
NULL) {
#define UMURB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
_Must_inspect_result_ NTSTATUS FormatTransferRequest(__in FxRequestBase *Request, __in FxRequestBuffer *Buffer, __in ULONG TransferFlags=0)
WINUSB_INTERFACE_HANDLE m_WinUsbHandle
struct _UMURB_PIPE_REQUEST UmUrbPipeRequest
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PVOID WdmObject, __out FxSystemWorkItem **pObject)
#define STATUS_INSUFFICIENT_RESOURCES
static MX_WORKITEM_ROUTINE _ReadWorkItem
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
MdDeviceObject __inline GetDeviceObject(VOID)
struct _UMURB_HEADER UmUrbHeader
#define USBD_TRANSFER_DIRECTION_IN
#define STATUS_INVALID_DEVICE_REQUEST
MxEvent ReadCompletedEvent
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in_opt PWDF_OBJECT_ATTRIBUTES RequestAttributes, __in_opt MdIrp Irp, __in_opt FxIoTarget *Target, __in FxRequestIrpOwnership Ownership, __in FxRequestConstructorCaller Caller, __deref_out FxRequest **Request)
__inline BOOLEAN IsOutEndpoint(VOID)
#define TRACE_LEVEL_INFORMATION
FxUsbDevice * m_UsbDevice
FxSystemWorkItem * m_WorkItem
_In_ WDFUSBPIPE _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation
BOOLEAN IsType(__in WDF_USB_PIPE_TYPE Type)
__inline BOOLEAN IsInEndpoint(VOID)
CHECK_RETURN_IF_USER_MODE __inline NTSTATUS Initialize(__in EVENT_TYPE Type, __in BOOLEAN InitialState)
VOID SetUsbType(__in WDF_USB_REQUEST_TYPE Type)
PVOID __inline GetObjectHandle(VOID)
static MdDeferredRoutineType _FxUsbPipeContinuousReadDpc
_Must_inspect_result_ NTSTATUS Config(__in PWDF_USB_CONTINUOUS_READER_CONFIG Config, __in size_t TotalBufferLength)
VOID GetInformation(__out PWDF_USB_PIPE_INFORMATION PipeInformation)
#define STATUS_INVALID_BUFFER_SIZE
_In_ PVOID _In_ LONG InterfaceNumber
virtual _Must_inspect_result_ NTSTATUS Initialize(__in size_t BufferSize, __in PWDF_OBJECT_ATTRIBUTES MemoryAttributes)=0
PFX_DRIVER_GLOBALS pFxDriverGlobals
__inline MdIrp GetSubmitIrp(VOID)
_In_ WDFUSBINTERFACE UsbInterface
#define NT_SUCCESS(StatCode)
WDFUSBPIPE GetHandle(VOID)
FxLookasideList * m_Lookaside
struct _UMURB_BULK_OR_INTERRUPT_TRANSFER UmUrbBulkOrInterruptTransfer
VOID SetInfo(__in WDF_USB_REQUEST_TYPE Type, __in USBD_PIPE_HANDLE PipeHandle, __in USHORT Function)
FxUsbInterface * m_UsbInterface
WDF_USB_PIPE_TYPE GetType(VOID)
UCHAR GetConfiguredSettingIndex(VOID)
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)
#define _Must_inspect_result_
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo
VOID FxUsbUmFormatRequest(__in FxRequestBase *Request, __in_xcount(Urb->Length) PUMURB_HEADER Urb, __in IWudfFile *HostFile, __in BOOLEAN Reuse)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
#define TRACE_LEVEL_ERROR
_Must_inspect_result_ NTSTATUS FormatRepeater(__in FxUsbPipeRepeatReader *Repeater)
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
FxUsbPipeRepeatReader m_Readers[1]
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
WDFMEMORY_OFFSET m_Offsets
#define WDF_NO_OBJECT_ATTRIBUTES
enum _WDF_USB_PIPE_TYPE WDF_USB_PIPE_TYPE
WINUSB_PIPE_INFORMATION m_PipeInformationUm
FxUsbPipeContinuousReader * Parent
#define RtlZeroMemory(Destination, Length)
IWudfFile * m_pHostTargetFile
#define RtlCopyMemory(Destination, Source, Length)
BOOLEAN m_CheckPacketSize
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
static SERVICE_STATUS status
static WDF_USB_PIPE_TYPE _UsbdPipeTypeToWdf(__in USBD_PIPE_TYPE UsbdPipeType)
enum _WDF_USB_REQUEST_TYPE WDF_USB_REQUEST_TYPE
VOID InitPipe(__in PUSBD_PIPE_INFORMATION PipeInfo, __in UCHAR InterfaceNumber, __in FxUsbInterface *UsbInterface)
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)