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