Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef __OPAQUE_H__
#define __OPAQUE_H__
// ******************************************************************************
//
// information for each active pipe on a device
//
typedef struct _USBD_PIPE { ULONG Sig; USB_ENDPOINT_DESCRIPTOR EndpointDescriptor; PVOID HcdEndpoint; ULONG MaxTransferSize; #if 1
ULONG ScheduleOffset; ULONG UsbdPipeFlags; #endif
} USBD_PIPE, *PUSBD_PIPE;
//
// information for each active interface
// for a device
//
typedef struct _USBD_INTERFACE { ULONG Sig; BOOLEAN HasAlternateSettings; UCHAR Pad[3]; USB_INTERFACE_DESCRIPTOR InterfaceDescriptor; // copy of interface descriptor
// copy of interfaceInformation structure, stores user parameters
// for interface in case of failure during alt-interface selection
PUSBD_INTERFACE_INFORMATION InterfaceInformation; USBD_PIPE PipeHandle[0]; // array of pipe handle structures
} USBD_INTERFACE, *PUSBD_INTERFACE;
//
// informnation for the active configuration
// on a device
//
typedef struct _USBD_CONFIG { ULONG Sig; PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; PUSBD_INTERFACE InterfaceHandle[1]; // array of pointers to interface
} USBD_CONFIG, *PUSBD_CONFIG;
typedef struct _USBD_DEVICE_DATA { ULONG Sig; USHORT DeviceAddress; // address assigned to the device
UCHAR Pad[2]; PUSBD_CONFIG ConfigurationHandle; // KTIMER TimeoutTimer;
// KDPC TimeoutDpc;
USBD_PIPE DefaultPipe; USB_DEVICE_DESCRIPTOR DeviceDescriptor; // a copy of the USB device descriptor
BOOLEAN LowSpeed; // TRUE if the device is low speed
BOOLEAN AcceptingRequests; } USBD_DEVICE_DATA, *PUSBD_DEVICE_DATA;
DECLSPEC_IMPORT NTSTATUS USBD_CreateDevice( IN OUT PUSBD_DEVICE_DATA *DeviceData, IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN DeviceIsLowSpeed, IN ULONG MaxPacketSize_Endpoint0, IN OUT PULONG NonCompliantDevice );
DECLSPEC_IMPORT NTSTATUS USBD_InitializeDevice( IN PUSBD_DEVICE_DATA DeviceData, IN PDEVICE_OBJECT DeviceObject, IN OUT PUSB_DEVICE_DESCRIPTOR DeviceDescriptor, IN ULONG DeviceDescriptorLength, IN OUT PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptor, IN ULONG ConfigDescriptorLength );
DECLSPEC_IMPORT NTSTATUS USBD_RemoveDevice( IN PUSBD_DEVICE_DATA DeviceData, IN PDEVICE_OBJECT DeviceObject, IN UCHAR Flags ); // END OF OPAQUE INFO ***********************************************************
#endif
|