IUsbDdk
概述
声明USB主机用于访问USB设备的USB DDK API。
上层USB服务调用相关功能接口,可以打开/关闭设备,获取设备描述符,批量读取/写入数据等。
起始版本: 4.0
相关模块:HdiUsbDdk
汇总
Public 成员函数
名称 | 描述 |
---|---|
Init () | 初始化DDK。 |
Release () | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 |
GetDeviceDescriptor ([in] unsigned long deviceId, [out] struct UsbDeviceDescriptor desc) | 获取USB设备描述符。 |
GetConfigDescriptor ([in] unsigned long deviceId, [in] unsigned char configIndex, [out] List< unsigned char > configDesc) | 获取配置描述符。 |
ClaimInterface ([in] unsigned long deviceId, [in] unsigned char interfaceIndex, [out] unsigned long interfaceHandle) | 声明USB接口。 |
ReleaseInterface ([in] unsigned long interfaceHandle) | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 |
SelectInterfaceSetting ([in] unsigned long interfaceHandle, [in] unsigned char settingIndex) | 激活USB接口的备用设置。 |
GetCurrentInterfaceSetting ([in] unsigned long interfaceHandle, [out] unsigned char settingIndex) | 获取USB接口的激活备用设置。 |
SendControlReadRequest ([in] unsigned long interfaceHandle, [in] struct UsbControlRequestSetup setup, [in] unsigned int timeout, [out] List< unsigned char > data) | 发送控制读取传输请求。此API以同步方式工作。 |
SendControlWriteRequest ([in] unsigned long interfaceHandle, [in] struct UsbControlRequestSetup setup, [in] unsigned int timeout, [in] List< unsigned char > data) | 发送控制写入传输请求。此API以同步方式工作。 |
SendPipeRequest ([in] struct UsbRequestPipe pipe, [in] unsigned int size, [in] unsigned int offset, [in] unsigned int length, [out] unsigned int transferedLength) | 发送管道请求。此API以同步方式工作。此API适用于中断传输和批量传输。 |
GetDeviceMemMapFd ([in] unsigned long deviceId, [out] FileDescriptor fd) | 获取内存映射的文件描述符。 |
成员函数说明
ClaimInterface()
IUsbDdk::ClaimInterface ([in] unsigned long deviceId, [in] unsigned char interfaceIndex, [out] unsigned long interfaceHandle )
描述 声明USB接口。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
deviceId | 要操作的设备的ID。 |
interfaceIndex | 接口索引,对应于USB协议中的b接口编号。 |
interfaceHandle | 接口操作处理。成功声明接口后,将为此参数分配一个值。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
GetConfigDescriptor()
IUsbDdk::GetConfigDescriptor ([in] unsigned long deviceId, [in] unsigned char configIndex, [out] List< unsigned char > configDesc )
描述 获取配置描述符。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
deviceId | 要获取其描述符的设备的设备Id。 |
configIndex | 配置索引,对应于USB协议中的bConfigurationValue。 |
configDesc | 配置描述符,包括USB协议中定义的标准配置描述符以及相关的接口描述符和端点描述符。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
GetCurrentInterfaceSetting()
IUsbDdk::GetCurrentInterfaceSetting ([in] unsigned long interfaceHandle, [out] unsigned char settingIndex )
描述 获取USB接口的激活备用设置。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
interfaceHandle | 接口操作处理。 |
settingIndex | 备用设置的索引,对应于USB协议中的bAlternateSetting。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
GetDeviceDescriptor()
IUsbDdk::GetDeviceDescriptor ([in] unsigned long deviceId, [out] struct UsbDeviceDescriptor desc )
描述 获取USB设备描述符。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
deviceId | 要获取其描述符的设备的设备Id。 |
desc | USB协议中定义的标准设备描述符。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
GetDeviceMemMapFd()
IUsbDdk::GetDeviceMemMapFd ([in] unsigned long deviceId, [out] FileDescriptor fd )
描述 获取内存映射的文件描述符。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
deviceId | 待操作设备的ID。 |
fd | 为内存映射获取的文件描述符。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
Init()
IUsbDdk::Init ()
描述 初始化DDK。
起始版本: 4.0
返回:
0 表示操作成功。
非零值 表示操作失败。
Release()
IUsbDdk::Release ()
描述 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。
起始版本: 4.0
返回:
0 表示操作成功。
非零值 表示操作失败。
ReleaseInterface()
IUsbDdk::ReleaseInterface ([in] unsigned long interfaceHandle)
描述 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
interfaceHandle | 接口操作处理。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
SelectInterfaceSetting()
IUsbDdk::SelectInterfaceSetting ([in] unsigned long interfaceHandle, [in] unsigned char settingIndex )
描述 激活USB接口的备用设置。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
interfaceHandle | 接口操作处理。 |
settingIndex | 备用设置的索引,对应于USB协议中的bAlternateSetting。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
SendControlReadRequest()
IUsbDdk::SendControlReadRequest ([in] unsigned long interfaceHandle, [in] struct UsbControlRequestSetup setup, [in] unsigned int timeout, [out] List< unsigned char > data )
描述 发送控制读取传输请求。此API以同步方式工作。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
interfaceHandle | 接口操作处理。 |
setup | 请求数据,对应于USB协议中的Setup Data。 |
timeout | 超时持续时间,以毫秒为单位。 |
data | 要传输的数据。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
SendControlWriteRequest()
IUsbDdk::SendControlWriteRequest ([in] unsigned long interfaceHandle, [in] struct UsbControlRequestSetup setup, [in] unsigned int timeout, [in] List< unsigned char > data )
描述 发送控制写入传输请求。此API以同步方式工作。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
interfaceHandle | 接口操作处理。 |
setup | 请求数据,对应于USB协议中的Setup Data。 |
timeout | 超时持续时间,以毫秒为单位。 |
data | 要传输的数据。 |
返回:
0 表示操作成功。
非零值 表示操作失败。
SendPipeRequest()
IUsbDdk::SendPipeRequest ([in] struct UsbRequestPipe pipe, [in] unsigned int size, [in] unsigned int offset, [in] unsigned int length, [out] unsigned int transferedLength )
描述 发送管道请求。此API以同步方式工作。此API适用于中断传输和批量传输。
起始版本: 4.0
参数:
名称 | 描述 |
---|---|
管道用于传输数据的管道。 | |
size | 缓冲区大小。 |
offset | 所用缓冲区的偏移量。默认值为0,表示没有偏移,缓冲区从指定地址开始。 |
length | 使用的缓冲区的长度。默认情况下,该值等于大小,表示使用了整个缓冲区。 |
transferedLength | 传输数据的长度。 |
返回:
0 表示操作成功。
非零值 表示操作失败。