控制端点上的 IN 和 OUT 数据包

IN and OUT packets on control endpoint

可以控制端点接收IN和OUT数据包 作为一个正常的端点?或者它可以 只接收 SETUP 数据包后面的 IN 和 OUT 数据包?

设置数据包始终是控制传输的一部分。 主机总是通过发送设置数据包来启动控制传输。 IN 或 OUT 数据将跟随它。通常用于控制传输的 USB API 包括设置数据包和数据缓冲区。例如,libusb 函数如下所示:

int libusb_control_transfer (libusb_device_handle * dev_handle,
    uint8_t     bmRequestType,
    uint8_t     bRequest,
    uint16_t    wValue,
    uint16_t    wIndex,
    unsigned char *data,
    uint16_t    wLength,
    unsigned int    timeout 
)   

bmRequestType、bRequest、wValue、wIndex 和 wLength 参数用于设置数据包。

Microsoft 的以下文档也应该有助于理解控制传输的工作原理: https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-control-transfer