7#include "FxUsbPipeUm.tmh"
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) {
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
MdDeviceObject __inline GetDeviceObject(VOID)
virtual _Must_inspect_result_ NTSTATUS Initialize(__in size_t BufferSize, __in PWDF_OBJECT_ATTRIBUTES MemoryAttributes)=0
PVOID __inline GetObjectHandle(VOID)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
__inline MdIrp GetSubmitIrp(VOID)
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)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PVOID WdmObject, __out FxSystemWorkItem **pObject)
IWudfFile * m_pHostTargetFile
WINUSB_INTERFACE_HANDLE m_WinUsbHandle
UCHAR GetConfiguredSettingIndex(VOID)
FxUsbDevice * m_UsbDevice
BOOLEAN IsType(__in WDF_USB_PIPE_TYPE Type)
static WDF_USB_PIPE_TYPE _UsbdPipeTypeToWdf(__in USBD_PIPE_TYPE UsbdPipeType)
WDF_USB_PIPE_TYPE GetType(VOID)
BOOLEAN m_CheckPacketSize
_Must_inspect_result_ NTSTATUS FormatTransferRequest(__in FxRequestBase *Request, __in FxRequestBuffer *Buffer, __in ULONG TransferFlags=0)
VOID GetInformation(__out PWDF_USB_PIPE_INFORMATION PipeInformation)
VOID InitPipe(__in PUSBD_PIPE_INFORMATION PipeInfo, __in UCHAR InterfaceNumber, __in FxUsbInterface *UsbInterface)
FxUsbInterface * m_UsbInterface
WINUSB_PIPE_INFORMATION m_PipeInformationUm
CHECK_RETURN_IF_USER_MODE __inline NTSTATUS Initialize(__in EVENT_TYPE Type, __in BOOLEAN InitialState)
#define NT_SUCCESS(StatCode)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
PFX_DRIVER_GLOBALS pFxDriverGlobals
@ FxRequestConstructorCallerIsFx
return pUsbPipe IsOutEndpoint()
return pUsbPipe IsInEndpoint()
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
#define _Must_inspect_result_
#define STATUS_INVALID_BUFFER_SIZE
#define TRACE_LEVEL_ERROR
#define TRACE_LEVEL_INFORMATION
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)
FxUsbPipeRepeatReader m_Readers[1]
FxLookasideList * m_Lookaside
static MX_WORKITEM_ROUTINE _ReadWorkItem
_Must_inspect_result_ NTSTATUS FormatRepeater(__in FxUsbPipeRepeatReader *Repeater)
static MdDeferredRoutineType _FxUsbPipeContinuousReadDpc
FxSystemWorkItem * m_WorkItem
WDFMEMORY_OFFSET m_Offsets
_Must_inspect_result_ NTSTATUS Config(__in PWDF_USB_CONTINUOUS_READER_CONFIG Config, __in size_t TotalBufferLength)
MxEvent ReadCompletedEvent
FxUsbPipeContinuousReader * Parent
VOID SetInfo(__in WDF_USB_REQUEST_TYPE Type, __in USBD_PIPE_HANDLE PipeHandle, __in USHORT Function)
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)
VOID SetUsbType(__in WDF_USB_REQUEST_TYPE Type)
struct _UMURB_PIPE_REQUEST UmUrbPipeRequest
struct _UMURB_BULK_OR_INTERRUPT_TRANSFER UmUrbBulkOrInterruptTransfer
struct _UMURB_HEADER UmUrbHeader
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INSUFFICIENT_RESOURCES
#define UMURB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
#define USBD_TRANSFER_DIRECTION_IN
_In_ PVOID _In_ LONG InterfaceNumber
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
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
#define WDF_NO_OBJECT_ATTRIBUTES
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo
_In_ WDFUSBINTERFACE UsbInterface
@ WdfUsbPipeTypeInterrupt
enum _WDF_USB_REQUEST_TYPE WDF_USB_REQUEST_TYPE
_In_ WDFUSBPIPE _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation
enum _WDF_USB_PIPE_TYPE WDF_USB_PIPE_TYPE