首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

KUsbInterface类(1)

KUsbInterface类(1)

2、KUsbInterface类


KUsbInterface
类的作用更多的是结构上的而非功能上的,其成员函数几乎不与实际物理设备交互。驱动程序用这个类可获得接口和管道的信息。


成员函数如下:


NTSTATUS Initialize (
KUsbInterfaceDevice& Device,
UCHAR InterfaceNumber,
UCHAR ConfigurationValue,
UCHAR InitialAlternateSetting);

初始化一个用默认构造函数定义的KUsbInterface类实例,在IRQL<=DISPATCH_LEVEL中断级别上调用该函数。


Device
为KUsbInterfaceDevice类实例。


InterfaceNumber
为接口号。


ConfigurationValue
为配置号。


InitialAlternateSetting
为初始化配置的接口号。


SA_STATUS SelectAlternate (UCHAR AlternateSetting);
按指定的接口号重新使能接口。返回SA_SUCCESS,表示成功。

AlternateSetting为所选的接口号。


UCHAR AlternateSetting (void);
返回当前的接口号。


ULONG NumberOfPipes (void);
返回当前使能接口的管道数量。


PUSBD_PIPE_INFORMATION Pipes (int Index = 0);
返回指定索引号的管道信息结构地址。


UCHAR Protocol (vod);
返回接口的协议值。


UCHAR Subclass (void);
返回借口的子类值。


UCHAR Class (void);
返回接口的类值。


BOOLEAN IsOpen (void);
测试接口是否打开。返回TRUE,表示已打开。


PURB BuildVendorRequest ();
分配并初始化一个用于类请求的URB。


NTSTATUS SubmitUrb ();
将URB发送给系统USB总线驱动程序进行处理。


NTSTATUS ClearFeature ();
清除一个特征标志。


NTSTATUS SetFeature ();
设置一个特征标志。


NTSTATUS GetStatus ();
获取状态信息。

KUsbPipe


KUsbPipe
类对应于管道,管道是主机和一个端点的信息链接。


成员函数如下:


NTSTATUS Initialize (
KUsbLowerDevice& Device,
UCHAR EndPointAddress,
ULONG MaxTransferSize = 0);

初始化一个用默认构造函数定义的KUsbPipe类实例,在IRQ<=DISPATCH_LEVEL中断级别上调用该函数。


Device
为KUsbLowerDevice类实例。


EndpointAddress
为端点地址。


MaxTransferSize
为管道最大传输字节数。


NTSTATUS Reset (void);
返回列表