7 #include "FxUsbPipeKm.tmh" 10 #include "Fxglobals.h" 71 #pragma prefast(push); 90 __in size_t TotalBufferLength
142 "Could not allocate workitem: %!STATUS!",
status);
183 "Could not initialize ReadCompletedEvent: %!STATUS!",
223 "WDFUSBPIPE %p not the right type, %!STATUS!",
234 "WDFUSBPIPE %p, buffer size truncated, %!STATUS!",
246 "Pipe %p, sending __in transaction on a __out endpoint",
260 "Pipe %p, sending __out transaction on an __in endpoint",
270 "Pipe %p, Request %p, setting target failed, " 283 if (pContext ==
NULL) {
298 Request->EnableContextDisposeNotification();
_Must_inspect_result_ NTSTATUS FormatTransferRequest(__in FxRequestBase *Request, __in FxRequestBuffer *Buffer, __in ULONG TransferFlags=0)
MdDeviceObject m_TargetDevice
FX_URB_TYPE GetFxUrbTypeForRequest(__in FxRequestBase *Request)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PVOID WdmObject, __out FxSystemWorkItem **pObject)
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
MdDeviceObject __inline GetDeviceObject(VOID)
#define UNREFERENCED_PARAMETER(P)
#define USBD_TRANSFER_DIRECTION_IN
#define __drv_maxIRQL(irql)
#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
__drv_functionClass(KDEFERRED_ROUTINE) __drv_maxIRQL(DISPATCH_LEVEL) __drv_minIRQL(DISPATCH_LEVEL) __drv_requiresIRQL(DISPATCH_LEVEL) __drv_sameIRQL VOID FxUsbPipeContinuousReader
enum _FX_URB_TYPE FX_URB_TYPE
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)
_URB_BULK_OR_INTERRUPT_TRANSFER m_UrbLegacy
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)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define STATUS_INVALID_BUFFER_SIZE
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
virtual _Must_inspect_result_ NTSTATUS Initialize(__in size_t BufferSize, __in PWDF_OBJECT_ATTRIBUTES MemoryAttributes)=0
PFX_DRIVER_GLOBALS pFxDriverGlobals
__inline MdIrp GetSubmitIrp(VOID)
#define __drv_requiresIRQL(irql)
#define NT_SUCCESS(StatCode)
WDFUSBPIPE GetHandle(VOID)
FxLookasideList * m_Lookaside
FxUsbInterface * m_UsbInterface
USBD_PIPE_INFORMATION m_PipeInformation
WDF_USB_PIPE_TYPE GetType(VOID)
UCHAR GetConfiguredSettingIndex(VOID)
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)
#define _Must_inspect_result_
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
#define TRACE_LEVEL_ERROR
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
_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
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define WDF_NO_OBJECT_ATTRIBUTES
ULONG TransferBufferLength
enum _WDF_USB_PIPE_TYPE WDF_USB_PIPE_TYPE
FxUsbPipeContinuousReader * Parent
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
VOID SetUrbInfo(__in USBD_PIPE_HANDLE PipeHandle, __in ULONG TransferFlags)
BOOLEAN m_CheckPacketSize
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
static SERVICE_STATUS status
__checkReturn NTSTATUS AllocateUrb(__in USBD_HANDLE USBDHandle)
#define __drv_minIRQL(irql)
#define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
static WDF_USB_PIPE_TYPE _UsbdPipeTypeToWdf(__in USBD_PIPE_TYPE UsbdPipeType)
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)
VOID FxFormatUsbRequest(__in FxRequestBase *Request, __in PURB Urb, __in FX_URB_TYPE FxUrbType, __drv_when(FxUrbType==FxUrbTypeUsbdAllocated, __in) __drv_when(FxUrbType !=FxUrbTypeUsbdAllocated, __in_opt) USBD_HANDLE UsbdHandle)
_URB_BULK_OR_INTERRUPT_TRANSFER * m_Urb
_In_opt_ PVOID DeferredContext