USB调试笔记
+ -

USB摄像头同步传输的完成后URB参数

2021-11-05 448 0

这几天不是闲来无事,一个工作的任务就是对手中一个USB摄像头进行驱动开发,并进行视频格式的转换。
通过分析该USB摄像头可知,其采用的是同步传输,所以本人在开发的驱动中,使用同步的URB进行下发请求数据,然后在完成例程中获取数据。
同步传输的URB本人在 手动分析使用BUSHOUND抓取同步传输的URB 一文已经对共结构体进行了分析。但其实这里的分析其实并不完全,所以这里再做一些说明。

在URB的结构体初始化过程中,其中一项重要的是同步传输的包进行初始化,代码一般是这样的:

    for (index = 0; index < numberOfPackets; index++)
    {
        urb->UrbIsochronousTransfer.IsoPacket[index].Offset = index * isochPacketSize;
        urb->UrbIsochronousTransfer.IsoPacket[index].Length = 0;
        urb->UrbIsochronousTransfer.IsoPacket[index].Status = 0;
    }

而这个结构体的定义是这样的:

typedef struct _USBD_ISO_PACKET_DESCRIPTOR {
    ULONG Offset;
    ULONG Length;
    USBD_STATUS Status;
} USBD_ISO_PACKET_DESCRIPTOR, *PUSBD_ISO_PACKET_DESCRIPTOR;

通过对完成例程中的URB的各USBD_ISO_PACKET_DESCRIPTOR结构体进行打印,如这里本人创建的URB中包括128个USBD_ISO_PACKET_DESCRIPTOR。
对应的代码如下:

KdPrint(("len=%d\n", urb->UrbIsochronousTransfer.TransferBufferLength));
for (ULONG i = 0; i < urb->UrbIsochronousTransfer.NumberOfPackets; i++)
{
    PUCHAR pSrc = frame->data + urb->UrbIsochronousTransfer.IsoPacket[i].Offset;
    KdPrint(("%d status=%x offset=%d len=%d %02x %02x %02x %02x %02x %02x\n",
    i,
    urb->UrbIsochronousTransfer.IsoPacket[i].Status,
    urb->UrbIsochronousTransfer.IsoPacket[i].Offset,
    urb->UrbIsochronousTransfer.IsoPacket[i].Length,
    pSrc[0],
    pSrc[1],
    pSrc[2],
    pSrc[3],
    pSrc[4],
    pSrc[5]
    ));
}

其输出结果如下:

len=8219
0 status=0 offset=0 len=1024 02 81 00 00 00 01
1 status=0 offset=1024 len=1024 02 81 df ab 02 3f
2 status=0 offset=2048 len=1024 02 81 91 e9 c4 6c
3 status=0 offset=3072 len=1024 02 81 a9 80 54 b3
4 status=0 offset=4096 len=1024 02 81 6a 43 e6 a4
5 status=0 offset=5120 len=1024 02 81 9f 7f 7d e3
6 status=0 offset=6144 len=1024 02 81 5c eb 23 55
7 status=0 offset=7168 len=1024 02 81 98 5f be 77
8 status=0 offset=8192 len=27 02 83 ec bc 65 0c
9 status=0 offset=9216 len=0 00 00 00 00 00 00
10 status=0 offset=10240 len=0 00 00 00 00 00 00
11 status=0 offset=11264 len=0 00 00 00 00 00 00
12 status=0 offset=12288 len=0 00 00 00 00 00 00
13 status=0 offset=13312 len=0 00 00 00 00 00 00
14 status=0 offset=14336 len=0 00 00 00 00 00 00
15 status=0 offset=15360 len=0 00 00 00 00 00 00
16 status=0 offset=16384 len=0 00 00 00 00 00 00
17 status=0 offset=17408 len=0 00 00 00 00 00 00
18 status=0 offset=18432 len=0 00 00 00 00 00 00
19 status=0 offset=19456 len=0 00 00 00 00 00 00
20 status=0 offset=20480 len=0 00 00 00 00 00 00
21 status=0 offset=21504 len=0 00 00 00 00 00 00
22 status=0 offset=22528 len=0 00 00 00 00 00 00
23 status=0 offset=23552 len=0 00 00 00 00 00 00
24 status=0 offset=24576 len=0 00 00 00 00 00 00
25 status=0 offset=25600 len=0 00 00 00 00 00 00
26 status=0 offset=26624 len=0 00 00 00 00 00 00
27 status=0 offset=27648 len=0 00 00 00 00 00 00
28 status=0 offset=28672 len=0 00 00 00 00 00 00
29 status=0 offset=29696 len=0 00 00 00 00 00 00
30 status=0 offset=30720 len=0 00 00 00 00 00 00
31 status=0 offset=31744 len=0 00 00 00 00 00 00
32 status=0 offset=32768 len=0 00 00 00 00 00 00
33 status=0 offset=33792 len=0 00 00 00 00 00 00
34 status=0 offset=34816 len=0 00 00 00 00 00 00
35 status=0 offset=35840 len=0 00 00 00 00 00 00
36 status=0 offset=36864 len=0 00 00 00 00 00 00
37 status=0 offset=37888 len=0 00 00 00 00 00 00
38 status=0 offset=38912 len=0 00 00 00 00 00 00
39 status=0 offset=39936 len=0 00 00 00 00 00 00
40 status=0 offset=40960 len=0 00 00 00 00 00 00
41 status=0 offset=41984 len=0 00 00 00 00 00 00
42 status=0 offset=43008 len=0 00 00 00 00 00 00
43 status=0 offset=44032 len=0 00 00 00 00 00 00
44 status=0 offset=45056 len=0 00 00 00 00 00 00
45 status=0 offset=46080 len=0 00 00 00 00 00 00
46 status=0 offset=47104 len=0 00 00 00 00 00 00
47 status=0 offset=48128 len=0 00 00 00 00 00 00
48 status=0 offset=49152 len=0 00 00 00 00 00 00
49 status=0 offset=50176 len=0 00 00 00 00 00 00
50 status=0 offset=51200 len=0 00 00 00 00 00 00
51 status=0 offset=52224 len=0 00 00 00 00 00 00
52 status=0 offset=53248 len=0 00 00 00 00 00 00
53 status=0 offset=54272 len=0 00 00 00 00 00 00
54 status=0 offset=55296 len=0 00 00 00 00 00 00
55 status=0 offset=56320 len=0 00 00 00 00 00 00
56 status=0 offset=57344 len=0 00 00 00 00 00 00
57 status=0 offset=58368 len=0 00 00 00 00 00 00
58 status=0 offset=59392 len=0 00 00 00 00 00 00
59 status=0 offset=60416 len=0 00 00 00 00 00 00
60 status=0 offset=61440 len=0 00 00 00 00 00 00
61 status=0 offset=62464 len=0 00 00 00 00 00 00
62 status=0 offset=63488 len=0 00 00 00 00 00 00
63 status=0 offset=64512 len=0 00 00 00 00 00 00
64 status=0 offset=65536 len=0 00 00 00 00 00 00
65 status=0 offset=66560 len=0 00 00 00 00 00 00
66 status=0 offset=67584 len=0 00 00 00 00 00 00
67 status=0 offset=68608 len=0 00 00 00 00 00 00
68 status=0 offset=69632 len=0 00 00 00 00 00 00
69 status=0 offset=70656 len=0 00 00 00 00 00 00
70 status=0 offset=71680 len=0 00 00 00 00 00 00
71 status=0 offset=72704 len=0 00 00 00 00 00 00
72 status=0 offset=73728 len=0 00 00 00 00 00 00
73 status=0 offset=74752 len=0 00 00 00 00 00 00
74 status=0 offset=75776 len=0 00 00 00 00 00 00
75 status=0 offset=76800 len=0 00 00 00 00 00 00
76 status=0 offset=77824 len=0 00 00 00 00 00 00
77 status=0 offset=78848 len=0 00 00 00 00 00 00
78 status=0 offset=79872 len=0 00 00 00 00 00 00
79 status=0 offset=80896 len=0 00 00 00 00 00 00
80 status=0 offset=81920 len=0 00 00 00 00 00 00
81 status=0 offset=82944 len=0 00 00 00 00 00 00
82 status=0 offset=83968 len=0 00 00 00 00 00 00
83 status=0 offset=84992 len=0 00 00 00 00 00 00
84 status=0 offset=86016 len=0 00 00 00 00 00 00
85 status=0 offset=87040 len=0 00 00 00 00 00 00
86 status=0 offset=88064 len=0 00 00 00 00 00 00
87 status=0 offset=89088 len=0 00 00 00 00 00 00
88 status=0 offset=90112 len=0 00 00 00 00 00 00
89 status=0 offset=91136 len=0 00 00 00 00 00 00
90 status=0 offset=92160 len=0 00 00 00 00 00 00
91 status=0 offset=93184 len=0 00 00 00 00 00 00
92 status=0 offset=94208 len=0 00 00 00 00 00 00
93 status=0 offset=95232 len=0 00 00 00 00 00 00
94 status=0 offset=96256 len=0 00 00 00 00 00 00
95 status=0 offset=97280 len=0 00 00 00 00 00 00
96 status=0 offset=98304 len=0 00 00 00 00 00 00
97 status=0 offset=99328 len=0 00 00 00 00 00 00
98 status=0 offset=100352 len=0 00 00 00 00 00 00
99 status=0 offset=101376 len=0 00 00 00 00 00 00
100 status=0 offset=102400 len=0 00 00 00 00 00 00
101 status=0 offset=103424 len=0 00 00 00 00 00 00
102 status=0 offset=104448 len=0 00 00 00 00 00 00
103 status=0 offset=105472 len=0 00 00 00 00 00 00
104 status=0 offset=106496 len=0 00 00 00 00 00 00
105 status=0 offset=107520 len=0 00 00 00 00 00 00
106 status=0 offset=108544 len=0 00 00 00 00 00 00
107 status=0 offset=109568 len=0 00 00 00 00 00 00
108 status=0 offset=110592 len=0 00 00 00 00 00 00
109 status=0 offset=111616 len=0 00 00 00 00 00 00
110 status=0 offset=112640 len=0 00 00 00 00 00 00
111 status=0 offset=113664 len=0 00 00 00 00 00 00
112 status=0 offset=114688 len=0 00 00 00 00 00 00
113 status=0 offset=115712 len=0 00 00 00 00 00 00
114 status=0 offset=116736 len=0 00 00 00 00 00 00
115 status=0 offset=117760 len=0 00 00 00 00 00 00
116 status=0 offset=118784 len=0 00 00 00 00 00 00
117 status=0 offset=119808 len=0 00 00 00 00 00 00
118 status=0 offset=120832 len=0 00 00 00 00 00 00
119 status=0 offset=121856 len=0 00 00 00 00 00 00
120 status=0 offset=122880 len=0 00 00 00 00 00 00
121 status=0 offset=123904 len=0 00 00 00 00 00 00
122 status=0 offset=124928 len=0 00 00 00 00 00 00
123 status=0 offset=125952 len=0 00 00 00 00 00 00
124 status=0 offset=126976 len=0 00 00 00 00 00 00
125 status=0 offset=128000 len=0 00 00 00 00 00 00
126 status=0 offset=129024 len=0 00 00 00 00 00 00
127 status=0 offset=130048 len=0 00 00 00 00 00 00

可以看到,urb->UrbIsochronousTransfer.TransferBufferLength表示本URB的有效数据长度,USBD_ISO_PACKET_DESCRIPTOR中的Offset不变,Status表示本小包传输状态,其实也指明了数据是否有效,Length表示实际的小包数据长度。
这些有效的数据长度加起来刚好等于urb->UrbIsochronousTransfer.TransferBufferLength的长度。

8219 = 1024*8+27

通过BUSHOUND抓的同步传输的数据包也验证了这个结果,这里只显示前4096个字节

02 81 00 00  00 01 41 9b  b4 24 0e 22  ec 5a d4 9c  2e a4 c9 5a  c9 70 80 95  a4 33 3a 52  7b 57 20 8d
f5 84 9e b2  4f e0 37 7c  dc 53 52 9b  45 c1 f6 71  f1 fe dd 3f  52 22 17 85  52 b6 81 c8  c6 0d b0 f8
53 d2 a4 6b  af 95 9d ae  6b 5a e6 2e  1c 2f 66 38  92 7d 7c b2  5b 20 35 3d  30 1f 51 13  58 8f 22 4d
da e8 ba 55  0c 68 c5 0f  b9 73 73 27  e5 9b 86 91  6c 2d a7 08  5b fc 93 c8  00 5f c3 b7  4a ec ab 0d
26 ab 6e 55  3d 49 d3 31  65 8c fc 10  32 89 51 2c  47 b6 99 8f  7d 11 92 0f  c5 8e 48 99  50 28 85 0c
86 ca 3f 06  da 64 8a 78  16 b6 7e 8c  ae e0 da 90  65 28 bb f6  2c a4 de f9  90 29 e4 71  a6 6a fb 41
54 70 0d c9  5e 89 0c b5  ea 1c 39 ca  0e 9d ce 03  8f 14 ff 46  ef 33 35 07  71 f5 72 ac  aa c8 a9 ab
a9 ff ff 9d  2e 8c fe f7  5e 0c 26 40  f4 df ad 16  75 7b 73 4d  f9 37 a6 7e  1d f1 4f e0  68 32 d1 77
22 0d 2e b6  d5 a9 c4 a9  ab 65 a8 5b  b0 fa 45 6c  ec 04 a5 e9  2c 2e df cc  8e 53 ce d6  fe 41 f6 f4
8e 74 48 c6  a4 91 ea d5  86 62 0d 28  6d 05 7d 3d  ad a1 6e 83  a7 df a0 17  5e 26 88 0b  a6 d9 13 d3
00 86 55 2b  04 03 c9 c7  91 5e 36 ca  4c 7d cb 19  18 8d 8a 8b  a2 41 38 30  29 e8 ce 9f  c1 ef 3e 82
c5 cd 7a f2  c6 65 21 d0  6e 9a f5 1b  54 32 7f 90  64 a1 a5 ea  43 48 7e 72  85 23 df 28  d9 ba a2 57
82 da 46 f6  f2 08 c9 e9  52 b8 af 90  21 a8 7a c8  06 fd 7c 61  74 1e 0c c2  6d f8 91 07  25 cc 11 2f
67 16 8e c0  41 73 d0 3f  d5 35 70 37  20 4c 8d 0e  e1 78 6e db  67 c7 35 53  4a 44 3d 02  1c b0 51 99
46 d4 a2 d8  f4 96 4e 9c  11 e1 f1 1b  58 9b 87 58  6d 1d d6 82  0d fa 74 90  4d 43 86 5e  c5 cd 34 fb
34 fa a9 76  90 9f e7 57  d5 47 8a 19  36 7a b3 f5  59 d4 84 e9  ef 1e 84 7e  e5 47 a1 38  18 84 9d d5
f8 a6 84 5f  e3 bd 3c ae  c4 a6 8f e5  01 fa f6 39  57 ad e5 fb  7c 1e 1a f4  ba 27 a2 77  2a 93 ea db
da 9a d2 1a  99 53 92 f2  05 61 cd 10  f4 fd 81 95  e1 5f 2e 98  c6 55 bc f8  14 38 eb 24  4c da e7 30
dd 66 d0 72  2a e3 40 60  42 0a 12 9a  85 26 61 97  16 99 57 ad  26 b7 7d 73  04 e7 70 25  98 07 60 e4
ba a4 44 c7  33 29 89 77  57 1e 04 fc  42 39 23 f3  05 29 6c 70  66 82 2e 9e  8a f6 62 93  e1 24 78 d3
07 f3 95 54  22 71 20 b5  2f 9f 32 e9  71 58 3a 48  5a 06 02 13  d7 58 f2 46  ef 06 6b b5  af 9e ad 43
38 2b 5c 7f  94 b1 f2 3d  3a 3e 49 56  be 6c 95 7b  ad 31 c7 36  3b f4 83 ce  53 32 cb e2  eb 58 34 3c
c5 fb db 80  35 7a f1 b5  c4 16 94 f3  92 23 75 ff  46 0f b5 be  35 84 60 71  42 0d 79 bc  ac 06 b1 c8
d3 99 a0 bb  c5 82 c8 b5  f8 60 19 b4  9d 20 ac f6  0d 8d 30 7e  40 d4 b9 fd  d3 59 b5 bb  1d ea ba 0b
8b c1 81 bb  92 d6 b5 7d  df dc 8e 54  08 88 cf b7  12 c9 ff fa  00 c6 2d a7  ed 8c b6 9c  60 fb b8 8b
18 03 fc 4b  0f 44 1f 15  74 c6 8f 31  3f fb 05 f2  62 38 6c f8  1c 7f 9a 98  a2 59 6d 6b  67 05 d7 af
a7 d6 39 0c  bf 1c bd a2  6b ec 2d dc  17 7d e3 c3  f7 21 75 b8  61 69 d1 02  8c 95 f6 de  1b 9b a8 94
2b a9 ec 95  b9 e0 18 a3  79 e9 73 ed  83 31 49 87  1e e6 e4 ca  48 63 4f e1  ac 4f 33 34  53 af d3 84
11 cf 0a 16  6a ef 1a 9a  2d ee 4f 0e  7c be 78 f1  6e 50 cc 0a  af 63 cb 59  f5 59 fc 71  e8 01 22 ab
61 44 5b ed  05 d1 86 1c  11 be ce 95  9d 8c e5 18  d7 7c 46 08  ec 62 9d 9c  5e ed 8a 6f  74 37 ec c0
66 76 dd af  89 38 50 a6  b9 a7 24 85  12 e8 a0 b4  b3 d7 55 10  4e 67 3a 19  b2 dd f2 76  bd ba f2 e6
66 8e 5a 6a  b5 db 10 a2  e1 e1 13 77  df 11 a7 86  f9 b2 6e ae  88 39 bf 39  f4 8e c2 1d  18 bd 13 dc
02 81 df ab  02 3f 0b 6e  90 d9 6b 03  4c d5 5f 54  cd b3 62 c6  df 5a 0c e1  25 cf 1e 0a  f4 40 69 08
d8 b8 78 7d  75 0f cd c8  77 51 2f 49  62 18 61 ad  bc 79 1b 01  4e f8 0b 62  57 50 10 ba  6e 7e 48 74
5e 89 10 26  23 c2 6d 64  e8 54 a1 da  45 94 26 59  d2 c9 08 3f  4e 7d 9b 9a  ed 1f c1 bb  5c 34 94 95
5a 35 79 67  2a cb 57 02  bb 37 7a 70  a1 fd 4f ef  2b 78 25 46  23 6f 82 bd  14 be 39 64  0a 64 3d ad
00 15 2f 61  57 df b0 f4  51 cf bb 06  88 d7 0a 79  4d e4 2d f3  79 4c c3 06  db ce 87 ec  94 1f 30 df
26 e3 a2 cf  ba df 1b e6  42 8c 62 bf  98 3d 9e 06  76 07 7f a6  b7 4a 87 d2  e6 a5 25 b7  a9 3d 8b fa
5f 0f 10 a0  e0 56 e2 1c  1f 55 02 c1  74 38 eb 9f  db 6c 7d 58  24 89 f9 5a  4d 23 d6 38  da 54 7a a5
0e f3 2a 18  11 b8 18 d0  98 6f 23 d7  22 38 33 d3  d7 50 18 d2  b3 2d b8 ee  77 0a 63 61  43 42 e4 11
a3 bd b9 04  a4 98 df 00  76 46 11 68  87 14 52 16  2b 32 d2 85  c3 55 bb ce  b7 cc 5a 23  9f aa b7 ec
5a 12 47 b8  d0 40 62 ab  8b e2 10 37  e8 ec 61 57  ca f8 7b d4  80 ee cc f6  4c 88 85 55  9a ce 17 17
f3 95 33 36  88 c9 ec 1b  b6 8c 08 f2  e1 bd 6f f1  f0 fb f0 b3  cb 06 91 5a  86 dd 32 33  d3 0e 7c e9
91 a5 d8 aa  0f 7b 38 7f  7d 0d dd b4  1d 24 3c 3c  86 ad 73 41  0d e2 d9 60  77 68 db 1a  b1 94 6f 84
a3 68 ea 77  ed 94 6d a0  09 05 7c ec  3a 2d c7 93  55 dc 1c 19  2e 94 6b 55  c4 1d 5d 5a  23 ac fd e9
1c de ff 82  67 de af 6e  4e 0d 01 2f  b2 24 b1 ad  b6 cd ef 66  d6 02 15 3b  7e e9 da 29  22 83 37 f7
ad b4 c0 39  73 3e 5f cb  fb aa aa 5b  ae 36 f1 39  92 0d 7a 18  a0 d4 85 7e  3a d9 1a 2d  cd 6b 35 c3
0f 54 13 75  6a 39 49 d9  ba 27 18 bf  c1 5b 59 39  63 bf 64 dd  87 4f d2 23  5b 24 74 28  f6 b4 b7 8c
0c aa 05 ee  17 91 6e d6  7f 0d 9b cc  f2 9f 05 a8  5c 3f 88 06  cf 78 41 0a  95 13 c5 f8  ef 95 e6 bc
b6 a0 b9 22  2e 1d c5 02  db d6 f5 ac  7c d8 b3 76  75 47 9b 09  fc 11 b1 1a  47 7f 5e 64  39 14 30 51
55 a0 c7 95  14 55 d1 af  8b 4b 92 db  33 84 95 f4  7c 04 d5 15  20 8e ea 82  47 c3 b3 50  e0 c9 a7 82
c0 ff 22 62  92 dd f8 ea  3b 95 8c 61  3b 47 4b a6  e1 e6 bf 4e  24 69 03 94  65 5d 2d 88  a5 bb 69 c1
58 f4 dc 64  b8 87 e4 8b  22 a8 bd ee  6e 90 87 3d  c3 c4 74 e7  99 20 2b db  0a 09 cc 31  be 2a 28 6f
7c bc 8c 40  36 eb 0a ac  a6 ee aa 73  43 0e 20 ad  fd 20 9d df  0a de 7d 92  74 b8 c1 1c  37 8c d9 06
65 85 34 39  8f e6 f6 46  69 fa 85 6a  86 37 c6 e7  11 4d 40 18  c0 a4 1d f3  1b dd 66 ac  3e 51 55 40
f8 1d 24 81  bc be 0e 6d  f6 b0 01 ab  33 87 64 a9  ec 35 4d 63  02 08 cb 11  02 33 3f 0b  24 24 2b 2e
d9 ea 0a 64  d1 cf c4 24  87 fb 5a 1d  e4 1c ae f4  b9 36 f3 41  00 85 4a b0  c1 52 41 ca  64 ad fb 94
02 6e 8d b8  b5 58 4c 53  e4 32 c5 be  cd 76 3d f7  cf fa 5f 66  06 ed aa 9b  bd 3b b6 a6  29 81 b2 03
de c7 e3 c5  38 8a 30 08  34 5b 7e c3  e6 77 d5 67  d0 84 6f 42  3f c6 67 4d  9a 45 17 53  31 c2 7f f7
70 bc 2a 10  b1 1d 27 d3  c3 7b be 3a  90 ce 99 9d  a5 10 c0 90  b1 5c ed 74  ef e0 b4 4b  79 eb bc d3
e1 3c 66 5a  dd 35 24 41  27 57 7a 8f  f3 0a 00 5b  10 43 49 e4  85 47 ed 9b  fc e3 df 26  85 08 17 dc
0a 98 16 b6  04 24 78 52  ca 5b 89 fa  54 f2 54 f7  cd 64 32 22  ea 8a 28 92  4a 50 93 86  0d 98 4e 7d
6a 04 33 42  ef 23 95 f1  5e 76 ab c5  a4 36 16 45  a7 8b 02 33  8c 3c 21 16  87 3d aa aa  cd cb f1 f6
bb 41 1f 8e  11 6f a1 a1  2a e6 44 5a  5c 5d ab 1d  3e a7 84 ba  f1 77 67 20  3a 3e 21 4d  b4 5f 2a 2f
02 81 91 e9  c4 6c 83 55  4a 90 d0 c3  19 74 f6 fd  77 49 3d 7b  5c 32 f4 e6  0a 72 a6 8d  07 9b 6b 5d
d7 f9 31 1f  3e f5 6a a6  43 89 b5 1c  25 2d 5e 9a  e6 57 5d 3a  98 9e 0a 6a  bb ff c0 f4  6d 51 c4 fd
9b 71 c9 bc  2c 78 40 25  72 c5 df 3a  0d e6 bb a2  b8 c8 7d 73  81 8d b3 66  fc 28 e9 a2  3d 3b 06 47
e4 46 8f 75  54 bf 59 f0  66 4f 67 ff  78 14 11 b8  be 26 fa 6a  54 bd 83 93  a4 c3 cf e2  bd 72 e3 4d
6f 91 95 9a  9c bf 6b 98  81 ca 96 9a  10 e3 26 7a  0d c4 80 19  10 e2 48 57  84 f7 42 b4  47 82 58 53
81 0d 96 74  36 91 3b a9  46 db 07 cc  b0 4a 04 1b  c4 5e b3 6c  39 9d e3 7c  92 8c b2 ba  f2 d6 f4 2c
6f d0 83 8c  d7 3b 7a dc  f5 db ae 4f  b8 f6 64 82  f2 f7 8b eb  ae b1 d9 ce  74 37 66 cf  20 32 7d 5d
d0 0b 9f 46  79 74 37 e6  88 e3 50 88  da 9b 72 50  71 25 66 b2  0e 56 be 7c  83 9a 21 3b  c5 a4 67 bb
c4 72 a8 6d  23 bb 99 0c  b7 c0 b8 da  e7 05 f6 d1  07 ef 6b b3  53 44 d3 61  fc 0c c2 0a  8c f8 05 f3
65 2d d5 ea  79 46 19 5b  2b 9c 8d 0b  98 66 72 4d  ab 37 f7 6a  8c 6e c5 54  e1 af e9 0d  37 96 bb 52
30 13 fa 1d  b9 2c fd 5c  e2 03 49 6a  7e 23 a2 eb  62 e2 da 26  04 1a 42 2e  78 db 2a 23  e2 74 b9 c3
d9 2f 89 74  fb f2 29 81  25 3d ac 2b  6e 71 cb a0  96 84 2d 62  e9 d1 96 0e  ca ac f5 af  63 4a e9 68
c7 a6 bb 01  e0 b7 bf a7  38 a1 3c 53  2c 29 e8 4c  12 6d 9b 82  9b 8c ec 20  bd c0 2e 4b  c2 c7 01 9f
81 bf 44 b1  3b f1 c9 59  b3 d9 de 5b  c2 89 13 74  1a 8e b1 09  ec f7 a9 33  70 cb 50 ac  94 ed 25 ea
81 12 e6 21  a3 e4 9e a1  dc 0e 83 15  f1 30 95 f2  3f 6d 38 61  45 b9 3a 12  05 75 fc ad  88 56 75 d5
e9 63 0c 2f  99 31 0a ee  5a cf 57 38  41 98 87 78  63 58 67 02  d7 07 7c c7  05 44 04 6c  ff 7e 8e 31
8d 27 1e ab  a5 a6 af 75  6c 67 2e 30  ce 5f 93 3a  73 05 a6 c1  01 48 4f db  93 b4 7d 33  8f 62 8e 78
21 a1 63 08  e7 12 9c 1d  b5 3a 7e d5  1e 54 fc ef  bf 9f aa 6e  6d b2 82 f0  c4 62 94 8b  6b f9 1d 95
c8 0a a5 6a  fe 4a a0 c3  85 d0 89 1e  39 0a 6c a7  0f 1e a0 82  81 f8 a1 7a  e0 96 dc ee  3e d2 42 c0
89 63 a7 d5  b0 48 79 27  00 36 ca d0  72 fe e3 e3  b4 dd d9 0d  58 09 59 a2  4a 79 e2 93  a4 ed fb 22
6b 70 3f b4  69 82 a5 17  7b 4d 89 7b  a0 25 ff 3a  a7 2d 95 c9  f5 01 8d a3  1e c9 a5 88  77 3d bf ec
59 e1 21 bb  79 7f 15 b4  76 2e 1f 4b  df 30 23 e5  16 8e d2 99  d2 14 b8 b3  4b 51 6b b5  e8 3c 7f f5
29 fd 2d a8  06 b6 ee 1d  05 48 a8 ba  2d 5a 44 c3  e7 4c 79 35  6b 9a 77 33  76 cb 45 f6  98 d4 a2 8b
91 2e 92 b9  19 c5 50 5f  1c 95 74 cb  d0 cd a1 80  16 8f d8 91  25 1b 66 7a  f8 52 3f f7  69 29 bb 7c
22 e6 08 29  41 75 a4 82  37 3f 8d ae  7b 7c e0 44  60 ea cc ca  ce f9 d2 86  e1 69 d3 03  18 8d 5e d4
14 a7 70 bd  8a eb cf 49  67 99 98 f4  9c 32 0d f2  dc fb 6c f2  ad c4 8f 61  a6 49 66 27  cb cf a0 24
e0 93 50 6a  22 32 f0 5c  18 f1 09 df  c5 06 c9 9c  90 3d 36 4b  91 c4 ee 41  9b a3 31 5c  8b 02 25 6f
aa 5a 8b 4f  d4 a7 5e 85  97 7b ae 66  41 16 a2 68  d5 bf 50 f4  61 a1 91 d3  c7 e1 8d 67  42 86 7d 7c
e6 f3 2a c1  68 86 64 48  59 d1 76 28  f9 73 53 45  e9 24 ca 22  8b ea 65 06  ee c0 96 fa  d8 d2 c4 08
f7 38 74 d6  0d 9f 0b db  7c 94 0e 8f  de b2 34 c7  93 30 a7 81  bb 05 2a 49  7e ad a3 df  2c 1d 9b fe
18 33 63 59  0b 33 80 20  1a b6 fd 2b  65 d4 9c f6  2b 7d 37 b5  5f 12 cf 48  30 7c b7 14  b3 61 1e 4c
58 69 c1 4a  af 6a ff ca  c9 f0 a4 37  c6 9b 7b 66  0c e0 00 fe  b6 69 e1 4b  5b 8e 57 1d  48 0b a9 94
02 81 a9 80  54 b3 5f ca  79 3f 8a 15  86 3e 5a 56  a2 fd 71 0f  fc 1d 9a ff  e7 c7 38 55  91 53 a9 33
37 a5 48 ba  29 9f c8 ab  d0 ea 2b 57  d2 6f 71 39  ca 77 98 87  e4 a3 99 0a  35 ca 89 5d  54 17 5b 69
7a 65 af f9  4a 61 9f 2b  3e d4 ae a4  3e 4b 40 41  9f 03 68 15  c9 e4 39 a6  91 de ca c5  85 c8 cd a7
27 65 80 d7  33 27 57 35  31 8b 2a a5  5a 35 b3 e5  76 ed d7 98  9d d7 df 62  14 e5 4f 10  f8 ab 9a 85
f4 15 b3 42  d0 1d 41 15  7e db dd 87  25 c6 76 04  bc d7 3b 34  8a f1 f4 af  32 ba c0 d6  c9 a8 7f 30
2c 77 5a e6  3c 21 53 a1  47 e0 c0 ef  37 93 1b 91  62 8f 73 c4  94 81 16 5a  62 10 3b 93  ff fa 8a 21
af 6f 48 9f  58 9d 13 a5  75 b3 53 90  a1 98 68 1e  7a a7 aa ee  88 67 37 43  47 ca 59 b8  d2 51 3b 7e
22 97 49 9a  78 f8 0e 90  b2 be 11 6e  7a 3c 02 69  ef d5 86 6e  b0 bd 19 b8  80 95 c6 37  37 1f 7f 61
95 d0 66 ad  67 07 b3 b4  40 97 4d 4b  34 13 f2 e9  df 48 63 9c  ce 29 f0 ce  c0 97 40 0a  0f 5f 0d 36
f2 99 3a d5  20 f6 2d 49  ad a8 96 f2  12 7d 21 7e  2e b7 98 8c  44 8c 01 fa  a0 3e 4b 61  8a 80 67 9b
c7 96 6f f3  f1 f8 1f 0e  17 60 6f 46  65 80 33 5f  48 13 d7 49  70 ec 70 00  e9 88 3a 84  c5 cc 2d e8
de 9d 53 95  11 1a 27 67  ee 47 30 a5  ee f1 54 f4  56 f4 e5 58  80 59 d4 af  5d 44 41 59  80 29 b4 7b
f8 73 27 58  ec b9 71 2b  91 ed de 03  fa fd 71 71  f5 e2 a2 a2  3f 2e 7c ca  60 3c 64 bc  6c c1 d8 55
46 11 2b 24  be b9 f2 ce  ad 0e 70 2c  a2 9e 53 29  05 79 82 3d  e3 3d 45 22  26 56 95 ed  6c bf 4b 39
be 54 e2 8f  98 f0 0e d5  c8 c5 11 c6  90 e7 08 f5  63 e6 e5 e1  4a a4 1c 4c  0f bf de 45  a2 71 93 98
e9 75 1d b9  09 c4 3d 7a  f9 6f f5 59  5c 3f 74 7c  de a3 37 a0  bb 91 a0 e1  62 f1 9e 9d  3b b4 3a 78
e3 ee 2e b3  ad 1e 92 ed  f7 ff ff fa  b7 fe 42 33  33 82 0d 8f  48 fe a8 48  54 c7 3c 6a  d7 fb fb db
ff df 6e af  3b a1 1b e4  b7 69 a9 b4  85 17 11 b2  b2 a3 00 2c  d1 3f 01 e3  65 73 c2 7e  43 28 44 ec
de cf 72 cd  bd 0c 7c ee  63 bf a6 ac  cb 20 ae f2  38 c6 93 46  8d ce f6 ef  1f d2 9c a4  d8 21 39 b0
e7 d8 a3 4b  ba 02 c3 b2  ab 3a c9 09  68 2e 89 d1  2d 3f c2 13  b5 59 d9 8c  0b da f3 5b  19 44 12 da
e9 92 be a0  38 cf 84 48  1e 6f 0b 8d  a2 ff b2 e4  8a 38 88 c3  b2 b8 c7 c3  8a ed cf d6  59 0c d0 41
3d e2 37 95  85 30 9d ce  7c 63 3f c0  40 de 45 be  49 8c 1d 32  7c c8 1a f6  88 bd 9d 97  22 21 23 6e
72 6d a0 ad  27 ea 47 e3  93 45 8f 36  77 e8 3f 2f  f1 fb 2a d0  dc f8 3e 5f  d3 7d d4 4e  8e 19 c1 08
ab 63 ab 98  b1 85 95 1e  45 ed b5 05  9a 28 79 63  46 a8 5b 9b  42 4e 37 af  a3 41 77 52  30 85 78 27
44 76 36 e5  2e a7 82 0e  f8 90 f8 1f  9a 05 ba 83  05 65 23 7e  c7 73 98 34  27 06 8d 42  38 44 ee 6d
9d 33 62 d0  bc ae 80 06  0a 19 cf fc  0b 6b a4 7b  c8 51 3d fa  92 53 2c 45  f3 6f f2 43  25 50 91 4b
4e 4c e3 54  8e b2 8c bf  fd a7 7b e4  75 f8 3e 66  e6 e8 e7 78  ed 2b af 35  ce aa f0 ba  eb e3 80 82
cd c8 43 99  94 b0 b0 44  ee be 9c 27  22 bf 51 26  53 73 72 95  86 bf ce 5f  6f 7b db bb  46 fe e9 72
a6 3e e6 bb  be ee 44 0f  92 dc f9 17  e9 60 7d b8  ca d0 01 1a  7b 9e fc e0  a1 8e 3c 39  fd f9 4d ad
52 90 ad 35  05 f4 fd b2  07 1e 6b d6  54 d3 8a 68  9b bb 04 ae  ac 21 22 b0  bb 2d a0 86  8e 27 69 23
2f 72 07 19  44 7d 21 d6  b9 ba 60 31  a9 e9 de 11  f6 8b 27 51  a8 b3 84 62  bb 96 59 92  51 9b ce cc
81 b6 67 c6  92 60 81 f9  fa a3 1f 38  be bf b0 70  64 91 84 22  0c de 4b 9d  73 14 57 b5  02 8d 0d 74
参考资料:
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

UVC 等时传输中的URB_ISOCH_TRANSFER
通过UVC规范可知,视频图像数据的读取可使用两种端点传输方式,分别为:BULK 块/批量传输方式ISO 等时/同步传输方式在Windows内核中,USB数据的读取是通过URB来进行传输的,其结构体是一个大大的共用体,根据数据传输的方式对应其不同的结构体,其内容如下:typedef _Struct_s......
UVC等时传输中的dwMaxPayloadTransferSize
UVC的视频流接口控制请求的数据大小可为26字节,34字节和48字节,其分别对应的是UVC的1.0,1,1和UVC1.5版本。在其整个视频流控制接口参数偏移地址22处的字段为一4字节的dwMaxPayloadTransferSize,根据其字段解释为“指定设备在单个有效负载传输中可以传输或接收的最大......
USB 等时/同步传输、块传输与转换设置在UVC摄像头驱动中的探讨
最近在Windows10 x64环境下,开发了一个虚拟UVC摄像头驱动。确切的来说这不是摄像头驱动,而是一个虚拟USB总线驱动。使用该虚拟总线驱动使用应用软件通过IOCTL控制总线子设备的创建与卸载。框架设计驱动安装完成后,是一个单纯的USB虚拟总线。应用软件通过发送自定义IOCTL码IOCTL......
USB 同步/等时传输方式
USB协议规定了四种传输类型:控制传输、批量传输、同步传输、中断传输。等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感,类似用于USB摄像设备,USB语音设备等等。同步事务没有握手包。当一个同步传输中有多个事务时,最后一个事务之前的事务的数据长......
USB超高速 同步传输
正如USB2.0一样,超速同步传输类型是用来支持想要能容忍错误,周期性的轮询服务的传输流。超速跟USB2.0一样不发送起始帧,但是时序信息要通过同步时间戳包(ITP)被发送给设备。这个规格的协议层章详细描述了用来完成同步传输的包,总线事务和事务处理流程。也描述了怎么样传送时序信息给设备。超速同步传输......
Windows下USB驱动同步URB转IRP请求函数代码
URB和IRP类似,只不过一个应用于通用的Windows驱动,一个专职于USB。USB的URB的负载是IRP,其通过负载到IRP时,然后使用通用的Windows IRP请求发向下层目标USB设备。USB与IRP的关联是通过IRP的IO_STACK_LOCATION的 IoStack->Para......
Windows下USB驱动异步URB转IRP请求函数代码
URB有同步请求,也有异步请求。这里微软官方提供了一个异步请求URB的代码示例// The SubmitUrbASync routine submits an URB asynchronously.//// Parameters://// Parameters:// Devic......
Windows下USB驱动同步URB转IRP请求函数代码-改进版
URB的同步调用一般使用:Windows下USB驱动同步URB转IRP请求函数代码 http://www.usbzh.com/article/detail-547.html但是,在某些特定的情况下,有时会因为下底设备并没有完成而挂死。这里提供一种超时取消IRP的方法,同时考虑到了线和切换的情况。这里......
Windows下虚拟USB设备数据的读写请求调试笔记
到现在为止,本人已经在Windows下确切来说是Windows10 x64下开发了以下USB虚拟USB设备:USB虚拟UVC摄像头设备USB虚拟UAC麦克风设备USB虚拟HID键盘设备USB虚拟HID鼠标设备USB虚拟HID键盘鼠标复合设备USB虚拟HID单点触摸屏设备USB虚拟HID多点触摸屏......
基于UVC规范的USB摄像头数据传输模式的总结
根据UVC(USB VIDEO CLASS)规范,UVC视频数据传输方式支持:同步传输即ISO传输批量传输即BULK传输但是不同的操作系统对UVC规范的支持不一定是全量支持的:Windows操作系统对于windows操作系统,对UVC版本的支持情况如下:UVC 版本Windows ......
手动分析使用BUSHOUND抓取同步传输URB
BUSHOUND大家太熟了,使用它来进行数据抓包那不太太方便。但在BUSHOUND的抓取配置项中,有一个叫了URB的东西,我相信大家都没有选中过,因为一般来说,对WINDOWS USB驱动开发人员来说都不一定有用,更何况大家也只是用来抓取一下几个数据的输入输出,更没有必要进行USB的分析了。本人今天......
USB 同步传输端点的数据包PID序列及额外传输端点大小
对于同步传输:如果输入端点提供的负载数据小于端点描述符指定的最大负载数据,则主机端将不再该端点提供进一步的输入事务。这是因为所对USB设备来说,所有的数据传输都是由主机发起的。对于数据输入IN事务,虽然数据的传输方向为设备端到主机,但是该事务却是由主机发起。由于设备的输入端点提供的负载数据小于该......
使用BUSHOUND手动分析USB控制传输的URB
USB的控制传输是最基本的传输类型,控制传输适用于设备的枚举和设备的状态控制。我里我们使用BUSHOUND来抓取USB控制传输的URB。同样的,我们使用的操作系统是Windows10 x64,和同步传输URB抓包一样,我们先抓取数据,然后再分析数据结构。这里我插入电脑的U盘的枚举以获取设备描述符为......
使用BUSHOUND手动分析USB批量传输的URB
使用BUSHOUND抓取U盘的批量传输的URB数据,我们对其其进行数据分析:13 IN 55 53 42 53 40 0b ac 57 00 00 00 00 00 URB80 00 09 00 00 00 00 00 d8 f2 75 a0 77 7f 00 00 ......
USB摄像头同步传输的完成后URB参数
这几天不是闲来无事,一个工作的任务就是对手中一个USB摄像头进行驱动开发,并进行视频格式的转换。通过分析该USB摄像头可知,其采用的是同步传输,所以本人在开发的驱动中,使用同步的URB进行下发请求数据,然后在完成例程中获取数据。同步传输URB本人在 手动分析使用BUSHOUND抓取同步传输URB......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!