• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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