ReactOS  0.4.14-dev-554-g2f8d847
common_interfaces.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _USB_ENDPOINT
 
struct  _USB_INTERFACE
 
struct  USB_CONFIGURATION
 

Macros

#define DEFINE_ABSTRACT_USBHARDWAREDEVICE()
 
#define IMP_IUSBHARDWAREDEVICE
 
#define DEFINE_ABSTRACT_USBREQUEST()
 
#define IMP_IUSBREQUEST
 
#define DEFINE_ABSTRACT_USBQUEUE()
 
#define IMP_IUSBQUEUE
 

Typedefs

typedef struct _USB_ENDPOINT USB_ENDPOINT
 
typedef struct _USB_ENDPOINTPUSB_ENDPOINT
 
typedef struct _USB_INTERFACE USB_INTERFACE
 
typedef struct _USB_INTERFACEPUSB_INTERFACE
 
typedef struct USB_CONFIGURATIONPUSB_CONFIGURATION
 
typedef IRootHCDController * PROOTHDCCONTROLLER
 
typedef IHCDController * PHCDCONTROLLER
 
typedef IUSBHardwareDevice * PUSBHARDWAREDEVICE
 
typedef IDMAMemoryManager * PDMAMEMORYMANAGER
 
typedef IUSBRequest * PUSBREQUEST
 
typedef IUSBQueue * PUSBQUEUE
 
typedef IHubController * PHUBCONTROLLER
 
typedef IDispatchIrp * PDISPATCHIRP
 
typedef IUSBDevice * PUSBDEVICE
 

Functions

 DECLARE_INTERFACE_ (IRootHCDController, IUnknown)
 
 DECLARE_INTERFACE_ (IHCDController, IUnknown)
 
 DECLARE_INTERFACE_ (IUSBHardwareDevice, IUnknown)
 
 DECLARE_INTERFACE_ (IDMAMemoryManager, IUnknown)
 
 DECLARE_INTERFACE_ (IUSBRequest, IUnknown)
 
 DECLARE_INTERFACE_ (IUSBQueue, IUnknown)
 
 DECLARE_INTERFACE_ (IHubController, IUnknown)
 
 DECLARE_INTERFACE_ (IDispatchIrp, IUnknown)
 
 DECLARE_INTERFACE_ (IUSBDevice, IUnknown)
 

Macro Definition Documentation

◆ DEFINE_ABSTRACT_USBHARDWAREDEVICE

#define DEFINE_ABSTRACT_USBHARDWAREDEVICE ( )

Definition at line 142 of file common_interfaces.h.

◆ DEFINE_ABSTRACT_USBQUEUE

#define DEFINE_ABSTRACT_USBQUEUE ( )
Value:
IN PUSBHARDWAREDEVICE Hardware, \
IN PDMA_ADAPTER AdapterObject, \
IN PDMAMEMORYMANAGER MemManager, \
STDMETHOD_(NTSTATUS, AddUSBRequest)( THIS_ \
IN IUSBRequest * Request) PURE; \
STDMETHOD_(NTSTATUS, CreateUSBRequest)( THIS_ \
IN IUSBRequest **OutRequest) PURE; \
STDMETHOD_(NTSTATUS, AbortDevicePipe)( THIS_ \
IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor) PURE;
IUSBHardwareDevice * PUSBHARDWAREDEVICE
LONG NTSTATUS
Definition: precomp.h:26
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
_In_ NDIS_HANDLE _In_ PNDIS_REQUEST Request
Definition: ndis.h:5173
_In_ PUSB_DEVICE_HANDLE _Out_ PUSHORT DeviceAddress
Definition: hubbusif.h:359
unsigned char UCHAR
Definition: xmlstorage.h:181
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
Definition: CrNtStubs.h:75
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
#define PURE
Definition: basetyps.h:64
IDMAMemoryManager * PDMAMEMORYMANAGER
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68

Definition at line 371 of file common_interfaces.h.

◆ DEFINE_ABSTRACT_USBREQUEST

#define DEFINE_ABSTRACT_USBREQUEST ( )
Value:
STDMETHOD_(NTSTATUS, InitializeWithSetupPacket)( THIS_ \
IN PDMAMEMORYMANAGER DmaManager, \
IN struct IUSBDevice *Device, \
IN OPTIONAL struct _USB_ENDPOINT *EndpointDescriptor, \
IN OUT ULONG TransferBufferLength, \
IN OUT PMDL TransferBuffer) PURE; \
STDMETHOD_(NTSTATUS, InitializeWithIrp)( THIS_ \
IN PDMAMEMORYMANAGER DmaManager, \
IN struct IUSBDevice *Device, \
IN OUT PIRP Irp) PURE; \
STDMETHOD_(BOOLEAN, IsRequestComplete)( THIS) PURE; \
STDMETHOD_(ULONG, GetTransferType)( THIS) PURE; \
STDMETHOD_(VOID, GetResultStatus)( THIS_ \
OUT OPTIONAL NTSTATUS * NtStatusCode, \
OUT OPTIONAL PULONG UrbStatusCode) PURE;
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
#define THIS
Definition: basetyps.h:66
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
unsigned char BOOLEAN
unsigned int * PULONG
Definition: retypes.h:1
#define PURE
Definition: basetyps.h:64
IDMAMemoryManager * PDMAMEMORYMANAGER
#define OUT
Definition: typedefs.h:39
unsigned int ULONG
Definition: retypes.h:1
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68

Definition at line 311 of file common_interfaces.h.

◆ IMP_IUSBHARDWAREDEVICE

#define IMP_IUSBHARDWAREDEVICE

Definition at line 190 of file common_interfaces.h.

◆ IMP_IUSBQUEUE

#define IMP_IUSBQUEUE
Value:
IN PUSBHARDWAREDEVICE Hardware, \
IN PDMA_ADAPTER AdapterObject, \
IN PDMAMEMORYMANAGER MemManager, \
STDMETHODIMP_(NTSTATUS) AddUSBRequest( \
IN IUSBRequest * Request); \
STDMETHODIMP_(NTSTATUS) CreateUSBRequest( \
OUT IUSBRequest **OutRequest); \
STDMETHODIMP_(NTSTATUS) AbortDevicePipe( \
IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor);
#define IN
Definition: typedefs.h:38
#define STDMETHODIMP_(t)
Definition: basetyps.h:44
IUSBHardwareDevice * PUSBHARDWAREDEVICE
LONG NTSTATUS
Definition: precomp.h:26
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
_In_ NDIS_HANDLE _In_ PNDIS_REQUEST Request
Definition: ndis.h:5173
_In_ PUSB_DEVICE_HANDLE _Out_ PUSHORT DeviceAddress
Definition: hubbusif.h:359
unsigned char UCHAR
Definition: xmlstorage.h:181
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
Definition: CrNtStubs.h:75
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
IDMAMemoryManager * PDMAMEMORYMANAGER
#define OUT
Definition: typedefs.h:39
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68

Definition at line 388 of file common_interfaces.h.

◆ IMP_IUSBREQUEST

#define IMP_IUSBREQUEST
Value:
STDMETHODIMP_(NTSTATUS) InitializeWithSetupPacket( \
IN PDMAMEMORYMANAGER DmaManager, \
IN struct IUSBDevice *Device, \
IN OPTIONAL struct _USB_ENDPOINT *EndpointDescriptor, \
IN OUT ULONG TransferBufferLength, \
IN OUT PMDL TransferBuffer); \
STDMETHODIMP_(NTSTATUS) InitializeWithIrp( \
IN PDMAMEMORYMANAGER DmaManager, \
IN struct IUSBDevice *Device, \
STDMETHODIMP_(BOOLEAN) IsRequestComplete(VOID); \
STDMETHODIMP_(ULONG) GetTransferType(VOID); \
STDMETHODIMP_(VOID) GetResultStatus( \
OUT OPTIONAL NTSTATUS * NtStatusCode, \
OUT OPTIONAL PULONG UrbStatusCode);
#define IN
Definition: typedefs.h:38
#define STDMETHODIMP_(t)
Definition: basetyps.h:44
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
unsigned char BOOLEAN
unsigned int * PULONG
Definition: retypes.h:1
IDMAMemoryManager * PDMAMEMORYMANAGER
#define OUT
Definition: typedefs.h:39
unsigned int ULONG
Definition: retypes.h:1
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68

Definition at line 333 of file common_interfaces.h.

Typedef Documentation

◆ PDISPATCHIRP

typedef IDispatchIrp* PDISPATCHIRP

Definition at line 503 of file common_interfaces.h.

◆ PDMAMEMORYMANAGER

typedef IDMAMemoryManager* PDMAMEMORYMANAGER

Definition at line 291 of file common_interfaces.h.

◆ PHCDCONTROLLER

typedef IHCDController* PHCDCONTROLLER

Definition at line 127 of file common_interfaces.h.

◆ PHUBCONTROLLER

typedef IHubController* PHUBCONTROLLER

Definition at line 453 of file common_interfaces.h.

◆ PROOTHDCCONTROLLER

typedef IRootHCDController* PROOTHDCCONTROLLER

Definition at line 100 of file common_interfaces.h.

◆ PUSB_CONFIGURATION

◆ PUSB_ENDPOINT

◆ PUSB_INTERFACE

◆ PUSBDEVICE

typedef IUSBDevice* PUSBDEVICE

Definition at line 687 of file common_interfaces.h.

◆ PUSBHARDWAREDEVICE

typedef IUSBHardwareDevice* PUSBHARDWAREDEVICE

Definition at line 241 of file common_interfaces.h.

◆ PUSBQUEUE

typedef IUSBQueue* PUSBQUEUE

Definition at line 409 of file common_interfaces.h.

◆ PUSBREQUEST

typedef IUSBRequest* PUSBREQUEST

Definition at line 359 of file common_interfaces.h.

◆ USB_ENDPOINT

◆ USB_INTERFACE

Function Documentation

◆ DECLARE_INTERFACE_() [1/9]

DECLARE_INTERFACE_ ( IRootHCDController  ,
IUnknown   
)

Definition at line 63 of file common_interfaces.h.

64 {
66 
67 //-----------------------------------------------------------------------------------------
68 //
69 // Initialize
70 //
71 // Description: This function initializes the root host controller. It allocates the resources
72 // required to manage the registered controllers
73 
74  virtual NTSTATUS Initialize() = 0;
75 
76 //-----------------------------------------------------------------------------------------
77 //
78 // RegisterHCD
79 //
80 // Description: this function registers a host controller with the root host controller
81 
82  virtual NTSTATUS RegisterHCD(struct IHCDController * Controller) = 0;
83 
84 //-----------------------------------------------------------------------------------------
85 //
86 // UnregisterHCD
87 //
88 // Description: this function unregistes a host controller
89 
90  virtual NTSTATUS UnregisterHCD(struct IHCDController * Controller) = 0;
91 
92 //-----------------------------------------------------------------------------------------
93 //
94 // GetControllerCount
95 //
96 // Description: returns the number of host controllers registered
97 
98  virtual ULONG GetControllerCount() = 0;
99 
100 };
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
LONG NTSTATUS
Definition: precomp.h:26
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
unsigned int ULONG
Definition: retypes.h:1

◆ DECLARE_INTERFACE_() [2/9]

DECLARE_INTERFACE_ ( IHCDController  ,
IUnknown   
)

Definition at line 111 of file common_interfaces.h.

112 {
114 
115 //-----------------------------------------------------------------------------------------
116 //
117 // Initialize
118 //
119 // Description: This function initializes the IHCDController implementation.
120 // It creates an IUSBHardwareDevice object and initializes it. It also registeres itself with
121 // the IRootHCDController
122 //
123  virtual NTSTATUS Initialize(IN PROOTHDCCONTROLLER RootHCDController,
126 
127 };
#define IN
Definition: typedefs.h:38
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
LONG NTSTATUS
Definition: precomp.h:26
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1122
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
IRootHCDController * PROOTHDCCONTROLLER

◆ DECLARE_INTERFACE_() [3/9]

DECLARE_INTERFACE_ ( IUSBHardwareDevice  ,
IUnknown   
)

Definition at line 237 of file common_interfaces.h.

238 {
241 };
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
#define DEFINE_ABSTRACT_USBHARDWAREDEVICE()

◆ DECLARE_INTERFACE_() [4/9]

DECLARE_INTERFACE_ ( IDMAMemoryManager  ,
IUnknown   
)

Definition at line 254 of file common_interfaces.h.

255 {
257 
258 //-----------------------------------------------------------------------------------------
259 //
260 // Initialize
261 //
262 // Description: initializes the memory manager
263 
266  IN ULONG DmaBufferSize,
267  IN PVOID VirtualBase,
269  IN ULONG DefaultBlockSize) = 0;
270 
271 //-----------------------------------------------------------------------------------------
272 //
273 // Allocate
274 //
275 // Description: allocates block of memory from allocator
276 
277  virtual NTSTATUS Allocate(IN ULONG Size,
278  OUT PVOID *OutVirtualBase,
279  OUT PPHYSICAL_ADDRESS OutPhysicalAddress) = 0;
280 
281 
282 //-----------------------------------------------------------------------------------------
283 //
284 // Free
285 //
286 // Description: releases memory block
287 
288  virtual NTSTATUS Release(IN PVOID VirtualBase,
289  IN ULONG Size) = 0;
290 
291 };
#define IN
Definition: typedefs.h:38
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
IUSBHardwareDevice * PUSBHARDWAREDEVICE
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
_In_ BOOLEAN Release
Definition: classpnp.h:929
LONG NTSTATUS
Definition: precomp.h:26
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
_In_opt_ PALLOCATE_FUNCTION Allocate
Definition: exfuncs.h:656
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1061
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
Definition: CrNtStubs.h:75
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
#define OUT
Definition: typedefs.h:39
unsigned int ULONG
Definition: retypes.h:1

◆ DECLARE_INTERFACE_() [5/9]

DECLARE_INTERFACE_ ( IUSBRequest  ,
IUnknown   
)

Definition at line 355 of file common_interfaces.h.

356 {
359 };
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
#define DEFINE_ABSTRACT_USBREQUEST()

◆ DECLARE_INTERFACE_() [6/9]

DECLARE_INTERFACE_ ( IUSBQueue  ,
IUnknown   
)

Definition at line 405 of file common_interfaces.h.

406 {
409 };
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
#define DEFINE_ABSTRACT_USBQUEUE()

◆ DECLARE_INTERFACE_() [7/9]

DECLARE_INTERFACE_ ( IHubController  ,
IUnknown   
)

Definition at line 420 of file common_interfaces.h.

421 {
423 
424 //----------------------------------------------------------------------------------------
425 //
426 // Initialize
427 //
428 // Description: Initializes the hub controller
429 
431  IN PHCDCONTROLLER Controller,
433  IN BOOLEAN IsRootHubDevice,
434  IN ULONG DeviceAddress) = 0;
435 
436 //----------------------------------------------------------------------------------------
437 //
438 // GetHubControllerDeviceObject
439 //
440 // Description: Returns the hub controller device object
441 
442  virtual NTSTATUS GetHubControllerDeviceObject(PDEVICE_OBJECT * HubDeviceObject) = 0;
443 
444 //----------------------------------------------------------------------------------------
445 //
446 // GetHubControllerSymbolicLink
447 //
448 // Description: Returns the symbolic link of the root hub
449 
450  virtual NTSTATUS GetHubControllerSymbolicLink(ULONG BufferLength, PVOID Buffer, PULONG RequiredLength) = 0;
451 
452 
453 };
#define IN
Definition: typedefs.h:38
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
IUSBHardwareDevice * PUSBHARDWAREDEVICE
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
LONG NTSTATUS
Definition: precomp.h:26
_In_ PUSB_DEVICE_HANDLE _Out_ PUSHORT DeviceAddress
Definition: hubbusif.h:359
_In_ ULONG BufferLength
Definition: usbdlib.h:225
unsigned char BOOLEAN
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
Definition: bufpool.h:45
_In_ ULONG _Out_opt_ PULONG RequiredLength
Definition: wmifuncs.h:29
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
unsigned int * PULONG
Definition: retypes.h:1
unsigned int ULONG
Definition: retypes.h:1
IHCDController * PHCDCONTROLLER

◆ DECLARE_INTERFACE_() [8/9]

DECLARE_INTERFACE_ ( IDispatchIrp  ,
IUnknown   
)

Definition at line 464 of file common_interfaces.h.

465 {
467 
468 //-----------------------------------------------------------------------------------------
469 //
470 // HandlePnp
471 //
472 // Description: This function handles all pnp requests
473 
474  virtual NTSTATUS HandlePnp(IN PDEVICE_OBJECT DeviceObject,
475  IN OUT PIRP Irp) = 0;
476 
477 //-----------------------------------------------------------------------------------------
478 //
479 // HandlePower
480 //
481 // Description: This function handles all power pnp requests
482 //
483  virtual NTSTATUS HandlePower(IN PDEVICE_OBJECT DeviceObject,
484  IN OUT PIRP Irp) = 0;
485 
486 //-----------------------------------------------------------------------------------------
487 //
488 // HandleDeviceControl
489 //
490 // Description: handles device io control requests
491 
492  virtual NTSTATUS HandleDeviceControl(IN PDEVICE_OBJECT DeviceObject,
493  IN OUT PIRP Irp) = 0;
494 
495 //-----------------------------------------------------------------------------------------
496 //
497 // HandleSystemControl
498 //
499 // Description: handles WMI system control requests
500 
501  virtual NTSTATUS HandleSystemControl(IN PDEVICE_OBJECT DeviceObject,
502  IN OUT PIRP Irp) = 0;
503 };
#define IN
Definition: typedefs.h:38
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
#define OUT
Definition: typedefs.h:39

◆ DECLARE_INTERFACE_() [9/9]

DECLARE_INTERFACE_ ( IUSBDevice  ,
IUnknown   
)

Definition at line 514 of file common_interfaces.h.

515 {
517 
518 //----------------------------------------------------------------------------------------
519 //
520 // Initialize
521 //
522 // Description: Initializes the usb device
523 
524  virtual NTSTATUS Initialize(IN PHUBCONTROLLER HubController,
526  IN PVOID Parent,
527  IN ULONG Port,
528  IN ULONG PortStatus) = 0;
529 
530 //-----------------------------------------------------------------------------------------
531 //
532 // IsHub
533 //
534 // Description: returns true when device is a hub
535 
536  virtual BOOLEAN IsHub() = 0;
537 
538 //-----------------------------------------------------------------------------------------
539 //
540 // GetParent
541 //
542 // Description: gets the parent device of the this device
543 
544  virtual NTSTATUS GetParent(PVOID * Parent) = 0;
545 
546 //-----------------------------------------------------------------------------------------
547 //
548 // GetDeviceAddress
549 //
550 // Description: gets the device address of the this device
551 
552  virtual UCHAR GetDeviceAddress() = 0;
553 
554 
555 //-----------------------------------------------------------------------------------------
556 //
557 // GetPort
558 //
559 // Description: gets the port to which this device is connected
560 
561  virtual ULONG GetPort() = 0;
562 
563 //-----------------------------------------------------------------------------------------
564 //
565 // GetSpeed
566 //
567 // Description: gets the speed of the device
568 
569  virtual USB_DEVICE_SPEED GetSpeed() = 0;
570 
571 //-----------------------------------------------------------------------------------------
572 //
573 // GetType
574 //
575 // Description: gets the type of the device, either 1.1 or 2.0 device
576 
577  virtual USB_DEVICE_TYPE GetType() = 0;
578 
579 //-----------------------------------------------------------------------------------------
580 //
581 // GetState
582 //
583 // Description: gets the device state
584 
585  virtual ULONG GetState() = 0;
586 
587 //-----------------------------------------------------------------------------------------
588 //
589 // SetDeviceHandleData
590 //
591 // Description: sets device handle data
592 
593  virtual void SetDeviceHandleData(PVOID Data) = 0;
594 
595 //-----------------------------------------------------------------------------------------
596 //
597 // SetDeviceAddress
598 //
599 // Description: sets device handle data
600 
601  virtual NTSTATUS SetDeviceAddress(UCHAR DeviceAddress) = 0;
602 
603 //-----------------------------------------------------------------------------------------
604 //
605 // GetDeviceDescriptor
606 //
607 // Description: sets device handle data
608 
609  virtual void GetDeviceDescriptor(PUSB_DEVICE_DESCRIPTOR DeviceDescriptor) = 0;
610 
611 //-----------------------------------------------------------------------------------------
612 //
613 // GetConfigurationValue
614 //
615 // Description: gets current selected configuration index
616 
617  virtual UCHAR GetConfigurationValue() = 0;
618 
619 //-----------------------------------------------------------------------------------------
620 //
621 // SubmitIrp
622 //
623 // Description: submits an irp containing an urb
624 
625  virtual NTSTATUS SubmitIrp(PIRP Irp) = 0;
626 
627 //-----------------------------------------------------------------------------------------
628 //
629 // GetConfigurationDescriptors
630 //
631 // Description: returns one or more configuration descriptors
632 
633  virtual VOID GetConfigurationDescriptors(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptorBuffer,
635  OUT PULONG OutBufferLength) = 0;
636 
637 //-----------------------------------------------------------------------------------------
638 //
639 // Description: returns length of configuration descriptors
640 //
641  virtual ULONG GetConfigurationDescriptorsLength() = 0;
642 
643 //-----------------------------------------------------------------------------------------
644 //
645 // SubmitSetupPacket
646 //
647 // Description: submits an setup packet. The usb device will then create an usb request from it and submit it to the queue
648 
649  virtual NTSTATUS SubmitSetupPacket(IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
651  OUT PVOID Buffer) = 0;
652 
653 //-----------------------------------------------------------------------------------------
654 //
655 // SelectConfiguration
656 //
657 // Description: selects a configuration
658 
659  virtual NTSTATUS SelectConfiguration(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
662 
663 //-----------------------------------------------------------------------------------------
664 //
665 // SelectConfiguration
666 //
667 // Description: selects a interface of an configuration
668 
671 
672 //-----------------------------------------------------------------------------------------
673 //
674 // AbortPipe
675 //
676 // Description: aborts all pending requests
677 
678  virtual NTSTATUS AbortPipe(IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor) = 0;
679 
680 //-----------------------------------------------------------------------------------------
681 //
682 // GetMaxPacketSize
683 //
684 // Description: aborts all pending requests
685 
686  virtual UCHAR GetMaxPacketSize() = 0;
687 };
enum _USB_DEVICE_TYPE USB_DEVICE_TYPE
CPPORT Port[4]
Definition: headless.c:34
#define IN
Definition: typedefs.h:38
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG _Out_writes_bytes_to_ ConfigDescriptorBufferLength PUCHAR ConfigDescriptorBuffer
Definition: hubbusif.h:151
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
IUSBHardwareDevice * PUSBHARDWAREDEVICE
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:728
_In_ PUSB_DEVICE_HANDLE _Out_ PUSHORT DeviceAddress
Definition: hubbusif.h:359
_In_ ULONG BufferLength
Definition: usbdlib.h:225
unsigned char BOOLEAN
Definition: bufpool.h:45
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:359
const KSDEVICE_DESCRIPTOR DeviceDescriptor
Definition: splitter.c:257
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE ConfigurationHandle
Definition: ndis.h:3944
unsigned char UCHAR
Definition: xmlstorage.h:181
INT GetType(BOOL bLocal, LPOSVERSIONINFOEX osvi, LPSERVER_INFO_102 pBuf102)
Definition: gettype.c:129
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT PortStatus
Definition: hubbusif.h:40
HWND WINAPI GetParent(_In_ HWND)
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
unsigned int * PULONG
Definition: retypes.h:1
#define OUT
Definition: typedefs.h:39
unsigned int ULONG
Definition: retypes.h:1
IHubController * PHUBCONTROLLER