• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# IUsbHostInterface
2
3
4## 概述
5
6**相关模块:**[HdiUsb](_hdi_usb_v2_0.md)
7
8
9## 汇总
10
11
12### Public 成员函数
13
14| 名称 | 描述 |
15| -------- | -------- |
16| [OpenDevice](#opendevice)([in] struct [UsbDev](_usb_dev.md) dev) | 打开设备,建立连接。 |
17| [CloseDevice](#closedevice)([in] struct [UsbDev](_usb_dev.md) dev) | 关闭设备,释放与设备相关的所有系统资源。 |
18| [ResetDevice](#resetdevice)([in] struct [UsbDev](_usb_dev.md) dev) | 重置设备。 |
19| [ClaimInterface](#claiminterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [in] unsigned char force) | 打开USB设备的接口并声明独占,必须在数据传输前执行。 |
20| [SetInterface](#setinterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [in] unsigned char altIndex) | 设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 |
21| [ReleaseInterface](#releaseinterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid) | 在停止数据传输后关闭占用的USB设备接口,并释放相关资源。 |
22| [SetConfig](#setconfig)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char configIndex) | 设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。 |
23| [ManageInterface](#manageinterface)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [in] boolean disable) | 设置USB设备接口启动状态。 |
24| [ClearHalt](#clearhalt)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 清除端点的暂停状态。 |
25| [GetDeviceSpeed](#getdevicespeed)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char speed) | 获取USB设备速率。 |
26| [GetDeviceFileDescriptor](#getdevicefiledescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] FileDescriptor fd) | 获取文件描述符。 |
27| [GetStringDescriptor](#getstringdescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char descId, [out] unsigned char[] descriptor) | 根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。 |
28| [GetRawDescriptor](#getrawdescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char[] descriptor) | 获取USB设备的原始描述符。 |
29| [GetConfig](#getconfig)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char configIndex) | 获取USB设备当前的配置信息。 |
30| [GetInterfaceActiveStatus](#getinterfaceactivestatus)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char interfaceid, [out] boolean unactivated) | 获取USB设备接口的激活信息。 |
31| [GetDeviceDescriptor](#getdevicedescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char[] descriptor) | 获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。 |
32| [GetConfigDescriptor](#getconfigdescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [in] unsigned char descId, [out] unsigned char[] descriptor) | 根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。 |
33| [GetFileDescriptor](#getfiledescriptor)([in] struct [UsbDev](_usb_dev.md) dev, [out] int fd) | 获取USB设备的文件描述符。 |
34| [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设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 |
35| [RequestWait](#requestwait)([in] struct [UsbDev](_usb_dev.md) dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout) | 等待RequestQueue异步请求的操作结果。 |
36| [RequestCancel](#requestcancel)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 取消待处理的数据请求。 |
37| [BulkTransferRead](#bulktransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时,执行批量数据读取。 |
38| [BulkTransferWrite](#bulktransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时,执行批量数据写入。 |
39| [BulkTransferReadwithLength](#bulktransferreadwithlength)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] int length, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时,执行批量数据读取。 |
40| [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) | 注册批量传输异步回调函数。 |
41| [UnRegBulkCallback](#unregbulkcallback)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 注销批量传输异步回调函数。 |
42| [BulkRead](#bulkread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] Ashmem ashmem) | 批量传输异步读数据。 |
43| [BulkWrite](#bulkwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] Ashmem ashmem) | 批量传输异步写数据。 |
44| [BulkCancel](#bulkcancel)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 |
45| [ControlTransferRead](#controltransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbCtrlTransfer](_usb_ctrl_transfer.md) ctrl, [out] unsigned char[] data) | 在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 |
46| [ControlTransferWrite](#controltransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbCtrlTransfer](_usb_ctrl_transfer.md) ctrl, [in] unsigned char[] data) | 在传输状态为写入并且控制端点是端点零时,对USB设备执行控制传输。 |
47| [BulkTransferReadwithLength](#bulktransferreadwithlength)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbCtrlTransferParams](_usb_ctrl_transfer_params.md) ctrl, [out] unsigned char[] data) | 在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。 |
48| [InterruptTransferRead](#interrupttransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为数据读取时执行中断数据读取。 |
49| [InterruptTransferWrite](#interrupttransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时执行中断数据写入。 |
50| [IsoTransferRead](#isotransferread)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [out] unsigned char[] data) | 在USB设备指定端点方向为读取时执行等时数据读取。 |
51| [IsoTransferWrite](#isotransferwrite)([in] struct [UsbDev](_usb_dev.md) dev, [in] struct [UsbPipe](_usb_pipe.md) pipe, [in] int timeout, [in] unsigned char[] data) | 在USB设备指定端点方向为写入时执行等时数据写入。 |
52| [BindUsbdHostSubscriber](#bindusbdhostsubscriber)([in] [IUsbdSubscriber](interface_i_usbd_subscriber.md) subscriber) | 绑定订阅者。 |
53| [UnbindUsbdHostSubscriber](#unbindusbdhostsubscriber)([in] [IUsbdSubscriber](interface_i_usbd_subscriber.md) subscriber) | 解绑订阅者。 |
54| [UsbSubmitTransfer](#usbsubmittransfer)([in] struct [UsbDev](_usb_dev.md) dev, [in] [USBTransferInfo](_u_s_b_transfer_info_v2_0.md) info, [in] [IUsbdTransferCallback](interface_i_usbd_transfer_callback_v2_0.md) cb, [in] Ashmem ashmem) | 提交USB异步传输请求。 |
55| [UsbCancelTransfer](#usbcanceltransfer)([in] struct [UsbDev](_usb_dev.md) dev, [in] int endpoint) | 取消USB异步传输。 |
56
57
58## 成员函数说明
59
60
61### OpenDevice()
62
63```
64IUsbdSubscriber::OpenDevice([in] struct UsbDev dev)
65```
66
67**描述**
68
69打开设备,建立连接。
70
71**起始版本:** 5.1
72
73**参数:**
74
75| 名称 | 描述 |
76| -------- | -------- |
77| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
78
79**返回:**
80
810 表示操作成功。
82
83非零值 表示操作失败。
84
85
86### CloseDevice()
87
88```
89IUsbdSubscriber::CloseDevice([in] struct UsbDev dev)
90```
91
92**描述**
93
94关闭设备,释放与设备相关的所有系统资源。
95
96**起始版本:** 5.1
97
98**参数:**
99
100| 名称 | 描述 |
101| -------- | -------- |
102| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
103
104**返回:**
105
1060 表示操作成功。
107
108非零值 表示操作失败。
109
110
111### ResetDevice()
112
113```
114IUsbdSubscriber::ResetDevice([in] struct UsbDev dev)
115```
116
117**描述**
118
119重置设备。
120
121**起始版本:** 5.1
122
123**参数:**
124
125| 名称 | 描述 |
126| -------- | -------- |
127| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
128
129**返回:**
130
1310 表示操作成功。
132
133非零值 表示操作失败。
134
135
136### ClaimInterface()
137
138```
139IUsbdSubscriber::ClaimInterface([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char force)
140```
141
142**描述**
143
144打开USB设备的接口并声明独占,必须在数据传输前执行。
145
146**起始版本:** 5.1
147
148**参数:**
149
150| 名称 | 描述 |
151| -------- | -------- |
152| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
153| interfaceid | USB设备接口ID。 |
154| force | 是否强制,1表示强制,0表示不强制。 |
155
156**返回:**
157
1580 表示操作成功。
159
160非零值 表示操作失败。
161
162
163### SetInterface()
164
165```
166IUsbdSubscriber::SetInterface([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] unsigned char altIndex)
167```
168
169**描述**
170
171设置USB设备指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。
172
173**起始版本:** 5.1
174
175**参数:**
176
177| 名称 | 描述 |
178| -------- | -------- |
179| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
180| interfaceid | USB设备接口ID。 |
181| altIndex | USB设备接口的备用设置信息。 |
182
183**返回:**
184
1850 表示操作成功。
186
187非零值 表示操作失败。
188
189
190### ReleaseInterface()
191
192```
193IUsbdSubscriber::ReleaseInterface([in] struct UsbDev dev, [in] unsigned char interfaceid)
194```
195
196**描述**
197
198在停止数据传输后关闭占用的USB设备接口,并释放相关资源。
199
200**起始版本:** 5.1
201
202**参数:**
203
204| 名称 | 描述 |
205| -------- | -------- |
206| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
207| interfaceid | USB设备接口ID。 |
208
209**返回:**
210
2110 表示操作成功。
212
213非零值 表示操作失败。
214
215
216### SetConfig()
217
218```
219IUsbdSubscriber::SetConfig([in] struct UsbDev dev, [in] unsigned char configIndex)
220```
221
222**描述**
223
224设置USB设备当前的配置信息,USB设备被主机配置过后,主机可以使用设备提供的所有功能。
225
226**起始版本:** 5.1
227
228**参数:**
229
230| 名称 | 描述 |
231| -------- | -------- |
232| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
233| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 |
234
235**返回:**
236
2370 表示操作成功。
238
239非零值 表示操作失败。
240
241
242### ManageInterface()
243
244```
245IUsbdSubscriber::ManageInterface([in] struct UsbDev dev, [in] unsigned char interfaceid, [in] boolean disable);
246```
247
248**描述**
249
250设置USB设备接口启动状态。
251
252**起始版本:** 5.1
253
254**参数:**
255
256| 名称 | 描述 |
257| -------- | -------- |
258| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
259| interfaceid | USB设备接口ID。 |
260| disable | USB设备接口是否禁用,true表示禁用,false表示不禁用。 |
261
262**返回:**
263
2640 表示操作成功。
265
266非零值 表示操作失败。
267
268
269### ClearHalt()
270
271```
272IUsbdSubscriber::ClearHalt([in] struct UsbDev dev, [in] struct UsbPipe pipe);
273```
274
275**描述**
276
277清除端点的暂停状态。
278
279**起始版本:** 5.1
280
281**参数:**
282
283| 名称 | 描述 |
284| -------- | -------- |
285| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
286| pipe | USB设备管道信息。 |
287
288**返回:**
289
2900 表示操作成功。
291
292
293### GetDeviceSpeed()
294
295```
296IUsbdSubscriber::GetDeviceSpeed([in] struct UsbDev dev, [out] unsigned char speed);
297```
298
299**描述**
300
301获取USB设备速率。
302
303**起始版本:** 5.1
304
305**参数:**
306
307| 名称 | 描述 |
308| -------- | -------- |
309| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
310| speed | USB设备速率。 |
311
312**返回:**
313
3140 表示操作成功。
315
316非零值 表示操作失败。
317
318
319### GetDeviceFileDescriptor()
320
321```
322IUsbdSubscriber::GetDeviceFileDescriptor([in] struct UsbDev dev, [out] FileDescriptor fd);
323```
324
325**描述**
326
327获取文件描述符。
328
329**起始版本:** 5.1
330
331**参数:**
332
333| 名称 | 描述 |
334| -------- | -------- |
335| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
336| fd | USB设备文件描述符。 |
337
338**返回:**
339
3400 表示操作成功。
341
342非零值 表示操作失败。
343
344
345### GetStringDescriptor()
346
347```
348IUsbdSubscriber::GetStringDescriptor([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor);
349```
350
351**描述**
352
353根据设备的字符串ID获取字符串描述符,字符串描述符是提供一些设备接口相关的描述性信息,比如厂商的名字、产品序列号等。
354
355**起始版本:** 5.1
356
357**参数:**
358
359| 名称 | 描述 |
360| -------- | -------- |
361| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
362| descId | USB设备的描述符ID。 |
363| descriptor | 获取USB设备的字符串描述符。 |
364
365**返回:**
366
3670 表示操作成功。
368
369非零值 表示操作失败。
370
371
372### GetRawDescriptor()
373
374```
375IUsbdSubscriber::GetRawDescriptor([in] struct UsbDev dev, [out] unsigned char[] descriptor);
376```
377
378**描述**
379
380获取USB设备的原始描述符。
381
382**起始版本:** 5.1
383
384**参数:**
385
386| 名称 | 描述 |
387| -------- | -------- |
388| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
389| descriptor | USB设备的原始描述符。 |
390
391**返回:**
392
3930 表示操作成功。
394
395非零值 表示操作失败。
396
397
398### GetConfig()
399
400```
401IUsbdSubscriber::GetConfig([in] struct UsbDev dev, [out] unsigned char configIndex);
402```
403
404**描述**
405
406获取USB设备当前的配置信息。
407
408**起始版本:** 5.1
409
410**参数:**
411
412| 名称 | 描述 |
413| -------- | -------- |
414| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
415| configIndex | USB设备配置信息的字符串描述符索引值(数字字符串)。 |
416
417**返回:**
418
4190 表示操作成功。
420
421非零值 表示操作失败。
422
423
424### GetInterfaceActiveStatus()
425
426```
427IUsbdSubscriber::GetInterfaceActiveStatus([in] struct UsbDev dev, [in] unsigned char interfaceid, [out] boolean unactivated );
428```
429
430**描述**
431
432获取USB设备接口的激活信息。
433
434**起始版本:** 5.1
435
436**参数:**
437
438| 名称 | 描述 |
439| -------- | -------- |
440| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
441| interfaceid | USB设备接口ID。 |
442| unactivated | USB设备接口激活状态。true表示未激活,false表示已激活。 |
443
444**返回:**
445
4460 表示操作成功。
447
448非零值 表示操作失败。
449
450
451### GetDeviceDescriptor()
452
453```
454IUsbdSubscriber::GetDeviceDescriptor([in] struct UsbDev dev, [out] unsigned char[] descriptor);
455```
456
457**描述**
458
459获取设备描述符,设备描述符提供了关于设备、设备的配置以及任何设备所归属的类的信息。
460
461**起始版本:** 5.1
462
463**参数:**
464
465| 名称 | 描述 |
466| -------- | -------- |
467| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
468| descriptor | USB设备配置信息的字符串描述符索引值(数字字符串)。 |
469
470**返回:**
471
4720 表示操作成功。
473
474非零值 表示操作失败。
475
476
477### GetConfigDescriptor()
478
479```
480IUsbdSubscriber::GetConfigDescriptor([in] struct UsbDev dev, [in] unsigned char descId, [out] unsigned char[] descriptor);
481```
482
483**描述**
484
485根据设备的配置ID获取配置描述符,配置描述符包含有关配置及其接口、备用设置及其终结点的信息。
486
487**起始版本:** 5.1
488
489**参数:**
490
491| 名称 | 描述 |
492| -------- | -------- |
493| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
494| descId | USB设备的配置ID。 |
495| descriptor | 获取USB设备配置信息。 |
496
497**返回:**
498
4990 表示操作成功。
500
501非零值 表示操作失败。
502
503
504### GetFileDescriptor()
505
506```
507IUsbdSubscriber::GetFileDescriptor([in] struct UsbDev dev, [out] int fd);
508```
509
510**描述**
511
512获取USB设备的文件描述符。
513
514**起始版本:** 5.1
515
516**参数:**
517
518| 名称 | 描述 |
519| -------- | -------- |
520| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
521| fd | USB设备的文件描述符。 |
522
523**返回:**
524
5250 表示操作成功。
526
527非零值 表示操作失败。
528
529
530### RequestQueue()
531
532```
533IUsbdSubscriber::RequestQueue([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] unsigned char[] clientData, [in] unsigned char[] buffer);
534```
535
536**描述**
537
538在USB设备指定端点上进行异步数据发送或者接收请求,数据传输方向由端点方向决定。
539
540**起始版本:** 5.1
541
542**参数:**
543
544| 名称 | 描述 |
545| -------- | -------- |
546| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
547| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
548| clientData | 用户数据。 |
549| buffer | 传输的数据。 |
550
551**返回:**
552
5530 表示操作成功。
554
555非零值 表示操作失败。
556
557
558### RequestWait()
559
560```
561IUsbdSubscriber::RequestWait([in] struct UsbDev dev, [out] unsigned char[] clientData, [out] unsigned char[] buffer, [in] int timeout);
562```
563
564**描述**
565
566等待RequestQueue异步请求的操作结果。
567
568**起始版本:** 5.1
569
570**参数:**
571
572| 名称 | 描述 |
573| -------- | -------- |
574| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
575| clientData | 用户数据。 |
576| buffer | 传输的数据。 |
577| timeout | 超时时间。 |
578
579**返回:**
580
5810 表示操作成功。
582
583非零值 表示操作失败。
584
585
586### RequestCancel()
587
588```
589IUsbdSubscriber::RequestCancel([in] struct UsbDev dev, [in] struct UsbPipe pipe);
590```
591
592**描述**
593
594取消待处理的数据请求。
595
596**起始版本:** 5.1
597
598**参数:**
599
600| 名称 | 描述 |
601| -------- | -------- |
602| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
603| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
604
605**返回:**
606
6070 表示操作成功。
608
609非零值 表示操作失败。
610
611
612### BulkTransferRead()
613
614```
615IUsbdSubscriber::BulkTransferRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data);
616```
617
618**描述**
619
620在USB设备指定端点方向为读取时,执行批量数据读取。
621
622**起始版本:** 5.1
623
624**参数:**
625
626| 名称 | 描述 |
627| -------- | -------- |
628| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
629| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
630| timeout | 超时时间。 |
631| data | 读取的数据。 |
632
633**返回:**
634
6350 表示操作成功。
636
637非零值 表示操作失败。
638
639
640### BulkTransferWrite()
641
642```
643IUsbdSubscriber::BulkTransferWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data);
644```
645
646**描述**
647
648在USB设备指定端点方向为写入时,执行批量数据写入。
649
650**起始版本:** 5.1
651
652**参数:**
653
654| 名称 | 描述 |
655| -------- | -------- |
656| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
657| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
658| timeout | 超时时间。 |
659| data | 写入的数据。 |
660
661**返回:**
662
6630 表示操作成功。
664
665非零值 表示操作失败。
666
667
668### BulkTransferReadwithLength()
669
670```
671IUsbdSubscriber::BulkTransferReadwithLength([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] int length, [out] unsigned char[] data);
672```
673
674**描述**
675
676在USB设备指定端点方向为读取时,执行批量数据读取。
677
678**起始版本:** 5.1
679
680**参数:**
681
682| 名称 | 描述 |
683| -------- | -------- |
684| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
685| pipe | USB设备管道信息。 |
686| timeout | 超时时间。 |
687| length | 读取的最大字节长度。 |
688| data | 读取的数据。 |
689
690**返回:**
691
6920 表示操作成功。
693
694非零值 表示操作失败。
695
696
697### RegBulkCallback()
698
699```
700IUsbdSubscriber::RegBulkCallback([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] IUsbdBulkCallback cb);
701```
702
703**描述**
704
705注册批量传输异步回调函数。
706
707**起始版本:** 5.1
708
709**参数:**
710
711| 名称 | 描述 |
712| -------- | -------- |
713| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
714| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
715| cb | 回调函数对象,详见[IUsbdBulkCallback](interface_i_usbd_bulk_callback.md)。 |
716
717**返回:**
718
7190 表示操作成功。
720
721非零值 表示操作失败。
722
723
724### UnRegBulkCallback()
725
726```
727IUsbdSubscriber::UnRegBulkCallback([in] struct UsbDev dev, [in] struct UsbPipe pipe);
728```
729
730**描述**
731
732注销批量传输异步回调函数。
733
734**起始版本:** 5.1
735
736**参数:**
737
738| 名称 | 描述 |
739| -------- | -------- |
740| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
741| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
742
743**返回:**
744
7450 表示操作成功。
746
747非零值 表示操作失败。
748
749
750### BulkRead()
751
752```
753IUsbdSubscriber::BulkRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem);
754```
755
756**描述**
757
758批量传输异步读数据。
759
760**起始版本:** 5.1
761
762**参数:**
763
764| 名称 | 描述 |
765| -------- | -------- |
766| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
767| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
768| ashmem | 共享内存,用于存放读取的数据。 |
769
770**返回:**
771
7720 表示操作成功。
773
774非零值 表示操作失败。
775
776
777### BulkWrite()
778
779```
780IUsbdSubscriber::BulkWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] Ashmem ashmem);
781```
782
783**描述**
784
785批量传输异步写数据。
786
787**起始版本:** 5.1
788
789**参数:**
790
791| 名称 | 描述 |
792| -------- | -------- |
793| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
794| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
795| ashmem | 为共享内存,用于存放需要写入的数据。 |
796
797**返回:**
798
7990 表示操作成功。
800
801非零值 表示操作失败。
802
803
804### BulkCancel()
805
806```
807IUsbdSubscriber:: BulkCancel([in] struct UsbDev dev, [in] struct UsbPipe pipe);
808```
809
810**描述**
811
812批量传输异步取消接口,用于取消当前接口的异步批量读写操作。
813
814**起始版本:** 5.1
815
816**参数:**
817
818| 名称 | 描述 |
819| -------- | -------- |
820| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
821| pipe | USB设备管道信息,详见[UsbPipe](_usb_pipe.md)。 |
822
823**返回:**
824
8250 表示操作成功。
826
827非零值 表示操作失败。
828
829
830### ControlTransferRead()
831
832```
833IUsbdSubscriber::ControlTransferRead([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [out] unsigned char[] data);
834```
835
836**描述**
837
838在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。
839
840**起始版本:** 5.1
841
842**参数:**
843
844| 名称 | 描述 |
845| -------- | -------- |
846| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
847| ctrl | USB设备控制数据,[UsbCtrlTransfer](_usb_ctrl_transfer.md)。 |
848| data | 读取的数据。 |
849
850**返回:**
851
8520 表示操作成功。
853
854非零值 表示操作失败。
855
856
857### ControlTransferWrite()
858
859```
860IUsbdSubscriber::ControlTransferWrite([in] struct UsbDev dev, [in] struct UsbCtrlTransfer ctrl, [in] unsigned char[] data);
861```
862
863**描述**
864
865获取USB设备当前的配置信息。
866
867**起始版本:** 5.1
868
869**参数:**
870
871| 名称 | 描述 |
872| -------- | -------- |
873| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
874| ctrl | USB设备控制数据,[UsbCtrlTransfer](_usb_ctrl_transfer.md)。 |
875| data | 写入的数据。 |
876
877**返回:**
878
8790 表示操作成功。
880
881非零值 表示操作失败。
882
883
884### ControlTransferReadwithLength()
885
886```
887IUsbdSubscriber::ControlTransferReadwithLength([in] struct UsbDev dev, [in] struct UsbCtrlTransferParams ctrl, [out] unsigned char[] data);
888```
889
890**描述**
891
892在传输状态为读取并且控制端点是端点零时,对USB设备执行控制传输。
893
894**起始版本:** 5.1
895
896**参数:**
897
898| 名称 | 描述 |
899| -------- | -------- |
900| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
901| ctrl | USB设备控制数据。 |
902| data | 写入的数据。 |
903
904**返回:**
905
9060 表示操作成功。
907
908非零值 表示操作失败。
909
910
911### InterruptTransferRead()
912
913```
914IUsbdSubscriber::InterruptTransferRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data);
915```
916
917**描述**
918
919在USB设备指定端点方向为数据读取时执行中断数据读取。
920
921**起始版本:** 5.1
922
923**参数:**
924
925| 名称 | 描述 |
926| -------- | -------- |
927| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
928| pipe | USB设备管道信息。 |
929| timeout | 超时时间。 |
930| data | 读取的数据。 |
931
932**返回:**
933
9340 表示操作成功。
935
936非零值 表示操作失败。
937
938
939### InterruptTransferWrite()
940
941```
942IUsbdSubscriber::InterruptTransferWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data);
943```
944
945**描述**
946
947在USB设备指定端点方向为写入时执行中断数据写入。
948
949**起始版本:** 5.1
950
951**参数:**
952
953| 名称 | 描述 |
954| -------- | -------- |
955| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
956| pipe | USB设备管道信息。 |
957| timeout | 超时时间。 |
958| data | 写入的数据。 |
959
960**返回:**
961
9620 表示操作成功。
963
964非零值 表示操作失败。
965
966
967### IsoTransferRead()
968
969```
970IUsbdSubscriber::IsoTransferRead([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [out] unsigned char[] data);
971```
972
973**描述**
974
975在USB设备指定端点方向为读取时执行等时数据读取。
976
977**起始版本:** 5.1
978
979**参数:**
980
981| 名称 | 描述 |
982| -------- | -------- |
983| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
984| pipe | USB设备管道信息。 |
985| timeout | 超时时间。 |
986| data | 读取的数据。 |
987
988**返回:**
989
9900 表示操作成功。
991
992非零值 表示操作失败。
993
994
995### IsoTransferWrite()
996
997```
998IUsbdSubscriber::IsoTransferWrite([in] struct UsbDev dev, [in] struct UsbPipe pipe, [in] int timeout, [in] unsigned char[] data);
999```
1000
1001**描述**
1002
1003USB设备指定端点方向为写入时执行等时数据写入。
1004
1005**起始版本:** 5.1
1006
1007**参数:**
1008
1009| 名称 | 描述 |
1010| -------- | -------- |
1011| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
1012| pipe | USB设备管道信息。 |
1013| timeout | 超时时间。 |
1014| data | 写入的数据。 |
1015
1016**返回:**
1017
10180 表示操作成功。
1019
1020非零值 表示操作失败。
1021
1022
1023### BindUsbdHostSubscriber()
1024
1025```
1026IUsbdSubscriber::BindUsbdHostSubscriber([in] IUsbdSubscriber subscriber);
1027```
1028
1029**描述**
1030
1031绑定订阅者。
1032
1033**起始版本:** 5.1
1034
1035**参数:**
1036
1037| 名称 | 描述 |
1038| -------- | -------- |
1039| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber.md)。 |
1040
1041**返回:**
1042
10430 表示操作成功。
1044
1045非零值 表示操作失败。
1046
1047
1048### UnbindUsbdHostSubscriber()
1049
1050```
1051IUsbdSubscriber::UnbindUsbdHostSubscriber([in] IUsbdSubscriber subscriber);
1052```
1053
1054**描述**
1055
1056解绑订阅者。
1057
1058**起始版本:** 5.1
1059
1060**参数:**
1061
1062| 名称 | 描述 |
1063| -------- | -------- |
1064| subscriber | 订阅者信息,详见[IUsbdSubscriber](interface_i_usbd_subscriber.md)。 |
1065
1066**返回:**
1067
10680 表示操作成功。
1069
1070非零值 表示操作失败。
1071
1072
1073### UsbSubmitTransfer()
1074
1075```
1076IUsbdSubscriber::UsbSubmitTransfer([in] struct UsbDev dev, [in] USBTransferInfo info, [in] IUsbdTransferCallback cb, [in] Ashmem ashmem);
1077```
1078
1079**描述**
1080
1081提交USB异步传输请求。
1082
1083**起始版本:** 5.1
1084
1085**参数:**
1086
1087| 名称 | 描述 |
1088| -------- | -------- |
1089| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
1090| info | USB传输信息实体。 |
1091| cb | USB传输回调函数。 |
1092| ashmem | 共享内存对象实体。 |
1093
1094**返回:**
1095
10960 表示操作成功。
1097
1098非零值 表示操作失败。
1099
1100
1101### UsbCancelTransfer()
1102
1103```
1104IUsbdSubscriber::UsbCancelTransfer([in] struct UsbDev dev, [in] int endpoint);
1105```
1106
1107**描述**
1108
1109取消USB异步传输。
1110
1111**起始版本:** 5.1
1112
1113**参数:**
1114
1115| 名称 | 描述 |
1116| -------- | -------- |
1117| dev | USB设备地址信息,详见[UsbDev](_usb_dev.md)。 |
1118| endpoint | USB设备传输端点值。 |
1119
1120**返回:**
1121
11220 表示操作成功。
1123
1124非零值 表示操作失败。
1125