virtual NTSTATUS GetControlHeadEndpointDescriptor(struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor) = 0;
+//-----------------------------------------------------------------------------------------
+//
+// GetIsochronousHeadEndpointDescriptor
+//
+// Description: returns the control head endpoint descriptor
+
+ virtual NTSTATUS GetIsochronousHeadEndpointDescriptor(struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor) = 0;
+
+
+//-----------------------------------------------------------------------------------------
+//
+// GetInterruptEndpointDescriptors
+//
+// Description: returns interrupt endpoint descriptors
+
+ virtual NTSTATUS GetInterruptEndpointDescriptors(struct _OHCI_ENDPOINT_DESCRIPTOR *** OutDescriptorArray) = 0;
+
//-----------------------------------------------------------------------------------------
//
// HeadEndpointDescriptorModified
// Description: releases the device lock
virtual void ReleaseDeviceLock(KIRQL OldLevel) = 0;
+
+//----------------------------------------------------------------------------------------
+//
+// GetCurrentFrameNumber
+//
+// Description: returns the current frame number
+
+ virtual VOID GetCurrentFrameNumber(PULONG FrameNumber) = 0;
};
typedef IUSBHardwareDevice *PUSBHARDWAREDEVICE;
IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
IN UCHAR DeviceAddress,
IN OPTIONAL PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor,
+ IN USB_DEVICE_SPEED DeviceSpeed,
IN OUT ULONG TransferBufferLength,
IN OUT PMDL TransferBuffer) = 0;
//
// Description: initializes the request with an IRP
// The irp contains an URB block which contains all necessary information
+// contains the device speed (FullSpeed / LowSpeed)
virtual NTSTATUS InitializeWithIrp(IN PDMAMEMORYMANAGER DmaManager,
- IN OUT PIRP Irp) = 0;
+ IN OUT PIRP Irp,
+ IN USB_DEVICE_SPEED DeviceSpeed) = 0;
//-----------------------------------------------------------------------------------------
//
// Description: frees the associated endpoint descriptor and its general descriptors
virtual VOID FreeEndpointDescriptor(struct _OHCI_ENDPOINT_DESCRIPTOR * OutDescriptor) = 0;
+
+//-----------------------------------------------------------------------------------------
+//
+// GetInterruptInterval
+//
+// Description: returns interval of the iso / interrupt
+
+ virtual UCHAR GetInterval() = 0;
+
};