Winusb - Как получить изохронные данные от высокой скорости USB 2.0 от Capture Card? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Winusb - Как получить изохронные данные от высокой скорости USB 2.0 от Capture Card? [закрыто]

Сообщение Anonymous »

Я получаю сообщение об ошибке при получении изохронных данных с USB-устройства, которое является картой захвата. Пожалуйста, не советуйте мне использовать драйверы UVC, если только WinUSB не может выполнить эту задачу.
Вот ошибка, я не могу понять, какой «неправильный параметр» для WinUsb_ReadIsochPipe< /code> для правильного выполнения запроса на получение данных.

Код: Выделить всё

Failed to start a `WinUsb_ReadIsochPipe` request. ---->: Error Code: [ 57 ], Error Meaning: [ The parameter is incorrect. ]
Вот код WinUSB C++ API:
https://pastebin.com/CQj5S7Sg
Примечание: Stackoverflow делает не позволяют предоставлять полный код, поскольку у них есть возможность размещать только короткие коды, что вызывает сожаление.
Вот вывод программы:

Код: Выделить всё

F:\AI_Componets\WinUSB\main_test>main.exe

Checking Alternate Setting 1 with [1] endpoints:

Isochronous In Pipe Transfer Size: 24576

Isochronous In Pipe Packet Count: 8

Pipe 0 in Alternate Setting 1: PipeId = 130, PipeType = 1, MaximumBytesPerInterval = 3072, Interval = 1

Initiating Read transfer.

Parameters, BEFORE calling `WinUsb_RegisterIsochBuffer`:

Original Buffer Address: 00000259E2B15F70

Buffer Size in Memory (Bytes): 8

WinusbHandle Address: 00000259E2B130A0

IsochReadBufferHandle: Address FFFFFFFFFFFFFFFF

WinUsb_ReadIsochPipeAsap Parameters, AFTER calling `WinUsb_RegisterIsochBuffer`:

IsochReadBufferHandle: Address 00000259E2B1C4B0

TransferSize: 24576

PacketCount: 8

Buffer Address: 00000259E2B15F70

Buffer Size in Memory (Bytes): 8

WinusbHandle Address: 00000259E2B130A0

BufferLength: 24576

Transfer 1: Offset = 0

Read transfer sent by using ASAP flag.

Failed to start a `WinUsb_ReadIsochPipe` request. ---->: Error Code: [ 57 ], Error Meaning: [ The parameter is incorrect. ]

Requested 24576 bytes in 8 packets per transfer.

Transfer 1 completed.  Read 33360 bytes.

Failed to unregister isoch read buffer.

< /code>
Вот дескрипторы USB (примечание: USB - 2,0): < /p>
USBView.exe:

------------

[Port2]  :  USB Composite Device

Is Port User Connectable:         yes

Is Port Debug Capable:            no

Companion Port Number:            0

Companion Hub Symbolic Link Name:

Protocols Supported:

USB 1.1:                         yes

USB 2.0:                         yes

USB 3.0:                         no

Device Power State:               PowerDeviceD0

---===>Device Information Device Bus Speed: High (is not SuperSpeed or higher capable)

Device Address:                    0x01

Open Pipes:                           0

*!*ERROR:  No open pipes!

===>Device Descriptor This is a Multi-interface Function Code Device

bDeviceSubClass:                   0x02  -> This is the Common Class Sub Class

bDeviceProtocol:                   0x01  -> This is the Interface Association Descriptor protocol

bMaxPacketSize0:                   0x40 = (64) Bytes

idVendor:                        0xEBA4 = Vendor ID not listed with USB.org

idProduct:                       0x7588

bcdDevice:                       0x0328

iManufacturer:                     0x01

English (United States)  "USB3.0 HD Audio Capture"

iProduct:                          0x02

English (United States)  "USB3.0 HD Video Capture"

iSerialNumber:                     0x06

*!*ERROR:  No String Descriptor for index 6!

bNumConfigurations:                0x01

---===>Full Configuration DescriptorConfiguration Descriptor Validated

bNumInterfaces:                    0x04

bConfigurationValue:               0x01

iConfiguration:                    0x00

bmAttributes:                      0x80  -> Bus Powered

MaxPower:                          0x64 = 200 mA

===>IAD Descriptor Video Interface Class

bFunctionSubClass:                 0x03  -> Video Interface Collection

bFunctionProtocol:                 0x00  -> PC_PROTOCOL_UNDEFINED protocol

iFunction:                         0x05

*!*ERROR:  No String Descriptor for index 5!

===>Interface Descriptor Video Interface Class

bInterfaceSubClass:                0x01  -> Video Control Interface SubClass

bInterfaceProtocol:                0x00

iInterface:                        0x05

*!*ERROR:  No String Descriptor for index 5!

===>Class-Specific Video Control Interface Header Descriptor  Validated

dwClockFreq:                 0x017D7840 = (25000000) Hz

bInCollection:                     0x01

baInterfaceNr[1]:                  0x01

USB Video Class device: spec version 1.0

===>Video Control Input Terminal Descriptor

Подробнее здесь: [url]https://stackoverflow.com/questions/79389645/winusb-how-to-receive-isochronous-data-from-usb-2-0-high-speed-in-endpoint-fro[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»