typedef struct _USBD_INTERFACE_INFORMATION {//配置设备时所使用到的用于描述接口信息的结构体
USHORT Length;//本结构体长度
UCHAR InterfaceNumber;//指定设备定义的接口索引标识符
UCHAR AlternateSetting;//指示本接口该使用可选设置中的哪一个的设备定义索引标识符
UCHAR Class;//类代码
UCHAR SubClass;//子类代码
UCHAR Protocol;//协议代码
UCHAR Reserved;//保留字符
USBD_INTERFACE_HANDLE InterfaceHandle;//包含了主机控制器驱动定义的访问接口的句柄,这个句柄是可见的。
ULONG NumberOfPipes;//指定接口有多少个管道,即有多少个端点。
USBD_PIPE_INFORMATION Pipes[1];//指向一个USBD_PIPE_INFORMATION结构体的第一个成员的指针。
} USBD_INTERFACE_INFORMATION, *PUSBD_INTERFACE_INFORMATION;
typedef struct _USBD_PIPE_INFORMATION {//用于客户驱动程序保存指定接口的管道信息
USHORT MaximumPacketSize;//指出管道能够处理的最大字节数
UCHAR EndpointAddress;//为管道指定总线地址
UCHAR Interval;//访问间隔,与接口中端点描述符中指定的访问间隔对应,只适用于中断和等时传输管道,用于数据传输速率的确定。
USBD_PIPE_TYPE PipeType;//指定管道类型,有控制类型,等时类型,批传输类型,中断传输类型。
USBD_PIPE_HANDLE PipeHandle;//指定指向批量和中断传输管道的指针,这个指针在客户驱动选择配置时由主机控制器返回。
ULONG MaximumTransferSize;//指定传输所需要的最大字节数
ULONG PipeFlags;//指定管道可配置属性的值
} USBD_PIPE_INFORMATION, *PUSBD_PIPE_INFORMATION;