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