1# IUsbInterface 2 3 4## 概述 5 6定义USB驱动基本的操作功能。 7 8上层USB服务调用相关功能接口,可以打开/关闭设备,获取设备描述符,批量读取/写入数据等。 9 10**起始版本:** 3.2 11 12**相关模块:**[USB](_u_s_b_v10.md) 13 14 15## 汇总 16 17 18### Public 成员函数 19 20| 名称 | 描述 | 21| -------- | -------- | 22| [OpenDevice](#opendevice) ([in] struct [UsbDev](_usb_dev_v10.md) dev) | 打开设备,建立连接。 | 23| [CloseDevice](#closedevice) ([in] struct [UsbDev](_usb_dev_v10.md) dev) | 关闭设备,释放与设备相关的所有系统资源。 | 24| [GetDeviceDescriptor](#getdevicedescriptor) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [out] unsigned char[] descriptor) | 获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。 | 25| [GetStringDescriptor](#getstringdescriptor) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char descId, [out] unsigned char[] descriptor) | 根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。 | 26| [GetConfigDescriptor](#getconfigdescriptor) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char descId, [out] unsigned char[] descriptor) | 根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。 | 27| [GetRawDescriptor](#getrawdescriptor) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [out] unsigned char[] descriptor) | 获取USB设备的原始描述符。 | 28| [GetFileDescriptor](#getfiledescriptor) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [out] int fd) | 获取USB设备的文件描述符。 | 29| [SetConfig](#setconfig) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char configIndex) | 设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。 | 30| [GetConfig](#getconfig) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [out] unsigned char configIndex) | 获取USB设备当前的配置信息。 | 31| [ClaimInterface](#claiminterface) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char interfaceid, [in] unsigned char force) | 打开USB设备的接口并声明独占,必须在数据传输前执行。 | 32| [ReleaseInterface](#releaseinterface) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char interfaceid) | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 | 33| [ManageInterface](#manageinterface) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char interfaceid, [in] bool disable) | 设置USB设备接口启动状态。 | 34| [SetInterface](#setinterface) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] unsigned char interfaceid, [in] unsigned char altIndex) | 设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 | 35| [BulkTransferRead](#bulktransferread) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时,执行批量数据读取。 | 36| [BulkTransferWrite](#bulktransferwrite) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时,执行批量数据写入。 | 37| [ControlTransferRead](#controltransferread) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbCtrlTransfer](_usb_ctrl_transfer_v10.md) ctrl, [out] unsigned char[] data) | 在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 | 38| [ControlTransferWrite](#controltransferwrite) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbCtrlTransfer](_usb_ctrl_transfer_v10.md) ctrl, [in] unsigned char[] data) | 在传输状态为写入并且控制端点是端点零时,对USB设备执行控制传输。 | 39| [InterruptTransferRead](#interrupttransferread) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为数据读取时执行中断数据读取。 | 40| [InterruptTransferWrite](#interrupttransferwrite) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时执行中断数据写入。 | 41| [IsoTransferRead](#isotransferread) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时执行等时数据读取。 | 42| [IsoTransferWrite](#isotransferwrite) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时执行等时数据写入。 | 43| [RequestQueue](#requestqueue) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] unsigned char[] clientData, [in] unsigned char[] buffer) | 在USB设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 | 44| [RequestWait](#requestwait) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout) | 等待RequestQueue异步请求的操作结果。 | 45| [RequestCancel](#requestcancel) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe) | 取消待处理的数据请求。 | 46| [GetCurrentFunctions](#getcurrentfunctions) ([out] int funcs) | 获取USB设备当前的功能(按位域表示)。 | 47| [SetCurrentFunctions](#setcurrentfunctions) ([in] int funcs) | 设置USB设备当前的功能(按位域表示)。 | 48| [SetPortRole](#setportrole) ([in] int portId, [in] int powerRole, [in] int dataRole) | 设置USB设备端口的角色。 | 49| [QueryPort](#queryport) ([out] int portId, [out] int powerRole, [out] int dataRole, [out] int mode) | 查询USB设备端口的当前设置信息。 | 50| [BindUsbdSubscriber](#bindusbdsubscriber) ([in] [IUsbdSubscriber](interface_i_usbd_subscriber_v10.md) subscriber) | 绑定订阅者。 | 51| [UnbindUsbdSubscriber](#unbindusbdsubscriber) ([in] [IUsbdSubscriber](interface_i_usbd_subscriber_v10.md) subscriber) | 解绑订阅者。 | 52| [RegBulkCallback](#regbulkcallback) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] [IUsbdBulkCallback](interface_i_usbd_bulk_callback_v10.md) cb) | 注册批量传输异步回调函数。 | 53| [UnRegBulkCallback](#unregbulkcallback) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe) | 注销批量传输异步回调函数。 | 54| [BulkRead](#bulkread) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] Ashmem ashmem) | 批量传输异步读数据。 | 55| [BulkWrite](#bulkwrite) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe, [in] Ashmem ashmem) | 批量传输异步写数据。 | 56| [BulkCancel](#bulkcancel) ([in] struct [UsbDev](_usb_dev_v10.md) dev, [in] struct [UsbPipe](_usb_pipe_v10.md) pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 | 57 58 59## 成员函数说明 60 61 62### BindUsbdSubscriber() 63 64``` 65IUsbInterface::BindUsbdSubscriber ([in] IUsbdSubscriber subscriber) 66``` 67**描述** 68绑定订阅者。 69 70**起始版本:** 3.2 71 72**参数:** 73 74| 名称 | 描述 | 75| -------- | -------- | 76| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber_v10.md)。 | 77 78**返回:** 79 800 表示操作成功。 81 82非零值 表示操作失败。 83 84 85### BulkCancel() 86 87``` 88IUsbInterface::BulkCancel ([in] struct UsbDev dev, [in] struct UsbPipe pipe ) 89``` 90**描述** 91批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 92 93**起始版本:** 3.2 94 95**参数:** 96 97| 名称 | 描述 | 98| -------- | -------- | 99| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 100| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 101 102**返回:** 103 1040 表示操作成功。 105 106非零值 表示操作失败。 107 108 109### BulkRead() 110 111``` 112IUsbInterface::BulkRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem ) 113``` 114**描述** 115批量传输异步读数据。 116 117**起始版本:** 3.2 118 119**参数:** 120 121| 名称 | 描述 | 122| -------- | -------- | 123| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 124| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 125| ashmem | 共享内存,用于存放读取的数据。 | 126 127**返回:** 128 1290 表示操作成功。 130 131非零值 表示操作失败。 132 133 134### BulkTransferRead() 135 136``` 137IUsbInterface::BulkTransferRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data ) 138``` 139**描述** 140在USB设备指定端点方向为读取时,执行批量数据读取。 141 142**起始版本:** 3.2 143 144**参数:** 145 146| 名称 | 描述 | 147| -------- | -------- | 148| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 149| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 150| timeout | 超时时间。 | 151| data | 读取的数据。 | 152 153**返回:** 154 1550 表示操作成功。 156 157非零值 表示操作失败。 158 159 160### BulkTransferWrite() 161 162``` 163IUsbInterface::BulkTransferWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data ) 164``` 165**描述** 166在USB设备指定端点方向为写入时,执行批量数据写入。 167 168**起始版本:** 3.2 169 170**参数:** 171 172| 名称 | 描述 | 173| -------- | -------- | 174| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 175| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 176| timeout | 超时时间。 | 177| data | 写入的数据。 | 178 179**返回:** 180 1810 表示操作成功。 182 183非零值 表示操作失败。 184 185 186### BulkWrite() 187 188``` 189IUsbInterface::BulkWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem ) 190``` 191**描述** 192批量传输异步写数据。 193 194**起始版本:** 3.2 195 196**参数:** 197 198| 名称 | 描述 | 199| -------- | -------- | 200| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 201| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 202| ashmem | 为共享内存,用于存放需要写入的数据。 | 203 204**返回:** 205 2060 表示操作成功。 207 208非零值 表示操作失败。 209 210 211### ClaimInterface() 212 213``` 214IUsbInterface::ClaimInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char force ) 215``` 216**描述** 217打开USB设备的接口并声明独占,必须在数据传输前执行。 218 219**起始版本:** 3.2 220 221**参数:** 222 223| 名称 | 描述 | 224| -------- | -------- | 225| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 226| interfaceid | USB设备接口ID。 | 227| force | 是否强制,1表示强制,0表示不强制。 | 228 229**返回:** 230 2310 表示操作成功。 232 233非零值 表示操作失败。 234 235 236### CloseDevice() 237 238``` 239IUsbInterface::CloseDevice ([in] struct UsbDev dev) 240``` 241**描述** 242关闭设备,释放与设备相关的所有系统资源。 243 244**起始版本:** 3.2 245 246**参数:** 247 248| 名称 | 描述 | 249| -------- | -------- | 250| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 251 252**返回:** 253 2540 表示操作成功。 255 256非零值 表示操作失败。 257 258 259### ControlTransferRead() 260 261``` 262IUsbInterface::ControlTransferRead ([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [out] unsigned char[] data ) 263``` 264**描述** 265在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 266 267**起始版本:** 3.2 268 269**参数:** 270 271| 名称 | 描述 | 272| -------- | -------- | 273| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 274| ctrl | USB设备控制数据,详见[UsbCtrlTransfer](_usb_ctrl_transfer_v10.md)。 | 275| data | 读取的数据。 | 276 277**返回:** 278 2790 表示成功。 280 281非零值 表示失败。 282 283 284### ControlTransferWrite() 285 286``` 287IUsbInterface::ControlTransferWrite ([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [in] unsigned char[] data ) 288``` 289**描述** 290在传输状态为写入并且控制端点是端点零时,对USB设备执行控制传输。 291 292**起始版本:** 3.2 293 294**参数:** 295 296| 名称 | 描述 | 297| -------- | -------- | 298| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 299| ctrl | USB设备控制数据,详见[UsbCtrlTransfer](_usb_ctrl_transfer_v10.md)。 | 300| data | 写入的数据。 | 301 302**返回:** 303 3040 表示成功。 305 306非零值 表示失败。 307 308 309### GetConfig() 310 311``` 312IUsbInterface::GetConfig ([in] struct UsbDev dev, [out] unsigned char configIndex ) 313``` 314**描述** 315获取USB设备当前的配置信息。 316 317**起始版本:** 3.2 318 319**参数:** 320 321| 名称 | 描述 | 322| -------- | -------- | 323| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 324| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 325 326**返回:** 327 3280 表示操作成功。 329 330非零值 表示操作失败。 331 332 333### GetConfigDescriptor() 334 335``` 336IUsbInterface::GetConfigDescriptor ([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor ) 337``` 338**描述** 339根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。 340 341**起始版本:** 3.2 342 343**参数:** 344 345| 名称 | 描述 | 346| -------- | -------- | 347| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 348| descId | USB设备的配置ID。 | 349| descriptor | 获取USB设备配置信息。 | 350 351**返回:** 352 3530 表示操作成功。 354 355非零值 表示操作失败。 356 357 358### GetCurrentFunctions() 359 360``` 361IUsbInterface::GetCurrentFunctions ([out] int funcs) 362``` 363**描述** 364获取USB设备当前的功能(按位域表示)。 365 366**起始版本:** 3.2 367 368**参数:** 369 370| 名称 | 描述 | 371| -------- | -------- | 372| funcs | 设备当前的功能值。 | 373 374**返回:** 375 3760 表示操作成功。 377 378非零值 表示操作失败。 379 380 381### GetDeviceDescriptor() 382 383``` 384IUsbInterface::GetDeviceDescriptor ([in] struct UsbDev dev, [out] unsigned char[] descriptor ) 385``` 386**描述** 387获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。 388 389**起始版本:** 3.2 390 391**参数:** 392 393| 名称 | 描述 | 394| -------- | -------- | 395| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 396| descriptor | USB设备的描述符信息。 | 397 398**返回:** 399 4000 表示操作成功。 401 402非零值 表示操作失败。 403 404 405### GetFileDescriptor() 406 407``` 408IUsbInterface::GetFileDescriptor ([in] struct UsbDev dev, [out] int fd ) 409``` 410**描述** 411获取USB设备的文件描述符。 412 413**起始版本:** 3.2 414 415**参数:** 416 417| 名称 | 描述 | 418| -------- | -------- | 419| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 420| fd | USB设备的文件描述符。 | 421 422**返回:** 423 4240 表示操作成功。 425 426非零值 表示操作失败。 427 428 429### GetRawDescriptor() 430 431``` 432IUsbInterface::GetRawDescriptor ([in] struct UsbDev dev, [out] unsigned char[] descriptor ) 433``` 434**描述** 435获取USB设备的原始描述符。 436 437**起始版本:** 3.2 438 439**参数:** 440 441| 名称 | 描述 | 442| -------- | -------- | 443| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 444| descriptor | USB设备的原始描述符。 | 445 446**返回:** 447 4480 表示操作成功。 449 450非零值 表示操作失败。 451 452 453### GetStringDescriptor() 454 455``` 456IUsbInterface::GetStringDescriptor ([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor ) 457``` 458**描述** 459根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。 460 461**起始版本:** 3.2 462 463**参数:** 464 465| 名称 | 描述 | 466| -------- | -------- | 467| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 468| descId | USB设备的描述符ID。 | 469| descriptor | 获取USB设备的字符串描述符。 | 470 471**返回:** 472 4730 表示操作成功。 474 475非零值 表示操作失败。 476 477 478### InterruptTransferRead() 479 480``` 481IUsbInterface::InterruptTransferRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data ) 482``` 483**描述** 484在USB设备指定端点方向为数据读取时执行中断数据读取。 485 486**起始版本:** 3.2 487 488**参数:** 489 490| 名称 | 描述 | 491| -------- | -------- | 492| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 493| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 494| timeout | 超时时间。 | 495| data | 读取的数据。 | 496 497**返回:** 498 4990 表示操作成功。 500 501非零值 表示操作失败。 502 503 504### InterruptTransferWrite() 505 506``` 507IUsbInterface::InterruptTransferWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data ) 508``` 509**描述** 510在USB设备指定端点方向为写入时执行中断数据写入。 511 512**起始版本:** 3.2 513 514**参数:** 515 516| 名称 | 描述 | 517| -------- | -------- | 518| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 519| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 520| timeout | 超时时间。 | 521| data | 写入的数据。 | 522 523**返回:** 524 5250 表示操作成功。 526 527非零值 表示操作失败。 528 529 530### IsoTransferRead() 531 532``` 533IUsbInterface::IsoTransferRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data ) 534``` 535**描述** 536在USB设备指定端点方向为读取时执行等时数据读取。 537 538**起始版本:** 3.2 539 540**参数:** 541 542| 名称 | 描述 | 543| -------- | -------- | 544| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 545| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 546| timeout | 超时时间。 | 547| data | 读取的数据。 | 548 549**返回:** 550 5510 表示操作成功。 552 553非零值 表示操作失败。 554 555 556### IsoTransferWrite() 557 558``` 559IUsbInterface::IsoTransferWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data ) 560``` 561**描述** 562在USB设备指定端点方向为写入时执行等时数据写入。 563 564**起始版本:** 3.2 565 566**参数:** 567 568| 名称 | 描述 | 569| -------- | -------- | 570| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 571| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 572| timeout | 超时时间。 | 573| data | 写入的数据。 | 574 575**返回:** 576 5770 表示操作成功。 578 579非零值 表示操作失败。 580 581 582### ManageInterface() 583 584``` 585IUsbInterface::ManageInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] bool disable ) 586``` 587**描述** 588设置USB设备接口启动状态。 589 590**起始版本:** 3.2 591 592**参数:** 593 594| 名称 | 描述 | 595| -------- | -------- | 596| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 597| interfaceid | USB设备接口ID。 | 598| disable | USB设备接口是否禁用,true表示禁用,false表示不禁用。 | 599 600**返回:** 601 6020 表示操作成功。 603 604非零值 表示操作失败。 605 606 607### OpenDevice() 608 609``` 610IUsbInterface::OpenDevice ([in] struct UsbDev dev) 611``` 612**描述** 613打开设备,建立连接。 614 615**起始版本:** 3.2 616 617**参数:** 618 619| 名称 | 描述 | 620| -------- | -------- | 621| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 622 623**返回:** 624 6250 表示操作成功。 626 627非零值 表示操作失败。 628 629 630### QueryPort() 631 632``` 633IUsbInterface::QueryPort ([out] int portId, [out] int powerRole, [out] int dataRole, [out] int mode ) 634``` 635**描述** 636查询USB设备端口的当前设置信息。 637 638**起始版本:** 3.2 639 640**参数:** 641 642| 名称 | 描述 | 643| -------- | -------- | 644| portId | USB设备端口ID。 | 645| powerRole | USB设备电源角色。 | 646| dataRole | USB设备数据角色。 | 647| mode | USB设备模式。 | 648 649**返回:** 650 6510 表示操作成功。 652 653非零值 表示操作失败。 654 655 656### RegBulkCallback() 657 658``` 659IUsbInterface::RegBulkCallback ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] IUsbdBulkCallback cb ) 660``` 661**描述** 662注册批量传输异步回调函数。 663 664**起始版本:** 3.2 665 666**参数:** 667 668| 名称 | 描述 | 669| -------- | -------- | 670| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 671| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 672| cb | 回调函数对象,详见[IUsbdBulkCallback](interface_i_usbd_bulk_callback_v10.md)。 | 673 674**返回:** 675 6760 表示操作成功。 677 678非零值 表示操作失败。 679 680 681### ReleaseInterface() 682 683``` 684IUsbInterface::ReleaseInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid ) 685``` 686**描述** 687在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 688 689**起始版本:** 3.2 690 691**参数:** 692 693| 名称 | 描述 | 694| -------- | -------- | 695| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 696| interfaceid | USB设备接口ID。 | 697 698**返回:** 699 7000 表示操作成功。 701 702非零值 表示操作失败。 703 704 705### RequestCancel() 706 707``` 708IUsbInterface::RequestCancel ([in] struct UsbDev dev, [in] struct UsbPipe pipe ) 709``` 710**描述** 711取消待处理的数据请求。 712 713**起始版本:** 3.2 714 715**参数:** 716 717| 名称 | 描述 | 718| -------- | -------- | 719| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 720| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 721 722**返回:** 723 7240 表示操作成功。 725 726非零值 表示操作失败。 727 728 729### RequestQueue() 730 731``` 732IUsbInterface::RequestQueue ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] unsigned char[] clientData, [in] unsigned char[] buffer ) 733``` 734**描述** 735在USB设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 736 737**起始版本:** 3.2 738 739**参数:** 740 741| 名称 | 描述 | 742| -------- | -------- | 743| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 744| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 745| clientData | 用户数据。 | 746| buffer | 传输的数据。 | 747 748**返回:** 749 7500 表示操作成功。 751 752非零值 表示操作失败。 753 754 755### RequestWait() 756 757``` 758IUsbInterface::RequestWait ([in] struct UsbDev dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout ) 759``` 760**描述** 761等待RequestQueue异步请求的操作结果。 762 763**起始版本:** 3.2 764 765**参数:** 766 767| 名称 | 描述 | 768| -------- | -------- | 769| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 770| clientData | 用户数据。 | 771| buffer | 传输的数据。 | 772| timeout | 超时时间。 | 773 774**返回:** 775 7760 表示操作成功。 777 778非零值 表示操作失败。 779 780 781### SetConfig() 782 783``` 784IUsbInterface::SetConfig ([in] struct UsbDev dev, [in] unsigned char configIndex ) 785``` 786**描述** 787设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。 788 789**起始版本:** 3.2 790 791**参数:** 792 793| 名称 | 描述 | 794| -------- | -------- | 795| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 796| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 797 798**返回:** 799 8000 表示操作成功。 801 802非零值 表示操作失败。 803 804 805### SetCurrentFunctions() 806 807``` 808IUsbInterface::SetCurrentFunctions ([in] int funcs) 809``` 810**描述** 811设置USB设备当前的功能(按位域表示)。 812 813**起始版本:** 3.2 814 815**参数:** 816 817| 名称 | 描述 | 818| -------- | -------- | 819| funcs | 待设置的设备功能值。 | 820 821**返回:** 822 8230 表示操作成功。 824 825非零值 表示操作失败。 826 827 828### SetInterface() 829 830``` 831IUsbInterface::SetInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char altIndex ) 832``` 833**描述** 834设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 835 836**起始版本:** 3.2 837 838**参数:** 839 840| 名称 | 描述 | 841| -------- | -------- | 842| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 843| interfaceid | USB设备接口ID。 | 844| altIndex | USB设备接口的备用设置信息。 | 845 846**返回:** 847 8480 表示操作成功。 849 850非零值 表示操作失败。 851 852 853### SetPortRole() 854 855``` 856IUsbInterface::SetPortRole ([in] int portId, [in] int powerRole, [in] int dataRole ) 857``` 858**描述** 859设置USB设备端口的角色。 860 861**起始版本:** 3.2 862 863**参数:** 864 865| 名称 | 描述 | 866| -------- | -------- | 867| portId | USB设备端口ID。 | 868| powerRole | 电源角色的值。 | 869| dataRole | 数据角色的值。 | 870 871**返回:** 872 8730 表示操作成功。 874 875非零值 表示操作失败。 876 877 878### UnbindUsbdSubscriber() 879 880``` 881IUsbInterface::UnbindUsbdSubscriber ([in] IUsbdSubscriber subscriber) 882``` 883**描述** 884解绑订阅者。 885 886**起始版本:** 3.2 887 888**参数:** 889 890| 名称 | 描述 | 891| -------- | -------- | 892| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber_v10.md)。 | 893 894**返回:** 895 8960 表示操作成功。 897 898非零值 表示操作失败。 899 900 901### UnRegBulkCallback() 902 903``` 904IUsbInterface::UnRegBulkCallback ([in] struct UsbDev dev, [in] struct UsbPipe pipe ) 905``` 906**描述** 907注销批量传输异步回调函数。 908 909**起始版本:** 3.2 910 911**参数:** 912 913| 名称 | 描述 | 914| -------- | -------- | 915| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 916| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 917 918**返回:** 919 9200 表示操作成功。 921 922非零值 表示操作失败。 923