[SDK][USB] Delete old USB drivers and libusb
[reactos.git] / sdk / lib / drivers / libusb / common_interfaces.h
diff --git a/sdk/lib/drivers/libusb/common_interfaces.h b/sdk/lib/drivers/libusb/common_interfaces.h
deleted file mode 100644 (file)
index 5cf12e5..0000000
+++ /dev/null
@@ -1,691 +0,0 @@
-
-#ifndef COMMON_INTERFACES_HPP
-#define COMMON_INTERFACES_HPP
-
-typedef struct _USB_ENDPOINT
-{
-    USB_ENDPOINT_DESCRIPTOR EndPointDescriptor;
-    UCHAR HubAddress;
-    UCHAR HubPort;
-    UCHAR DataToggle;
-} USB_ENDPOINT, *PUSB_ENDPOINT;
-
-typedef struct _USB_INTERFACE
-{
-    LIST_ENTRY ListEntry;
-    PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
-    USB_ENDPOINT EndPoints[1];
-} USB_INTERFACE, *PUSB_INTERFACE;
-
-typedef struct
-{
-    PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
-    LIST_ENTRY InterfaceList;
-}USB_CONFIGURATION, *PUSB_CONFIGURATION;
-
-//---------------------------------------------------------------------------
-//
-//          Object Hierarchy
-//       --------------------------------------------------------------------
-//       |  IRootHCDController                                              |
-//       |    IHCDController Intel USB Universal Host Controller - 3A37     |
-//       |    IHCDController - Intel USB Universal HostController - 3A38    |
-//       |    IHCDController - Intel USB Universal HostController - 3A38    |
-//       |------------------------------------------------------------------|
-//
-//      
-//       IHCDController Intel USB Universal Host Controller - 3A37
-//         IHubController
-//         IUSBHardwareDevice
-//           IDMAMemoryManager
-//           IUSBQueue  <-      interacts with -> IUSBRequest
-//            
-//
-//  Each IHCDController creates an IUSBHardwareDevice class upon initialization. The 
-//  IUSBHardwardeDevice class is used to abstract usb controller specifics. The IHubController
-//  manages all attached devices and handles hub control ioctl requests.
-//
-//  Each IUSBHardwareDevice has one IDMAMemoryManager and one IUSBQueue. The IDMAMemoryManager
-//  is used to handle dma memory allocations. The IUSBQueue manages requests which are send to the
-//  usb hardware. See IUSBRequest class for details.
-//
-
-
-//=========================================================================================
-//
-// class IRootHCDController
-//
-// Description: This class serves as the root host controller. The host controller mantains
-// a list of registered controllers and provides support functions for the host controllers
-
-struct IHCDController;
-
-DECLARE_INTERFACE_(IRootHCDController, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-
-//-----------------------------------------------------------------------------------------
-//
-// Initialize
-//
-// Description: This function initializes the root host controller. It allocates the resources
-// required to manage the registered controllers
-
-    virtual NTSTATUS Initialize() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// RegisterHCD
-//
-// Description: this function registers a host controller with the root host controller
-
-    virtual NTSTATUS RegisterHCD(struct IHCDController * Controller) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// UnregisterHCD
-//
-// Description: this function unregistes a host controller
-
-    virtual NTSTATUS UnregisterHCD(struct IHCDController * Controller) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetControllerCount
-//
-// Description: returns the number of host controllers registered
-
-    virtual ULONG GetControllerCount() = 0;
-
-};
-
-typedef IRootHCDController *PROOTHDCCONTROLLER;
-
-//=========================================================================================
-//
-// class IHCDController
-//
-// Description: This class is used to manage a single USB host controller
-//
-
-DECLARE_INTERFACE_(IHCDController, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-
-//-----------------------------------------------------------------------------------------
-//
-// Initialize
-//
-// Description: This function initializes the IHCDController implementation. 
-// It creates an IUSBHardwareDevice object and initializes it. It also registeres itself with
-// the IRootHCDController
-//
-    virtual NTSTATUS Initialize(IN PROOTHDCCONTROLLER RootHCDController,
-                                IN PDRIVER_OBJECT DriverObject,
-                                IN PDEVICE_OBJECT PhysicalDeviceObject) = 0;
-
-};
-
-typedef IHCDController *PHCDCONTROLLER;
-
-
-//=========================================================================================
-//
-// class IUSBHardwareDevice
-//
-// Description: This class provides access to the usb hardware controller
-//
-
-struct IDMAMemoryManager;
-struct IUSBQueue;
-
-#define DEFINE_ABSTRACT_USBHARDWAREDEVICE()                                 \
-    STDMETHOD_(NTSTATUS, Initialize)( THIS_                                 \
-        IN PDRIVER_OBJECT DriverObject,                                     \
-        IN PDEVICE_OBJECT FunctionalDeviceObject,                           \
-        IN PDEVICE_OBJECT PhysicalDeviceObject,                             \
-        IN PDEVICE_OBJECT LowerDeviceObject) PURE;                          \
-                                                                            \
-     STDMETHOD_(NTSTATUS, PnpStart)( THIS_                                  \
-        IN PCM_RESOURCE_LIST RawResources,                                  \
-        IN PCM_RESOURCE_LIST TranslatedResources) PURE;                     \
-                                                                            \
-     STDMETHOD_(NTSTATUS, PnpStop)( THIS) PURE;                             \
-                                                                            \
-     STDMETHOD_(NTSTATUS, GetDeviceDetails)( THIS_                          \
-        OUT OPTIONAL PUSHORT VendorId,                                      \
-        OUT OPTIONAL PUSHORT DeviceId,                                      \
-        OUT OPTIONAL PULONG NumberOfPorts,                                  \
-        OUT OPTIONAL PULONG Speed) PURE;                                    \
-                                                                            \
-     STDMETHOD_(NTSTATUS, GetUSBQueue)( THIS_                               \
-        OUT struct IUSBQueue **OutUsbQueue) PURE;                           \
-                                                                            \
-     STDMETHOD_(NTSTATUS, GetDMA)( THIS_                                    \
-        OUT struct IDMAMemoryManager **OutDMA) PURE;                        \
-                                                                            \
-     STDMETHOD_(NTSTATUS, ResetPort)( THIS_                                 \
-        IN ULONG PortNumber) PURE;                                          \
-                                                                            \
-     STDMETHOD_(NTSTATUS, GetPortStatus)( THIS_                             \
-        IN ULONG PortId,                                                    \
-        OUT USHORT *PortStatus,                                             \
-        OUT USHORT *PortChange) PURE;                                       \
-                                                                            \
-     STDMETHOD_(NTSTATUS, ClearPortStatus)( THIS_                           \
-        IN ULONG PortId,                                                    \
-        IN ULONG Status) PURE;                                              \
-                                                                            \
-     STDMETHOD_(NTSTATUS, SetPortFeature)( THIS_                            \
-        IN ULONG PortId,                                                    \
-        IN ULONG Feature) PURE;                                             \
-                                                                            \
-     STDMETHOD_(VOID, SetStatusChangeEndpointCallBack)( THIS_               \
-        IN PVOID CallBack,                                                  \
-        IN PVOID Context) PURE;                                             \
-                                                                            \
-     STDMETHOD_(LPCSTR, GetUSBType)(THIS) PURE;
-
-
-#define IMP_IUSBHARDWAREDEVICE                                              \
-    STDMETHODIMP_(NTSTATUS) Initialize(                                     \
-        IN PDRIVER_OBJECT DriverObject,                                     \
-        IN PDEVICE_OBJECT FunctionalDeviceObject,                           \
-        IN PDEVICE_OBJECT PhysicalDeviceObject,                             \
-        IN PDEVICE_OBJECT LowerDeviceObject);                               \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) PnpStart(                                      \
-        IN PCM_RESOURCE_LIST RawResources,                                  \
-        IN PCM_RESOURCE_LIST TranslatedResources);                          \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) PnpStop(VOID);                                 \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) GetDeviceDetails(                              \
-        OUT OPTIONAL PUSHORT VendorId,                                      \
-        OUT OPTIONAL PUSHORT DeviceId,                                      \
-        OUT OPTIONAL PULONG NumberOfPorts,                                  \
-        OUT OPTIONAL PULONG Speed);                                         \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) GetUSBQueue(                                   \
-        OUT struct IUSBQueue **OutUsbQueue);                                \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) GetDMA(                                        \
-        OUT struct IDMAMemoryManager **OutDMA);                             \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) ResetPort(                                     \
-        IN ULONG PortNumber);                                               \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) GetPortStatus(                                 \
-        IN ULONG PortId,                                                    \
-        OUT USHORT *PortStatus,                                             \
-        OUT USHORT *PortChange);                                            \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) ClearPortStatus(                               \
-        IN ULONG PortId,                                                    \
-        IN ULONG Status);                                                   \
-                                                                            \
-     STDMETHODIMP_(NTSTATUS) SetPortFeature(                                \
-        IN ULONG PortId,                                                    \
-        IN ULONG Feature);                                                  \
-                                                                            \
-     STDMETHODIMP_(VOID) SetStatusChangeEndpointCallBack(                   \
-        IN PVOID CallBack,                                                  \
-        IN PVOID Context);                                                  \
-                                                                            \
-     STDMETHODIMP_(LPCSTR) GetUSBType();
-
-DECLARE_INTERFACE_(IUSBHardwareDevice, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-    DEFINE_ABSTRACT_USBHARDWAREDEVICE()
-};
-
-typedef IUSBHardwareDevice *PUSBHARDWAREDEVICE;
-
-
-//=========================================================================================
-//
-// class IDMAMemoryManager
-//
-// Description: This class provides access to the dma buffer. It provides methods to 
-// allocate and free from the dma buffer
-// 
-
-DECLARE_INTERFACE_(IDMAMemoryManager, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-
-//-----------------------------------------------------------------------------------------
-//
-// Initialize
-//
-// Description: initializes the memory manager
-
-    virtual NTSTATUS Initialize(IN PUSBHARDWAREDEVICE Device,
-                                IN PKSPIN_LOCK Lock,
-                                IN ULONG DmaBufferSize,
-                                IN PVOID VirtualBase,
-                                IN PHYSICAL_ADDRESS PhysicalAddress,
-                                IN ULONG DefaultBlockSize) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// Allocate
-//
-// Description: allocates block of memory from allocator
-
-    virtual NTSTATUS Allocate(IN ULONG Size,
-                              OUT PVOID *OutVirtualBase,
-                              OUT PPHYSICAL_ADDRESS OutPhysicalAddress) = 0;
-
-
-//-----------------------------------------------------------------------------------------
-//
-// Free
-//
-// Description: releases memory block
-
-    virtual NTSTATUS Release(IN PVOID VirtualBase,
-                             IN ULONG Size) = 0;
-
-};
-
-typedef IDMAMemoryManager *PDMAMEMORYMANAGER;
-
-
-//=========================================================================================
-//
-// class IUSBRequest
-//
-// Description: This class is used to issue request to usb controller. The class is 
-// initialized using InitializeXXX methods. You also need to call SetEndpoint to define the endpoint
-// In addition you can call SetCompletionDetails if you need to wait for the end of
-// the request or want to complete an irp. You call AddUSBRequest to add the request to the queue. 
-// Once the request is completed the CompletionCallback is invoked. The CompletionCallback
-// will take care of any completion details which have been set. If the request is cancelled, the 
-// CancelCallback routine is invoked.
-//
-
-struct IUSBDevice;
-
-#define DEFINE_ABSTRACT_USBREQUEST()                                        \
-    STDMETHOD_(NTSTATUS, InitializeWithSetupPacket)( THIS_                  \
-        IN PDMAMEMORYMANAGER DmaManager,                                    \
-        IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,                      \
-        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;
-
-#define IMP_IUSBREQUEST                                                     \
-    STDMETHODIMP_(NTSTATUS) InitializeWithSetupPacket(                      \
-        IN PDMAMEMORYMANAGER DmaManager,                                    \
-        IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,                      \
-        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,                                       \
-        IN OUT PIRP Irp);                                                   \
-                                                                            \
-    STDMETHODIMP_(BOOLEAN) IsRequestComplete(VOID);                         \
-                                                                            \
-    STDMETHODIMP_(ULONG) GetTransferType(VOID);                             \
-                                                                            \
-    STDMETHODIMP_(VOID) GetResultStatus(                                    \
-        OUT OPTIONAL NTSTATUS * NtStatusCode,                               \
-        OUT OPTIONAL PULONG UrbStatusCode);
-
-DECLARE_INTERFACE_(IUSBRequest, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-    DEFINE_ABSTRACT_USBREQUEST()
-};
-
-
-typedef IUSBRequest *PUSBREQUEST;
-
-//=========================================================================================
-//
-// class IUSBQueue
-//
-// Description: This class manages pending requests
-// 
-
-#define DEFINE_ABSTRACT_USBQUEUE()                                          \
-    STDMETHOD_(NTSTATUS, Initialize)( THIS_                                 \
-        IN PUSBHARDWAREDEVICE Hardware,                                     \
-        IN PDMA_ADAPTER AdapterObject,                                      \
-        IN PDMAMEMORYMANAGER MemManager,                                    \
-        IN OPTIONAL PKSPIN_LOCK Lock) PURE;                                 \
-                                                                            \
-    STDMETHOD_(NTSTATUS, AddUSBRequest)( THIS_                              \
-        IN IUSBRequest * Request) PURE;                                     \
-                                                                            \
-    STDMETHOD_(NTSTATUS, CreateUSBRequest)( THIS_                           \
-        IN IUSBRequest **OutRequest) PURE;                                  \
-                                                                            \
-    STDMETHOD_(NTSTATUS, AbortDevicePipe)( THIS_                            \
-        IN UCHAR DeviceAddress,                                             \
-        IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor) PURE;
-
-#define IMP_IUSBQUEUE                                                       \
-    STDMETHODIMP_(NTSTATUS) Initialize(                                     \
-        IN PUSBHARDWAREDEVICE Hardware,                                     \
-        IN PDMA_ADAPTER AdapterObject,                                      \
-        IN PDMAMEMORYMANAGER MemManager,                                    \
-        IN OPTIONAL PKSPIN_LOCK Lock);                                      \
-                                                                            \
-    STDMETHODIMP_(NTSTATUS) AddUSBRequest(                                  \
-        IN IUSBRequest * Request);                                          \
-                                                                            \
-    STDMETHODIMP_(NTSTATUS) CreateUSBRequest(                               \
-        OUT IUSBRequest **OutRequest);                                      \
-                                                                            \
-    STDMETHODIMP_(NTSTATUS) AbortDevicePipe(                                \
-        IN UCHAR DeviceAddress,                                             \
-        IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor);
-
-DECLARE_INTERFACE_(IUSBQueue, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-    DEFINE_ABSTRACT_USBQUEUE()
-};
-
-typedef IUSBQueue *PUSBQUEUE;
-
-//=========================================================================================
-//
-// class IHubController
-//
-// Description: This class implements a hub controller
-// 
-
-DECLARE_INTERFACE_(IHubController, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-
-//----------------------------------------------------------------------------------------
-//
-// Initialize
-//
-// Description: Initializes the hub controller
-
-    virtual NTSTATUS Initialize(IN PDRIVER_OBJECT DriverObject,
-                                IN PHCDCONTROLLER Controller,
-                                IN PUSBHARDWAREDEVICE Device,
-                                IN BOOLEAN IsRootHubDevice,
-                                IN ULONG DeviceAddress) = 0;
-
-//----------------------------------------------------------------------------------------
-//
-// GetHubControllerDeviceObject
-//
-// Description: Returns the hub controller device object
-
-    virtual NTSTATUS GetHubControllerDeviceObject(PDEVICE_OBJECT * HubDeviceObject) = 0;
-
-//----------------------------------------------------------------------------------------
-//
-// GetHubControllerSymbolicLink
-//
-// Description: Returns the symbolic link of the root hub
-
-    virtual NTSTATUS GetHubControllerSymbolicLink(ULONG BufferLength, PVOID Buffer, PULONG RequiredLength) = 0;
-
-
-};
-
-typedef IHubController *PHUBCONTROLLER;
-
-//=========================================================================================
-//
-// class IDispatchIrp
-//
-// Description: This class is used to handle irp dispatch requests
-// 
-
-DECLARE_INTERFACE_(IDispatchIrp, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-
-//-----------------------------------------------------------------------------------------
-//
-// HandlePnp
-//
-// Description: This function handles all pnp requests
-
-    virtual NTSTATUS HandlePnp(IN PDEVICE_OBJECT DeviceObject,
-                               IN OUT PIRP Irp) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// HandlePower
-//
-// Description: This function handles all power pnp requests
-//
-    virtual NTSTATUS HandlePower(IN PDEVICE_OBJECT DeviceObject,
-                                 IN OUT PIRP Irp) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// HandleDeviceControl
-//
-// Description: handles device io control requests
-
-    virtual NTSTATUS HandleDeviceControl(IN PDEVICE_OBJECT DeviceObject,
-                                         IN OUT PIRP Irp) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// HandleSystemControl
-//
-// Description: handles WMI system control requests
-
-    virtual NTSTATUS HandleSystemControl(IN PDEVICE_OBJECT DeviceObject,
-                                         IN OUT PIRP Irp) = 0;
-};
-
-typedef IDispatchIrp *PDISPATCHIRP;
-
-//=========================================================================================
-//
-// class IUSBDevice
-//
-// Description: This class is used to abstract details of a usb device
-// 
-
-DECLARE_INTERFACE_(IUSBDevice, IUnknown)
-{
-    DEFINE_ABSTRACT_UNKNOWN()
-
-//----------------------------------------------------------------------------------------
-//
-// Initialize
-//
-// Description: Initializes the usb device
-
-    virtual NTSTATUS Initialize(IN PHUBCONTROLLER HubController,
-                                IN PUSBHARDWAREDEVICE Device,
-                                IN PVOID Parent,
-                                IN ULONG Port,
-                                IN ULONG PortStatus) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// IsHub
-//
-// Description: returns true when device is a hub
-
-    virtual BOOLEAN IsHub() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetParent
-//
-// Description: gets the parent device of the this device
-
-    virtual NTSTATUS GetParent(PVOID * Parent) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetDeviceAddress
-//
-// Description: gets the device address of the this device
-
-    virtual UCHAR GetDeviceAddress() = 0;
-
-
-//-----------------------------------------------------------------------------------------
-//
-// GetPort
-//
-// Description: gets the port to which this device is connected
-
-    virtual ULONG GetPort() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetSpeed
-//
-// Description: gets the speed of the device
-
-    virtual USB_DEVICE_SPEED GetSpeed() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetType
-//
-// Description: gets the type of the device, either 1.1 or 2.0 device
-
-    virtual USB_DEVICE_TYPE GetType() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetState
-//
-// Description: gets the device state
-
-    virtual ULONG GetState() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// SetDeviceHandleData
-//
-// Description: sets device handle data
-
-    virtual void SetDeviceHandleData(PVOID Data) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// SetDeviceAddress
-//
-// Description: sets device handle data
-
-    virtual NTSTATUS SetDeviceAddress(UCHAR DeviceAddress) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetDeviceDescriptor
-//
-// Description: sets device handle data
-
-    virtual void GetDeviceDescriptor(PUSB_DEVICE_DESCRIPTOR DeviceDescriptor) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetConfigurationValue
-//
-// Description: gets current selected configuration index
-
-   virtual UCHAR GetConfigurationValue() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// SubmitIrp
-//
-// Description: submits an irp containing an urb
-
-    virtual NTSTATUS SubmitIrp(PIRP Irp) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetConfigurationDescriptors
-//
-// Description: returns one or more configuration descriptors
-
-    virtual VOID GetConfigurationDescriptors(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptorBuffer,
-                                             IN ULONG BufferLength,
-                                             OUT PULONG OutBufferLength) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// Description: returns length of configuration descriptors
-//
-     virtual ULONG GetConfigurationDescriptorsLength() = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// SubmitSetupPacket
-//
-// Description: submits an setup packet. The usb device will then create an usb request from it and submit it to the queue
-
-     virtual NTSTATUS SubmitSetupPacket(IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
-                                        IN OUT ULONG BufferLength,
-                                        OUT PVOID Buffer) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// SelectConfiguration
-//
-// Description: selects a configuration
-
-    virtual NTSTATUS SelectConfiguration(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
-                                         IN PUSBD_INTERFACE_INFORMATION Interface,
-                                         OUT USBD_CONFIGURATION_HANDLE *ConfigurationHandle) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// SelectConfiguration
-//
-// Description: selects a interface of an configuration
-
-    virtual NTSTATUS SelectInterface(IN USBD_CONFIGURATION_HANDLE ConfigurationHandle,
-                                     IN OUT PUSBD_INTERFACE_INFORMATION Interface) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// AbortPipe
-//
-// Description: aborts all pending requests
-
-    virtual NTSTATUS AbortPipe(IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// GetMaxPacketSize
-//
-// Description: aborts all pending requests
-
-    virtual UCHAR GetMaxPacketSize() = 0;
-};
-
-typedef IUSBDevice *PUSBDEVICE;
-
-#endif