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