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