1# IUsbDdk 2 3 4## 概述 5 6声明USB主机用于访问USB设备的USB DDK API。 7 8上层USB服务调用相关功能接口,可以打开/关闭设备,获取设备描述符,批量读取/写入数据等。 9 10**起始版本:** 4.0 11 12**相关模块:**[HdiUsbDdk](_hdi_usb_ddk.md) 13 14 15## 汇总 16 17 18### Public 成员函数 19 20| 名称 | 描述 | 21| -------- | -------- | 22| [Init](#init) () | 初始化DDK。 | 23| [Release](#release) () | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 | 24| [GetDeviceDescriptor](#getdevicedescriptor) ([in] unsigned long deviceId, [out] struct [UsbDeviceDescriptor](_usb_device_descriptor.md) desc) | 获取USB设备描述符。 | 25| [GetConfigDescriptor](#getconfigdescriptor) ([in] unsigned long deviceId, [in] unsigned char configIndex, [out] List< unsigned char > configDesc) | 获取配置描述符。 | 26| [ClaimInterface](#claiminterface) ([in] unsigned long deviceId, [in] unsigned char interfaceIndex, [out] unsigned long interfaceHandle) | 声明USB接口。 | 27| [ReleaseInterface](#releaseinterface) ([in] unsigned long interfaceHandle) | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 | 28| [SelectInterfaceSetting](#selectinterfacesetting) ([in] unsigned long interfaceHandle, [in] unsigned char settingIndex) | 激活USB接口的备用设置。 | 29| [GetCurrentInterfaceSetting](#getcurrentinterfacesetting) ([in] unsigned long interfaceHandle, [out] unsigned char settingIndex) | 获取USB接口的激活备用设置。 | 30| [SendControlReadRequest](#sendcontrolreadrequest) ([in] unsigned long interfaceHandle, [in] struct [UsbControlRequestSetup](_usb_control_request_setup.md) setup, [in] unsigned int timeout, [out] List< unsigned char > data) | 发送控制读取传输请求。此API以同步方式工作。 | 31| [SendControlWriteRequest](#sendcontrolwriterequest) ([in] unsigned long interfaceHandle, [in] struct [UsbControlRequestSetup](_usb_control_request_setup.md) setup, [in] unsigned int timeout, [in] List< unsigned char > data) | 发送控制写入传输请求。此API以同步方式工作。 | 32| [SendPipeRequest](#sendpiperequest) ([in] struct [UsbRequestPipe](_usb_request_pipe.md) pipe, [in] unsigned int size, [in] unsigned int offset, [in] unsigned int length, [out] unsigned int transferedLength) | 发送管道请求。此API以同步方式工作。此API适用于中断传输和批量传输。 | 33| [GetDeviceMemMapFd](#getdevicememmapfd) ([in] unsigned long deviceId, [out] FileDescriptor fd) | 获取内存映射的文件描述符。 | 34 35 36## 成员函数说明 37 38 39### ClaimInterface() 40 41``` 42IUsbDdk::ClaimInterface ([in] unsigned long deviceId, [in] unsigned char interfaceIndex, [out] unsigned long interfaceHandle ) 43``` 44**描述** 45 46声明USB接口。 47 48**起始版本:** 4.0 49 50**参数:** 51 52| 名称 | 描述 | 53| -------- | -------- | 54| deviceId | 要操作的设备的ID。 | 55| interfaceIndex | 接口索引,对应于USB协议中的**b接口编号**。 | 56| interfaceHandle | 接口操作处理。成功声明接口后,将为此参数分配一个值。 | 57 58**返回:** 59 600 表示操作成功。 61 62非零值 表示操作失败。 63 64 65### GetConfigDescriptor() 66 67``` 68IUsbDdk::GetConfigDescriptor ([in] unsigned long deviceId, [in] unsigned char configIndex, [out] List< unsigned char > configDesc ) 69``` 70**描述** 71 72获取配置描述符。 73 74**起始版本:** 4.0 75 76**参数:** 77 78| 名称 | 描述 | 79| -------- | -------- | 80| deviceId | 要获取其描述符的设备的设备Id。 | 81| configIndex | 配置索引,对应于USB协议中的**bConfigurationValue**。 | 82| configDesc | 配置描述符,包括USB协议中定义的标准配置描述符以及相关的接口描述符和端点描述符。 | 83 84**返回:** 85 860 表示操作成功。 87 88非零值 表示操作失败。 89 90 91### GetCurrentInterfaceSetting() 92 93``` 94IUsbDdk::GetCurrentInterfaceSetting ([in] unsigned long interfaceHandle, [out] unsigned char settingIndex ) 95``` 96**描述** 97 98获取USB接口的激活备用设置。 99 100**起始版本:** 4.0 101 102**参数:** 103 104| 名称 | 描述 | 105| -------- | -------- | 106| interfaceHandle | 接口操作处理。 | 107| settingIndex | 备用设置的索引,对应于USB协议中的**bAlternateSetting**。 | 108 109**返回:** 110 1110 表示操作成功。 112 113非零值 表示操作失败。 114 115 116### GetDeviceDescriptor() 117 118``` 119IUsbDdk::GetDeviceDescriptor ([in] unsigned long deviceId, [out] struct UsbDeviceDescriptor desc ) 120``` 121**描述** 122 123获取USB设备描述符。 124 125**起始版本:** 4.0 126 127**参数:** 128 129| 名称 | 描述 | 130| -------- | -------- | 131| deviceId | 要获取其描述符的设备的设备Id。 | 132| desc | USB协议中定义的标准设备描述符。 | 133 134**返回:** 135 1360 表示操作成功。 137 138非零值 表示操作失败。 139 140 141### GetDeviceMemMapFd() 142 143``` 144IUsbDdk::GetDeviceMemMapFd ([in] unsigned long deviceId, [out] FileDescriptor fd ) 145``` 146**描述** 147 148获取内存映射的文件描述符。 149 150**起始版本:** 4.0 151 152**参数:** 153 154| 名称 | 描述 | 155| -------- | -------- | 156| deviceId | 待操作设备的ID。 | 157| fd | 为内存映射获取的文件描述符。 | 158 159**返回:** 160 1610 表示操作成功。 162 163非零值 表示操作失败。 164 165 166### Init() 167 168``` 169IUsbDdk::Init () 170``` 171**描述** 172 173初始化DDK。 174 175**起始版本:** 4.0 176 177**返回:** 178 1790 表示操作成功。 180 181非零值 表示操作失败。 182 183 184### Release() 185 186``` 187IUsbDdk::Release () 188``` 189**描述** 190 191在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 192 193**起始版本:** 4.0 194 195**返回:** 196 1970 表示操作成功。 198 199非零值 表示操作失败。 200 201 202### ReleaseInterface() 203 204``` 205IUsbDdk::ReleaseInterface ([in] unsigned long interfaceHandle) 206``` 207**描述** 208 209在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 210 211**起始版本:** 4.0 212 213**参数:** 214 215| 名称 | 描述 | 216| -------- | -------- | 217| interfaceHandle | 接口操作处理。 | 218 219**返回:** 220 2210 表示操作成功。 222 223非零值 表示操作失败。 224 225 226### SelectInterfaceSetting() 227 228``` 229IUsbDdk::SelectInterfaceSetting ([in] unsigned long interfaceHandle, [in] unsigned char settingIndex ) 230``` 231**描述** 232 233激活USB接口的备用设置。 234 235**起始版本:** 4.0 236 237**参数:** 238 239| 名称 | 描述 | 240| -------- | -------- | 241| interfaceHandle | 接口操作处理。 | 242| settingIndex | 备用设置的索引,对应于USB协议中的**bAlternateSetting**。 | 243 244**返回:** 245 2460 表示操作成功。 247 248非零值 表示操作失败。 249 250 251### SendControlReadRequest() 252 253``` 254IUsbDdk::SendControlReadRequest ([in] unsigned long interfaceHandle, [in] struct UsbControlRequestSetup setup, [in] unsigned int timeout, [out] List< unsigned char > data ) 255``` 256**描述** 257 258发送控制读取传输请求。此API以同步方式工作。 259 260**起始版本:** 4.0 261 262**参数:** 263 264| 名称 | 描述 | 265| -------- | -------- | 266| interfaceHandle | 接口操作处理。 | 267| setup | 请求数据,对应于USB协议中的**Setup Data**。 | 268| timeout | 超时持续时间,以毫秒为单位。 | 269| data | 要传输的数据。 | 270 271**返回:** 272 2730 表示操作成功。 274 275非零值 表示操作失败。 276 277 278### SendControlWriteRequest() 279 280``` 281IUsbDdk::SendControlWriteRequest ([in] unsigned long interfaceHandle, [in] struct UsbControlRequestSetup setup, [in] unsigned int timeout, [in] List< unsigned char > data ) 282``` 283**描述** 284 285发送控制写入传输请求。此API以同步方式工作。 286 287**起始版本:** 4.0 288 289**参数:** 290 291| 名称 | 描述 | 292| -------- | -------- | 293| interfaceHandle | 接口操作处理。 | 294| setup | 请求数据,对应于USB协议中的**Setup Data**。 | 295| timeout | 超时持续时间,以毫秒为单位。 | 296| data | 要传输的数据。 | 297 298**返回:** 299 3000 表示操作成功。 301 302非零值 表示操作失败。 303 304 305### SendPipeRequest() 306 307``` 308IUsbDdk::SendPipeRequest ([in] struct UsbRequestPipe pipe, [in] unsigned int size, [in] unsigned int offset, [in] unsigned int length, [out] unsigned int transferedLength ) 309``` 310**描述** 311 312发送管道请求。此API以同步方式工作。此API适用于中断传输和批量传输。 313 314**起始版本:** 4.0 315 316**参数:** 317 318| 名称 | 描述 | 319| -------- | -------- | 320| 管道用于传输数据的管道。 | | 321| size | 缓冲区大小。 | 322| offset | 所用缓冲区的偏移量。默认值为0,表示没有偏移,缓冲区从指定地址开始。 | 323| length | 使用的缓冲区的长度。默认情况下,该值等于大小,表示使用了整个缓冲区。 | 324| transferedLength | 传输数据的长度。 | 325 326**返回:** 327 3280 表示操作成功。 329 330非零值 表示操作失败。 331