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