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 71**起始版本:** 3.2 72 73**参数:** 74 75| 名称 | 描述 | 76| -------- | -------- | 77| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber_v10.md)。 | 78 79**返回:** 80 810 表示操作成功。 82 83非零值 表示操作失败。 84 85 86### BulkCancel() 87 88``` 89IUsbInterface::BulkCancel ([in] struct UsbDev dev, [in] struct UsbPipe pipe ) 90``` 91**描述** 92 93批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 94 95**起始版本:** 3.2 96 97**参数:** 98 99| 名称 | 描述 | 100| -------- | -------- | 101| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 102| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 103 104**返回:** 105 1060 表示操作成功。 107 108非零值 表示操作失败。 109 110 111### BulkRead() 112 113``` 114IUsbInterface::BulkRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem ) 115``` 116**描述** 117 118批量传输异步读数据。 119 120**起始版本:** 3.2 121 122**参数:** 123 124| 名称 | 描述 | 125| -------- | -------- | 126| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 127| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 128| ashmem | 共享内存,用于存放读取的数据。 | 129 130**返回:** 131 1320 表示操作成功。 133 134非零值 表示操作失败。 135 136 137### BulkTransferRead() 138 139``` 140IUsbInterface::BulkTransferRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data ) 141``` 142**描述** 143 144在USB设备指定端点方向为读取时,执行批量数据读取。 145 146**起始版本:** 3.2 147 148**参数:** 149 150| 名称 | 描述 | 151| -------- | -------- | 152| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 153| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 154| timeout | 超时时间。 | 155| data | 读取的数据。 | 156 157**返回:** 158 1590 表示操作成功。 160 161非零值 表示操作失败。 162 163 164### BulkTransferWrite() 165 166``` 167IUsbInterface::BulkTransferWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data ) 168``` 169**描述** 170 171在USB设备指定端点方向为写入时,执行批量数据写入。 172 173**起始版本:** 3.2 174 175**参数:** 176 177| 名称 | 描述 | 178| -------- | -------- | 179| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 180| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 181| timeout | 超时时间。 | 182| data | 写入的数据。 | 183 184**返回:** 185 1860 表示操作成功。 187 188非零值 表示操作失败。 189 190 191### BulkWrite() 192 193``` 194IUsbInterface::BulkWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem ) 195``` 196**描述** 197 198批量传输异步写数据。 199 200**起始版本:** 3.2 201 202**参数:** 203 204| 名称 | 描述 | 205| -------- | -------- | 206| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 207| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 208| ashmem | 为共享内存,用于存放需要写入的数据。 | 209 210**返回:** 211 2120 表示操作成功。 213 214非零值 表示操作失败。 215 216 217### ClaimInterface() 218 219``` 220IUsbInterface::ClaimInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char force ) 221``` 222**描述** 223 224打开USB设备的接口并声明独占,必须在数据传输前执行。 225 226**起始版本:** 3.2 227 228**参数:** 229 230| 名称 | 描述 | 231| -------- | -------- | 232| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 233| interfaceid | USB设备接口ID。 | 234| force | 是否强制,1表示强制,0表示不强制。 | 235 236**返回:** 237 2380 表示操作成功。 239 240非零值 表示操作失败。 241 242 243### CloseDevice() 244 245``` 246IUsbInterface::CloseDevice ([in] struct UsbDev dev) 247``` 248**描述** 249 250关闭设备,释放与设备相关的所有系统资源。 251 252**起始版本:** 3.2 253 254**参数:** 255 256| 名称 | 描述 | 257| -------- | -------- | 258| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 259 260**返回:** 261 2620 表示操作成功。 263 264非零值 表示操作失败。 265 266 267### ControlTransferRead() 268 269``` 270IUsbInterface::ControlTransferRead ([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [out] unsigned char[] data ) 271``` 272**描述** 273 274在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 275 276**起始版本:** 3.2 277 278**参数:** 279 280| 名称 | 描述 | 281| -------- | -------- | 282| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 283| ctrl | USB设备控制数据,详见[UsbCtrlTransfer](_usb_ctrl_transfer_v10.md)。 | 284| data | 读取的数据。 | 285 286**返回:** 287 2880 表示成功。 289 290非零值 表示失败。 291 292 293### ControlTransferWrite() 294 295``` 296IUsbInterface::ControlTransferWrite ([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [in] unsigned char[] data ) 297``` 298**描述** 299 300在传输状态为写入并且控制端点是端点零时,对USB设备执行控制传输。 301 302**起始版本:** 3.2 303 304**参数:** 305 306| 名称 | 描述 | 307| -------- | -------- | 308| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 309| ctrl | USB设备控制数据,详见[UsbCtrlTransfer](_usb_ctrl_transfer_v10.md)。 | 310| data | 写入的数据。 | 311 312**返回:** 313 3140 表示成功。 315 316非零值 表示失败。 317 318 319### GetConfig() 320 321``` 322IUsbInterface::GetConfig ([in] struct UsbDev dev, [out] unsigned char configIndex ) 323``` 324**描述** 325 326获取USB设备当前的配置信息。 327 328**起始版本:** 3.2 329 330**参数:** 331 332| 名称 | 描述 | 333| -------- | -------- | 334| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 335| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 336 337**返回:** 338 3390 表示操作成功。 340 341非零值 表示操作失败。 342 343 344### GetConfigDescriptor() 345 346``` 347IUsbInterface::GetConfigDescriptor ([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor ) 348``` 349**描述** 350 351根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。 352 353**起始版本:** 3.2 354 355**参数:** 356 357| 名称 | 描述 | 358| -------- | -------- | 359| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 360| descId | USB设备的配置ID。 | 361| descriptor | 获取USB设备配置信息。 | 362 363**返回:** 364 3650 表示操作成功。 366 367非零值 表示操作失败。 368 369 370### GetCurrentFunctions() 371 372``` 373IUsbInterface::GetCurrentFunctions ([out] int funcs) 374``` 375**描述** 376 377获取USB设备当前的功能(按位域表示)。 378 379**起始版本:** 3.2 380 381**参数:** 382 383| 名称 | 描述 | 384| -------- | -------- | 385| funcs | 设备当前的功能值。 | 386 387**返回:** 388 3890 表示操作成功。 390 391非零值 表示操作失败。 392 393 394### GetDeviceDescriptor() 395 396``` 397IUsbInterface::GetDeviceDescriptor ([in] struct UsbDev dev, [out] unsigned char[] descriptor ) 398``` 399**描述** 400 401获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。 402 403**起始版本:** 3.2 404 405**参数:** 406 407| 名称 | 描述 | 408| -------- | -------- | 409| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 410| descriptor | USB设备的描述符信息。 | 411 412**返回:** 413 4140 表示操作成功。 415 416非零值 表示操作失败。 417 418 419### GetFileDescriptor() 420 421``` 422IUsbInterface::GetFileDescriptor ([in] struct UsbDev dev, [out] int fd ) 423``` 424**描述** 425 426获取USB设备的文件描述符。 427 428**起始版本:** 3.2 429 430**参数:** 431 432| 名称 | 描述 | 433| -------- | -------- | 434| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 435| fd | USB设备的文件描述符。 | 436 437**返回:** 438 4390 表示操作成功。 440 441非零值 表示操作失败。 442 443 444### GetRawDescriptor() 445 446``` 447IUsbInterface::GetRawDescriptor ([in] struct UsbDev dev, [out] unsigned char[] descriptor ) 448``` 449**描述** 450 451获取USB设备的原始描述符。 452 453**起始版本:** 3.2 454 455**参数:** 456 457| 名称 | 描述 | 458| -------- | -------- | 459| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 460| descriptor | USB设备的原始描述符。 | 461 462**返回:** 463 4640 表示操作成功。 465 466非零值 表示操作失败。 467 468 469### GetStringDescriptor() 470 471``` 472IUsbInterface::GetStringDescriptor ([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor ) 473``` 474**描述** 475 476根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。 477 478**起始版本:** 3.2 479 480**参数:** 481 482| 名称 | 描述 | 483| -------- | -------- | 484| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 485| descId | USB设备的描述符ID。 | 486| descriptor | 获取USB设备的字符串描述符。 | 487 488**返回:** 489 4900 表示操作成功。 491 492非零值 表示操作失败。 493 494 495### InterruptTransferRead() 496 497``` 498IUsbInterface::InterruptTransferRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data ) 499``` 500**描述** 501 502在USB设备指定端点方向为数据读取时执行中断数据读取。 503 504**起始版本:** 3.2 505 506**参数:** 507 508| 名称 | 描述 | 509| -------- | -------- | 510| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 511| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 512| timeout | 超时时间。 | 513| data | 读取的数据。 | 514 515**返回:** 516 5170 表示操作成功。 518 519非零值 表示操作失败。 520 521 522### InterruptTransferWrite() 523 524``` 525IUsbInterface::InterruptTransferWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data ) 526``` 527**描述** 528 529在USB设备指定端点方向为写入时执行中断数据写入。 530 531**起始版本:** 3.2 532 533**参数:** 534 535| 名称 | 描述 | 536| -------- | -------- | 537| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 538| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 539| timeout | 超时时间。 | 540| data | 写入的数据。 | 541 542**返回:** 543 5440 表示操作成功。 545 546非零值 表示操作失败。 547 548 549### IsoTransferRead() 550 551``` 552IUsbInterface::IsoTransferRead ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data ) 553``` 554**描述** 555 556在USB设备指定端点方向为读取时执行等时数据读取。 557 558**起始版本:** 3.2 559 560**参数:** 561 562| 名称 | 描述 | 563| -------- | -------- | 564| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 565| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 566| timeout | 超时时间。 | 567| data | 读取的数据。 | 568 569**返回:** 570 5710 表示操作成功。 572 573非零值 表示操作失败。 574 575 576### IsoTransferWrite() 577 578``` 579IUsbInterface::IsoTransferWrite ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data ) 580``` 581**描述** 582 583在USB设备指定端点方向为写入时执行等时数据写入。 584 585**起始版本:** 3.2 586 587**参数:** 588 589| 名称 | 描述 | 590| -------- | -------- | 591| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 592| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 593| timeout | 超时时间。 | 594| data | 写入的数据。 | 595 596**返回:** 597 5980 表示操作成功。 599 600非零值 表示操作失败。 601 602 603### ManageInterface() 604 605``` 606IUsbInterface::ManageInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] bool disable ) 607``` 608**描述** 609 610设置USB设备接口启动状态。 611 612**起始版本:** 3.2 613 614**参数:** 615 616| 名称 | 描述 | 617| -------- | -------- | 618| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 619| interfaceid | USB设备接口ID。 | 620| disable | USB设备接口是否禁用,true表示禁用,false表示不禁用。 | 621 622**返回:** 623 6240 表示操作成功。 625 626非零值 表示操作失败。 627 628 629### OpenDevice() 630 631``` 632IUsbInterface::OpenDevice ([in] struct UsbDev dev) 633``` 634**描述** 635 636打开设备,建立连接。 637 638**起始版本:** 3.2 639 640**参数:** 641 642| 名称 | 描述 | 643| -------- | -------- | 644| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 645 646**返回:** 647 6480 表示操作成功。 649 650非零值 表示操作失败。 651 652 653### QueryPort() 654 655``` 656IUsbInterface::QueryPort ([out] int portId, [out] int powerRole, [out] int dataRole, [out] int mode ) 657``` 658**描述** 659 660查询USB设备端口的当前设置信息。 661 662**起始版本:** 3.2 663 664**参数:** 665 666| 名称 | 描述 | 667| -------- | -------- | 668| portId | USB设备端口ID。 | 669| powerRole | USB设备电源角色。 | 670| dataRole | USB设备数据角色。 | 671| mode | USB设备模式。 | 672 673**返回:** 674 6750 表示操作成功。 676 677非零值 表示操作失败。 678 679 680### RegBulkCallback() 681 682``` 683IUsbInterface::RegBulkCallback ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] IUsbdBulkCallback cb ) 684``` 685**描述** 686 687注册批量传输异步回调函数。 688 689**起始版本:** 3.2 690 691**参数:** 692 693| 名称 | 描述 | 694| -------- | -------- | 695| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 696| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 697| cb | 回调函数对象,详见[IUsbdBulkCallback](interface_i_usbd_bulk_callback_v10.md)。 | 698 699**返回:** 700 7010 表示操作成功。 702 703非零值 表示操作失败。 704 705 706### ReleaseInterface() 707 708``` 709IUsbInterface::ReleaseInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid ) 710``` 711**描述** 712 713在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 714 715**起始版本:** 3.2 716 717**参数:** 718 719| 名称 | 描述 | 720| -------- | -------- | 721| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 722| interfaceid | USB设备接口ID。 | 723 724**返回:** 725 7260 表示操作成功。 727 728非零值 表示操作失败。 729 730 731### RequestCancel() 732 733``` 734IUsbInterface::RequestCancel ([in] struct UsbDev dev, [in] struct UsbPipe pipe ) 735``` 736**描述** 737 738取消待处理的数据请求。 739 740**起始版本:** 3.2 741 742**参数:** 743 744| 名称 | 描述 | 745| -------- | -------- | 746| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 747| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 748 749**返回:** 750 7510 表示操作成功。 752 753非零值 表示操作失败。 754 755 756### RequestQueue() 757 758``` 759IUsbInterface::RequestQueue ([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] unsigned char[] clientData, [in] unsigned char[] buffer ) 760``` 761**描述** 762 763在USB设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 764 765**起始版本:** 3.2 766 767**参数:** 768 769| 名称 | 描述 | 770| -------- | -------- | 771| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 772| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 773| clientData | 用户数据。 | 774| buffer | 传输的数据。 | 775 776**返回:** 777 7780 表示操作成功。 779 780非零值 表示操作失败。 781 782 783### RequestWait() 784 785``` 786IUsbInterface::RequestWait ([in] struct UsbDev dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout ) 787``` 788**描述** 789 790等待RequestQueue异步请求的操作结果。 791 792**起始版本:** 3.2 793 794**参数:** 795 796| 名称 | 描述 | 797| -------- | -------- | 798| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 799| clientData | 用户数据。 | 800| buffer | 传输的数据。 | 801| timeout | 超时时间。 | 802 803**返回:** 804 8050 表示操作成功。 806 807非零值 表示操作失败。 808 809 810### SetConfig() 811 812``` 813IUsbInterface::SetConfig ([in] struct UsbDev dev, [in] unsigned char configIndex ) 814``` 815**描述** 816 817设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。 818 819**起始版本:** 3.2 820 821**参数:** 822 823| 名称 | 描述 | 824| -------- | -------- | 825| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 826| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 827 828**返回:** 829 8300 表示操作成功。 831 832非零值 表示操作失败。 833 834 835### SetCurrentFunctions() 836 837``` 838IUsbInterface::SetCurrentFunctions ([in] int funcs) 839``` 840**描述** 841 842设置USB设备当前的功能(按位域表示)。 843 844**起始版本:** 3.2 845 846**参数:** 847 848| 名称 | 描述 | 849| -------- | -------- | 850| funcs | 待设置的设备功能值。 | 851 852**返回:** 853 8540 表示操作成功。 855 856非零值 表示操作失败。 857 858 859### SetInterface() 860 861``` 862IUsbInterface::SetInterface ([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char altIndex ) 863``` 864**描述** 865 866设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 867 868**起始版本:** 3.2 869 870**参数:** 871 872| 名称 | 描述 | 873| -------- | -------- | 874| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 875| interfaceid | USB设备接口ID。 | 876| altIndex | USB设备接口的备用设置信息。 | 877 878**返回:** 879 8800 表示操作成功。 881 882非零值 表示操作失败。 883 884 885### SetPortRole() 886 887``` 888IUsbInterface::SetPortRole ([in] int portId, [in] int powerRole, [in] int dataRole ) 889``` 890**描述** 891 892设置USB设备端口的角色。 893 894**起始版本:** 3.2 895 896**参数:** 897 898| 名称 | 描述 | 899| -------- | -------- | 900| portId | USB设备端口ID。 | 901| powerRole | 电源角色的值。 | 902| dataRole | 数据角色的值。 | 903 904**返回:** 905 9060 表示操作成功。 907 908非零值 表示操作失败。 909 910 911### UnbindUsbdSubscriber() 912 913``` 914IUsbInterface::UnbindUsbdSubscriber ([in] IUsbdSubscriber subscriber) 915``` 916**描述** 917 918解绑订阅者。 919 920**起始版本:** 3.2 921 922**参数:** 923 924| 名称 | 描述 | 925| -------- | -------- | 926| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber_v10.md)。 | 927 928**返回:** 929 9300 表示操作成功。 931 932非零值 表示操作失败。 933 934 935### UnRegBulkCallback() 936 937``` 938IUsbInterface::UnRegBulkCallback ([in] struct UsbDev dev, [in] struct UsbPipe pipe ) 939``` 940**描述** 941 942注销批量传输异步回调函数。 943 944**起始版本:** 3.2 945 946**参数:** 947 948| 名称 | 描述 | 949| -------- | -------- | 950| dev | USB设备地址信息,详见[UsbDev](_usb_dev_v10.md)。 | 951| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe_v10.md)。 | 952 953**返回:** 954 9550 表示操作成功。 956 957非零值 表示操作失败。 958