1# IUsbHostInterface 2 3 4## 概述 5 6**相关模块:**[HdiUsb](_hdi_usb_v2_0.md) 7 8 9## 汇总 10 11 12### Public 成员函数 13 14| 名称 | 描述 | 15| -------- | -------- | 16| [OpenDevice](#opendevice)([in] struct [UsbDev](_usb_dev.md) dev) | 打开设备,建立连接。 | 17| [CloseDevice](#closedevice)([in] struct [UsbDev](_usb_dev.md) dev) | 关闭设备,释放与设备相关的所有系统资源。 | 18| [ResetDevice](#resetdevice)([in] struct [UsbDev](_usb_dev.md) dev) | 重置设备。 | 19| [ClaimInterface](#claiminterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [in] unsigned char force) | 打开USB设备的接口并声明独占,必须在数据传输前执行。 | 20| [SetInterface](#setinterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [in] unsigned char altIndex) | 设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 | 21| [ReleaseInterface](#releaseinterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid) | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 | 22| [SetConfig](#setconfig)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char configIndex) | 设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。 | 23| [ManageInterface](#manageinterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [in] boolean disable) | 设置USB设备接口启动状态。 | 24| [ClearHalt](#clearhalt)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 清除端点的暂停状态。 | 25| [GetDeviceSpeed](#getdevicespeed)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char speed) | 获取USB设备速率。 | 26| [GetDeviceFileDescriptor](#getdevicefiledescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] FileDescriptor fd) | 获取文件描述符。 | 27| [GetStringDescriptor](#getstringdescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char descId, [out] unsigned char[] descriptor) | 根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。 | 28| [GetRawDescriptor](#getrawdescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char[] descriptor) | 获取USB设备的原始描述符。 | 29| [GetConfig](#getconfig)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char configIndex) | 获取USB设备当前的配置信息。 | 30| [GetInterfaceActiveStatus](#getinterfaceactivestatus)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [out] boolean unactivated) | 获取USB设备接口的激活信息。 | 31| [GetDeviceDescriptor](#getdevicedescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char[] descriptor) | 获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。 | 32| [GetConfigDescriptor](#getconfigdescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char descId, [out] unsigned char[] descriptor) | 根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。 | 33| [GetFileDescriptor](#getfiledescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] int fd) | 获取USB设备的文件描述符。 | 34| [RequestQueue](#requestqueue)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] unsigned char[] clientData, [in] unsigned char[] buffer) | 在USB设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 | 35| [RequestWait](#requestwait)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout) | 等待RequestQueue异步请求的操作结果。 | 36| [RequestCancel](#requestcancel)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 取消待处理的数据请求。 | 37| [BulkTransferRead](#bulktransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时,执行批量数据读取。 | 38| [BulkTransferWrite](#bulktransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时,执行批量数据写入。 | 39| [BulkTransferReadwithLength](#bulktransferreadwithlength)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] int length, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时,执行批量数据读取。 | 40| [RegBulkCallback](#regbulkcallback)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] [IUsbdBulkCallback](interface_i_usbd_bulk_callback.md) cb) | 注册批量传输异步回调函数。 | 41| [UnRegBulkCallback](#unregbulkcallback)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 注销批量传输异步回调函数。 | 42| [BulkRead](#bulkread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] Ashmem ashmem) | 批量传输异步读数据。 | 43| [BulkWrite](#bulkwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] Ashmem ashmem) | 批量传输异步写数据。 | 44| [BulkCancel](#bulkcancel)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 | 45| [ControlTransferRead](#controltransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbCtrlTransfer](_usb_ctrl_transfer.md) ctrl, [out] unsigned char[] data) | 在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 | 46| [ControlTransferWrite](#controltransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbCtrlTransfer](_usb_ctrl_transfer.md) ctrl, [in] unsigned char[] data) | 在传输状态为写入并且控制端点是端点零时,对USB设备执行控制传输。 | 47| [BulkTransferReadwithLength](#bulktransferreadwithlength)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbCtrlTransferParams](_usb_ctrl_transfer_params.md) ctrl, [out] unsigned char[] data) | 在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 | 48| [InterruptTransferRead](#interrupttransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为数据读取时执行中断数据读取。 | 49| [InterruptTransferWrite](#interrupttransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时执行中断数据写入。 | 50| [IsoTransferRead](#isotransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时执行等时数据读取。 | 51| [IsoTransferWrite](#isotransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时执行等时数据写入。 | 52| [BindUsbdHostSubscriber](#bindusbdhostsubscriber)([in] [IUsbdSubscriber](interface_i_usbd_subscriber.md) subscriber) | 绑定订阅者。 | 53| [UnbindUsbdHostSubscriber](#unbindusbdhostsubscriber)([in] [IUsbdSubscriber](interface_i_usbd_subscriber.md) subscriber) | 解绑订阅者。 | 54| [UsbSubmitTransfer](#usbsubmittransfer)([in] struct [UsbDev](_usb_dev.md) dev, [in] [USBTransferInfo](_u_s_b_transfer_info_v2_0.md) info, [in] [IUsbdTransferCallback](interface_i_usbd_transfer_callback_v2_0.md) cb, [in] Ashmem ashmem) | 提交USB异步传输请求。 | 55| [UsbCancelTransfer](#usbcanceltransfer)([in] struct [UsbDev](_usb_dev.md) dev, [in] int endpoint) | 取消USB异步传输。 | 56 57 58## 成员函数说明 59 60 61### OpenDevice() 62 63``` 64IUsbdSubscriber::OpenDevice([in] struct UsbDev dev) 65``` 66 67**描述** 68 69打开设备,建立连接。 70 71**起始版本:** 5.1 72 73**参数:** 74 75| 名称 | 描述 | 76| -------- | -------- | 77| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 78 79**返回:** 80 810 表示操作成功。 82 83非零值 表示操作失败。 84 85 86### CloseDevice() 87 88``` 89IUsbdSubscriber::CloseDevice([in] struct UsbDev dev) 90``` 91 92**描述** 93 94关闭设备,释放与设备相关的所有系统资源。 95 96**起始版本:** 5.1 97 98**参数:** 99 100| 名称 | 描述 | 101| -------- | -------- | 102| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 103 104**返回:** 105 1060 表示操作成功。 107 108非零值 表示操作失败。 109 110 111### ResetDevice() 112 113``` 114IUsbdSubscriber::ResetDevice([in] struct UsbDev dev) 115``` 116 117**描述** 118 119重置设备。 120 121**起始版本:** 5.1 122 123**参数:** 124 125| 名称 | 描述 | 126| -------- | -------- | 127| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 128 129**返回:** 130 1310 表示操作成功。 132 133非零值 表示操作失败。 134 135 136### ClaimInterface() 137 138``` 139IUsbdSubscriber::ClaimInterface([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char force) 140``` 141 142**描述** 143 144打开USB设备的接口并声明独占,必须在数据传输前执行。 145 146**起始版本:** 5.1 147 148**参数:** 149 150| 名称 | 描述 | 151| -------- | -------- | 152| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 153| interfaceid | USB设备接口ID。 | 154| force | 是否强制,1表示强制,0表示不强制。 | 155 156**返回:** 157 1580 表示操作成功。 159 160非零值 表示操作失败。 161 162 163### SetInterface() 164 165``` 166IUsbdSubscriber::SetInterface([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char altIndex) 167``` 168 169**描述** 170 171设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 172 173**起始版本:** 5.1 174 175**参数:** 176 177| 名称 | 描述 | 178| -------- | -------- | 179| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 180| interfaceid | USB设备接口ID。 | 181| altIndex | USB设备接口的备用设置信息。 | 182 183**返回:** 184 1850 表示操作成功。 186 187非零值 表示操作失败。 188 189 190### ReleaseInterface() 191 192``` 193IUsbdSubscriber::ReleaseInterface([in] struct UsbDev dev, [in] unsigned char interfaceid) 194``` 195 196**描述** 197 198在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 199 200**起始版本:** 5.1 201 202**参数:** 203 204| 名称 | 描述 | 205| -------- | -------- | 206| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 207| interfaceid | USB设备接口ID。 | 208 209**返回:** 210 2110 表示操作成功。 212 213非零值 表示操作失败。 214 215 216### SetConfig() 217 218``` 219IUsbdSubscriber::SetConfig([in] struct UsbDev dev, [in] unsigned char configIndex) 220``` 221 222**描述** 223 224设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。 225 226**起始版本:** 5.1 227 228**参数:** 229 230| 名称 | 描述 | 231| -------- | -------- | 232| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 233| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 234 235**返回:** 236 2370 表示操作成功。 238 239非零值 表示操作失败。 240 241 242### ManageInterface() 243 244``` 245IUsbdSubscriber::ManageInterface([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] boolean disable); 246``` 247 248**描述** 249 250设置USB设备接口启动状态。 251 252**起始版本:** 5.1 253 254**参数:** 255 256| 名称 | 描述 | 257| -------- | -------- | 258| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 259| interfaceid | USB设备接口ID。 | 260| disable | USB设备接口是否禁用,true表示禁用,false表示不禁用。 | 261 262**返回:** 263 2640 表示操作成功。 265 266非零值 表示操作失败。 267 268 269### ClearHalt() 270 271``` 272IUsbdSubscriber::ClearHalt([in] struct UsbDev dev, [in] struct UsbPipe pipe); 273``` 274 275**描述** 276 277清除端点的暂停状态。 278 279**起始版本:** 5.1 280 281**参数:** 282 283| 名称 | 描述 | 284| -------- | -------- | 285| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 286| pipe | USB设备管道信息。 | 287 288**返回:** 289 2900 表示操作成功。 291 292 293### GetDeviceSpeed() 294 295``` 296IUsbdSubscriber::GetDeviceSpeed([in] struct UsbDev dev, [out] unsigned char speed); 297``` 298 299**描述** 300 301获取USB设备速率。 302 303**起始版本:** 5.1 304 305**参数:** 306 307| 名称 | 描述 | 308| -------- | -------- | 309| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 310| speed | USB设备速率。 | 311 312**返回:** 313 3140 表示操作成功。 315 316非零值 表示操作失败。 317 318 319### GetDeviceFileDescriptor() 320 321``` 322IUsbdSubscriber::GetDeviceFileDescriptor([in] struct UsbDev dev, [out] FileDescriptor fd); 323``` 324 325**描述** 326 327获取文件描述符。 328 329**起始版本:** 5.1 330 331**参数:** 332 333| 名称 | 描述 | 334| -------- | -------- | 335| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 336| fd | USB设备文件描述符。 | 337 338**返回:** 339 3400 表示操作成功。 341 342非零值 表示操作失败。 343 344 345### GetStringDescriptor() 346 347``` 348IUsbdSubscriber::GetStringDescriptor([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor); 349``` 350 351**描述** 352 353根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。 354 355**起始版本:** 5.1 356 357**参数:** 358 359| 名称 | 描述 | 360| -------- | -------- | 361| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 362| descId | USB设备的描述符ID。 | 363| descriptor | 获取USB设备的字符串描述符。 | 364 365**返回:** 366 3670 表示操作成功。 368 369非零值 表示操作失败。 370 371 372### GetRawDescriptor() 373 374``` 375IUsbdSubscriber::GetRawDescriptor([in] struct UsbDev dev, [out] unsigned char[] descriptor); 376``` 377 378**描述** 379 380获取USB设备的原始描述符。 381 382**起始版本:** 5.1 383 384**参数:** 385 386| 名称 | 描述 | 387| -------- | -------- | 388| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 389| descriptor | USB设备的原始描述符。 | 390 391**返回:** 392 3930 表示操作成功。 394 395非零值 表示操作失败。 396 397 398### GetConfig() 399 400``` 401IUsbdSubscriber::GetConfig([in] struct UsbDev dev, [out] unsigned char configIndex); 402``` 403 404**描述** 405 406获取USB设备当前的配置信息。 407 408**起始版本:** 5.1 409 410**参数:** 411 412| 名称 | 描述 | 413| -------- | -------- | 414| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 415| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 416 417**返回:** 418 4190 表示操作成功。 420 421非零值 表示操作失败。 422 423 424### GetInterfaceActiveStatus() 425 426``` 427IUsbdSubscriber::GetInterfaceActiveStatus([in] struct UsbDev dev, [in] unsigned char interfaceid, [out] boolean unactivated ); 428``` 429 430**描述** 431 432获取USB设备接口的激活信息。 433 434**起始版本:** 5.1 435 436**参数:** 437 438| 名称 | 描述 | 439| -------- | -------- | 440| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 441| interfaceid | USB设备接口ID。 | 442| unactivated | USB设备接口激活状态。true表示未激活,false表示已激活。 | 443 444**返回:** 445 4460 表示操作成功。 447 448非零值 表示操作失败。 449 450 451### GetDeviceDescriptor() 452 453``` 454IUsbdSubscriber::GetDeviceDescriptor([in] struct UsbDev dev, [out] unsigned char[] descriptor); 455``` 456 457**描述** 458 459获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。 460 461**起始版本:** 5.1 462 463**参数:** 464 465| 名称 | 描述 | 466| -------- | -------- | 467| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 468| descriptor | USB设备配置信息的字符串描述符索引值(数字字符串)。 | 469 470**返回:** 471 4720 表示操作成功。 473 474非零值 表示操作失败。 475 476 477### GetConfigDescriptor() 478 479``` 480IUsbdSubscriber::GetConfigDescriptor([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor); 481``` 482 483**描述** 484 485根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。 486 487**起始版本:** 5.1 488 489**参数:** 490 491| 名称 | 描述 | 492| -------- | -------- | 493| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 494| descId | USB设备的配置ID。 | 495| descriptor | 获取USB设备配置信息。 | 496 497**返回:** 498 4990 表示操作成功。 500 501非零值 表示操作失败。 502 503 504### GetFileDescriptor() 505 506``` 507IUsbdSubscriber::GetFileDescriptor([in] struct UsbDev dev, [out] int fd); 508``` 509 510**描述** 511 512获取USB设备的文件描述符。 513 514**起始版本:** 5.1 515 516**参数:** 517 518| 名称 | 描述 | 519| -------- | -------- | 520| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 521| fd | USB设备的文件描述符。 | 522 523**返回:** 524 5250 表示操作成功。 526 527非零值 表示操作失败。 528 529 530### RequestQueue() 531 532``` 533IUsbdSubscriber::RequestQueue([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] unsigned char[] clientData, [in] unsigned char[] buffer); 534``` 535 536**描述** 537 538在USB设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 539 540**起始版本:** 5.1 541 542**参数:** 543 544| 名称 | 描述 | 545| -------- | -------- | 546| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 547| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 548| clientData | 用户数据。 | 549| buffer | 传输的数据。 | 550 551**返回:** 552 5530 表示操作成功。 554 555非零值 表示操作失败。 556 557 558### RequestWait() 559 560``` 561IUsbdSubscriber::RequestWait([in] struct UsbDev dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout); 562``` 563 564**描述** 565 566等待RequestQueue异步请求的操作结果。 567 568**起始版本:** 5.1 569 570**参数:** 571 572| 名称 | 描述 | 573| -------- | -------- | 574| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 575| clientData | 用户数据。 | 576| buffer | 传输的数据。 | 577| timeout | 超时时间。 | 578 579**返回:** 580 5810 表示操作成功。 582 583非零值 表示操作失败。 584 585 586### RequestCancel() 587 588``` 589IUsbdSubscriber::RequestCancel([in] struct UsbDev dev, [in] struct UsbPipe pipe); 590``` 591 592**描述** 593 594取消待处理的数据请求。 595 596**起始版本:** 5.1 597 598**参数:** 599 600| 名称 | 描述 | 601| -------- | -------- | 602| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 603| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 604 605**返回:** 606 6070 表示操作成功。 608 609非零值 表示操作失败。 610 611 612### BulkTransferRead() 613 614``` 615IUsbdSubscriber::BulkTransferRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data); 616``` 617 618**描述** 619 620在USB设备指定端点方向为读取时,执行批量数据读取。 621 622**起始版本:** 5.1 623 624**参数:** 625 626| 名称 | 描述 | 627| -------- | -------- | 628| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 629| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 630| timeout | 超时时间。 | 631| data | 读取的数据。 | 632 633**返回:** 634 6350 表示操作成功。 636 637非零值 表示操作失败。 638 639 640### BulkTransferWrite() 641 642``` 643IUsbdSubscriber::BulkTransferWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data); 644``` 645 646**描述** 647 648在USB设备指定端点方向为写入时,执行批量数据写入。 649 650**起始版本:** 5.1 651 652**参数:** 653 654| 名称 | 描述 | 655| -------- | -------- | 656| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 657| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 658| timeout | 超时时间。 | 659| data | 写入的数据。 | 660 661**返回:** 662 6630 表示操作成功。 664 665非零值 表示操作失败。 666 667 668### BulkTransferReadwithLength() 669 670``` 671IUsbdSubscriber::BulkTransferReadwithLength([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] int length, [out] unsigned char[] data); 672``` 673 674**描述** 675 676在USB设备指定端点方向为读取时,执行批量数据读取。 677 678**起始版本:** 5.1 679 680**参数:** 681 682| 名称 | 描述 | 683| -------- | -------- | 684| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 685| pipe | USB设备管道信息。 | 686| timeout | 超时时间。 | 687| length | 读取的最大字节长度。 | 688| data | 读取的数据。 | 689 690**返回:** 691 6920 表示操作成功。 693 694非零值 表示操作失败。 695 696 697### RegBulkCallback() 698 699``` 700IUsbdSubscriber::RegBulkCallback([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] IUsbdBulkCallback cb); 701``` 702 703**描述** 704 705注册批量传输异步回调函数。 706 707**起始版本:** 5.1 708 709**参数:** 710 711| 名称 | 描述 | 712| -------- | -------- | 713| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 714| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 715| cb | 回调函数对象,详见[IUsbdBulkCallback](interface_i_usbd_bulk_callback.md)。 | 716 717**返回:** 718 7190 表示操作成功。 720 721非零值 表示操作失败。 722 723 724### UnRegBulkCallback() 725 726``` 727IUsbdSubscriber::UnRegBulkCallback([in] struct UsbDev dev, [in] struct UsbPipe pipe); 728``` 729 730**描述** 731 732注销批量传输异步回调函数。 733 734**起始版本:** 5.1 735 736**参数:** 737 738| 名称 | 描述 | 739| -------- | -------- | 740| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 741| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 742 743**返回:** 744 7450 表示操作成功。 746 747非零值 表示操作失败。 748 749 750### BulkRead() 751 752``` 753IUsbdSubscriber::BulkRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem); 754``` 755 756**描述** 757 758批量传输异步读数据。 759 760**起始版本:** 5.1 761 762**参数:** 763 764| 名称 | 描述 | 765| -------- | -------- | 766| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 767| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 768| ashmem | 共享内存,用于存放读取的数据。 | 769 770**返回:** 771 7720 表示操作成功。 773 774非零值 表示操作失败。 775 776 777### BulkWrite() 778 779``` 780IUsbdSubscriber::BulkWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem); 781``` 782 783**描述** 784 785批量传输异步写数据。 786 787**起始版本:** 5.1 788 789**参数:** 790 791| 名称 | 描述 | 792| -------- | -------- | 793| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 794| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 795| ashmem | 为共享内存,用于存放需要写入的数据。 | 796 797**返回:** 798 7990 表示操作成功。 800 801非零值 表示操作失败。 802 803 804### BulkCancel() 805 806``` 807IUsbdSubscriber:: BulkCancel([in] struct UsbDev dev, [in] struct UsbPipe pipe); 808``` 809 810**描述** 811 812批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 813 814**起始版本:** 5.1 815 816**参数:** 817 818| 名称 | 描述 | 819| -------- | -------- | 820| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 821| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 | 822 823**返回:** 824 8250 表示操作成功。 826 827非零值 表示操作失败。 828 829 830### ControlTransferRead() 831 832``` 833IUsbdSubscriber::ControlTransferRead([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [out] unsigned char[] data); 834``` 835 836**描述** 837 838在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 839 840**起始版本:** 5.1 841 842**参数:** 843 844| 名称 | 描述 | 845| -------- | -------- | 846| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 847| ctrl | USB设备控制数据,[UsbCtrlTransfer](_usb_ctrl_transfer.md)。 | 848| data | 读取的数据。 | 849 850**返回:** 851 8520 表示操作成功。 853 854非零值 表示操作失败。 855 856 857### ControlTransferWrite() 858 859``` 860IUsbdSubscriber::ControlTransferWrite([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [in] unsigned char[] data); 861``` 862 863**描述** 864 865获取USB设备当前的配置信息。 866 867**起始版本:** 5.1 868 869**参数:** 870 871| 名称 | 描述 | 872| -------- | -------- | 873| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 874| ctrl | USB设备控制数据,[UsbCtrlTransfer](_usb_ctrl_transfer.md)。 | 875| data | 写入的数据。 | 876 877**返回:** 878 8790 表示操作成功。 880 881非零值 表示操作失败。 882 883 884### ControlTransferReadwithLength() 885 886``` 887IUsbdSubscriber::ControlTransferReadwithLength([in] struct UsbDev dev, [in] struct UsbCtrlTransferParams ctrl, [out] unsigned char[] data); 888``` 889 890**描述** 891 892在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 893 894**起始版本:** 5.1 895 896**参数:** 897 898| 名称 | 描述 | 899| -------- | -------- | 900| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 901| ctrl | USB设备控制数据。 | 902| data | 写入的数据。 | 903 904**返回:** 905 9060 表示操作成功。 907 908非零值 表示操作失败。 909 910 911### InterruptTransferRead() 912 913``` 914IUsbdSubscriber::InterruptTransferRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data); 915``` 916 917**描述** 918 919在USB设备指定端点方向为数据读取时执行中断数据读取。 920 921**起始版本:** 5.1 922 923**参数:** 924 925| 名称 | 描述 | 926| -------- | -------- | 927| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 928| pipe | USB设备管道信息。 | 929| timeout | 超时时间。 | 930| data | 读取的数据。 | 931 932**返回:** 933 9340 表示操作成功。 935 936非零值 表示操作失败。 937 938 939### InterruptTransferWrite() 940 941``` 942IUsbdSubscriber::InterruptTransferWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data); 943``` 944 945**描述** 946 947在USB设备指定端点方向为写入时执行中断数据写入。 948 949**起始版本:** 5.1 950 951**参数:** 952 953| 名称 | 描述 | 954| -------- | -------- | 955| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 956| pipe | USB设备管道信息。 | 957| timeout | 超时时间。 | 958| data | 写入的数据。 | 959 960**返回:** 961 9620 表示操作成功。 963 964非零值 表示操作失败。 965 966 967### IsoTransferRead() 968 969``` 970IUsbdSubscriber::IsoTransferRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data); 971``` 972 973**描述** 974 975在USB设备指定端点方向为读取时执行等时数据读取。 976 977**起始版本:** 5.1 978 979**参数:** 980 981| 名称 | 描述 | 982| -------- | -------- | 983| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 984| pipe | USB设备管道信息。 | 985| timeout | 超时时间。 | 986| data | 读取的数据。 | 987 988**返回:** 989 9900 表示操作成功。 991 992非零值 表示操作失败。 993 994 995### IsoTransferWrite() 996 997``` 998IUsbdSubscriber::IsoTransferWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data); 999``` 1000 1001**描述** 1002 1003USB设备指定端点方向为写入时执行等时数据写入。 1004 1005**起始版本:** 5.1 1006 1007**参数:** 1008 1009| 名称 | 描述 | 1010| -------- | -------- | 1011| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 1012| pipe | USB设备管道信息。 | 1013| timeout | 超时时间。 | 1014| data | 写入的数据。 | 1015 1016**返回:** 1017 10180 表示操作成功。 1019 1020非零值 表示操作失败。 1021 1022 1023### BindUsbdHostSubscriber() 1024 1025``` 1026IUsbdSubscriber::BindUsbdHostSubscriber([in] IUsbdSubscriber subscriber); 1027``` 1028 1029**描述** 1030 1031绑定订阅者。 1032 1033**起始版本:** 5.1 1034 1035**参数:** 1036 1037| 名称 | 描述 | 1038| -------- | -------- | 1039| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber.md)。 | 1040 1041**返回:** 1042 10430 表示操作成功。 1044 1045非零值 表示操作失败。 1046 1047 1048### UnbindUsbdHostSubscriber() 1049 1050``` 1051IUsbdSubscriber::UnbindUsbdHostSubscriber([in] IUsbdSubscriber subscriber); 1052``` 1053 1054**描述** 1055 1056解绑订阅者。 1057 1058**起始版本:** 5.1 1059 1060**参数:** 1061 1062| 名称 | 描述 | 1063| -------- | -------- | 1064| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber.md)。 | 1065 1066**返回:** 1067 10680 表示操作成功。 1069 1070非零值 表示操作失败。 1071 1072 1073### UsbSubmitTransfer() 1074 1075``` 1076IUsbdSubscriber::UsbSubmitTransfer([in] struct UsbDev dev, [in] USBTransferInfo info, [in] IUsbdTransferCallback cb, [in] Ashmem ashmem); 1077``` 1078 1079**描述** 1080 1081提交USB异步传输请求。 1082 1083**起始版本:** 5.1 1084 1085**参数:** 1086 1087| 名称 | 描述 | 1088| -------- | -------- | 1089| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 1090| info | USB传输信息实体。 | 1091| cb | USB传输回调函数。 | 1092| ashmem | 共享内存对象实体。 | 1093 1094**返回:** 1095 10960 表示操作成功。 1097 1098非零值 表示操作失败。 1099 1100 1101### UsbCancelTransfer() 1102 1103``` 1104IUsbdSubscriber::UsbCancelTransfer([in] struct UsbDev dev, [in] int endpoint); 1105``` 1106 1107**描述** 1108 1109取消USB异步传输。 1110 1111**起始版本:** 5.1 1112 1113**参数:** 1114 1115| 名称 | 描述 | 1116| -------- | -------- | 1117| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 | 1118| endpoint | USB设备传输端点值。 | 1119 1120**返回:** 1121 11220 表示操作成功。 1123 1124非零值 表示操作失败。 1125