21#ifndef FREERDP_CHANNEL_URBDRC_CLIENT_LIBUSB_UDEVICE_H
22#define FREERDP_CHANNEL_URBDRC_CLIENT_LIBUSB_UDEVICE_H
24#include <winpr/windows.h>
27#include "urbdrc_types.h"
28#include "urbdrc_main.h"
31typedef struct libusb_device LIBUSB_DEVICE;
32typedef struct libusb_device_handle LIBUSB_DEVICE_HANDLE;
33typedef struct libusb_device_descriptor LIBUSB_DEVICE_DESCRIPTOR;
34typedef struct libusb_config_descriptor LIBUSB_CONFIG_DESCRIPTOR;
35typedef struct libusb_interface LIBUSB_INTERFACE;
36typedef struct libusb_interface_descriptor LIBUSB_INTERFACE_DESCRIPTOR;
37typedef struct libusb_endpoint_descriptor LIBUSB_ENDPOINT_DESCEIPTOR;
49 IWTSVirtualChannelManager* channelManager;
56 int isCompositeDevice;
58 LIBUSB_DEVICE_HANDLE* libusb_handle;
59 LIBUSB_DEVICE_HANDLE* hub_handle;
60 LIBUSB_DEVICE* libusb_dev;
61 LIBUSB_DEVICE_DESCRIPTOR* devDescriptor;
63 LIBUSB_CONFIG_DESCRIPTOR* LibusbConfig;
65 wArrayList* request_queue;
72FREERDP_LOCAL
size_t udev_new_by_id(
URBDRC_PLUGIN* urbdrc, libusb_context* ctx, UINT16 idVendor,
73 UINT16 idProduct, IUDEVICE*** devArray);
76FREERDP_LOCAL IUDEVICE* udev_new_by_addr(
URBDRC_PLUGIN* urbdrc, libusb_context* context,
77 BYTE bus_number, BYTE dev_number);
80FREERDP_LOCAL
const char* usb_interface_class_to_string(uint8_t c_class);