FreeRDP
|
#include <freerdp/config.h>
#include <freerdp/dvc.h>
#include <freerdp/types.h>
#include <msusb.h>
#include <winpr/stream.h>
Enumerations | |
enum | device_text_type { DeviceTextDescription = 0 , DeviceTextLocationInformation = 1 } |
enum | device_descriptor_table { B_LENGTH = 0 , B_DESCRIPTOR_TYPE = 1 , BCD_USB = 2 , B_DEVICE_CLASS = 4 , B_DEVICE_SUBCLASS = 5 , B_DEVICE_PROTOCOL = 6 , B_MAX_PACKET_SIZE0 = 7 , ID_VENDOR = 8 , ID_PRODUCT = 10 , BCD_DEVICE = 12 , I_MANUFACTURER = 14 , I_PRODUCT = 15 , I_SERIAL_NUMBER = 16 , B_NUM_CONFIGURATIONS = 17 } |
#define ADD_DEVICE 0x00000101 |
#define ADD_VIRTUAL_CHANNEL 0x00000100 |
#define BASE_USBDEVICE_NUM 0x00000005 |
#define BULK_TRANSFER 0x02 |
#define CANCEL_REQUEST 0x00000100 |
#define CAPABILITIES_NEGOTIATOR 0x00000000 |
#define CHANNEL_CREATED 0x00000100 |
#define CLASS_AUDIO 0x01 |
#define CLASS_COMMUNICATION_DATA_IF 0x0a |
#define CLASS_COMMUNICATION_IF 0x02 |
#define CLASS_CONTENT_SECURITY 0x0d |
#define CLASS_DEPENDENCE 0xfe |
#define CLASS_DIAGNOSTIC 0xdc |
#define CLASS_ELSE_DEVICE 0xef |
#define CLASS_HID 0x03 |
#define CLASS_HUB 0x09 |
#define CLASS_IMAGE 0x06 |
#define CLASS_MASS_STORAGE 0x08 |
#define CLASS_PERSONAL_HEALTHCARE 0x0f |
#define CLASS_PHYSICAL 0x05 |
#define CLASS_PRINTER 0x07 |
#define CLASS_RESERVE 0x00 |
#define CLASS_SMART_CARD 0x0b |
#define CLASS_VENDOR_DEPENDENCE 0xff |
#define CLASS_VIDEO 0x0e |
#define CLASS_WIRELESS_CONTROLLER 0xe0 |
#define ClearHubFeature (0x2000 | LIBUSB_REQUEST_CLEAR_FEATURE) |
#define ClearPortFeature (0x2300 | LIBUSB_REQUEST_CLEAR_FEATURE) |
#define CLIENT_CHANNEL_NOTIFICATION 0x00000003 |
#define CLIENT_DEVICE_SINK 0x00000001 |
#define CONTROL_TRANSFER 0x00 |
#define DEVICE_REMOTE_WAKEUP 0x01 |
#define ENDPOINT_HALT 0x00 |
#define GetHubDescriptor (0xa000 | LIBUSB_REQUEST_GET_DESCRIPTOR) |
#define GetHubStatus (0xa000 | LIBUSB_REQUEST_GET_STATUS) |
#define GetPortStatus (0xa300 | LIBUSB_REQUEST_GET_STATUS) |
#define INIT_CHANNEL_IN 1 |
#define INIT_CHANNEL_OUT 0 |
#define INTERFACE_ID_MASK 0x3FFFFFFF |
#define INTERNAL_IO_CONTROL 0x00000103 |
#define INTERRUPT_TRANSFER 0x03 |
#define IO_CONTROL 0x00000102 |
#define IOCONTROL_COMPLETION 0x00000100 |
#define IOCTL_INTERNAL_USB_CYCLE_PORT 0x0022001F |
#define IOCTL_INTERNAL_USB_GET_PORT_STATUS 0x00220013 |
#define IOCTL_INTERNAL_USB_RESET_PORT 0x00220007 |
#define IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION 0x00220027 |
#define IOCTL_INTERNAL_USB_SUBMIT_URB 0x00220003 |
#define ISOCHRONOUS_TRANSFER 0x01 |
#define PIPE_CANCEL 0 |
#define PIPE_RESET 1 |
#define QUERY_DEVICE_TEXT 0x00000104 |
#define REGISTER_REQUEST_CALLBACK 0x00000101 |
#define RETRACT_DEVICE 0x00000107 |
#define RIM_CAPABILITY_VERSION_01 0x00000001 |
FreeRDP: A Remote Desktop Protocol Implementation RemoteFX USB Redirection
Copyright 2012 Atrust corp. Copyright 2012 Alfred Liu alfre d.li u@atr usco rp.co m
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
#define RIM_EXCHANGE_CAPABILITY_REQUEST 0x00000100 |
#define RIMCALL_QUERYINTERFACE 0x00000002 |
#define RIMCALL_RELEASE 0x00000001 |
#define SERVER_CHANNEL_NOTIFICATION 0x00000002 |
#define SetHubFeature (0x2000 | LIBUSB_REQUEST_SET_FEATURE) |
#define SetPortFeature (0x2300 | LIBUSB_REQUEST_SET_FEATURE) |
#define STREAM_ID_MASK 0xC0000000 |
#define STREAM_ID_NONE 0x0UL |
#define STREAM_ID_PROXY 0x1UL |
#define STREAM_ID_STUB 0x2UL |
#define TRANSFER_IN_REQUEST 0x00000105 |
#define TRANSFER_OUT_REQUEST 0x00000106 |
#define TS_URB_BULK_OR_INTERRUPT_TRANSFER 0x0009 |
#define TS_URB_CLASS_DEVICE 0x001A |
#define TS_URB_CLASS_ENDPOINT 0x001C |
#define TS_URB_CLASS_INTERFACE 0x001B |
#define TS_URB_CLASS_OTHER 0x001F |
#define TS_URB_CLEAR_FEATURE_TO_DEVICE 0x0010 |
#define TS_URB_CLEAR_FEATURE_TO_ENDPOINT 0x0012 |
#define TS_URB_CLEAR_FEATURE_TO_INTERFACE 0x0011 |
#define TS_URB_CLEAR_FEATURE_TO_OTHER 0x0022 |
#define TS_URB_CONTROL_GET_CONFIGURATION_REQUEST 0x0026 |
#define TS_URB_CONTROL_GET_INTERFACE_REQUEST 0x0027 |
#define TS_URB_CONTROL_TRANSFER 0x0008 |
#define TS_URB_CONTROL_TRANSFER_EX 0x0032 |
#define TS_URB_GET_CURRENT_FRAME_NUMBER 0x0007 |
#define TS_URB_GET_DESCRIPTOR_FROM_DEVICE 0x000B |
#define TS_URB_GET_DESCRIPTOR_FROM_ENDPOINT 0x0024 |
#define TS_URB_GET_DESCRIPTOR_FROM_INTERFACE 0x0028 |
#define TS_URB_GET_FRAME_LENGTH 0x0005 |
#define TS_URB_GET_OS_FEATURE_DESCRIPTOR_REQUEST 0x002A |
#define TS_URB_GET_STATUS_FROM_DEVICE 0x0013 |
#define TS_URB_GET_STATUS_FROM_ENDPOINT 0x0015 |
#define TS_URB_GET_STATUS_FROM_INTERFACE 0x0014 |
#define TS_URB_GET_STATUS_FROM_OTHER 0x0021 |
#define TS_URB_ISOCH_TRANSFER 0x000A |
#define TS_URB_PIPE_REQUEST 0x0002 |
#define TS_URB_RELEASE_FRAME_LENGTH_CONTROL 0x0004 |
#define TS_URB_RESERVE_0X001D 0x001D |
#define TS_URB_RESERVE_0X002B 0x002B |
#define TS_URB_RESERVE_0X002C 0x002C |
#define TS_URB_RESERVE_0X002D 0x002D |
#define TS_URB_RESERVE_0X002E 0x002E |
#define TS_URB_RESERVE_0X002F 0x002F |
#define TS_URB_RESERVED_0X0016 0x0016 |
#define TS_URB_SELECT_CONFIGURATION 0x0000 |
#define TS_URB_SELECT_INTERFACE 0x0001 |
#define TS_URB_SET_DESCRIPTOR_TO_DEVICE 0x000C |
#define TS_URB_SET_DESCRIPTOR_TO_ENDPOINT 0x0025 |
#define TS_URB_SET_DESCRIPTOR_TO_INTERFACE 0x0029 |
#define TS_URB_SET_FEATURE_TO_DEVICE 0x000D |
#define TS_URB_SET_FEATURE_TO_ENDPOINT 0x000F |
#define TS_URB_SET_FEATURE_TO_INTERFACE 0x000E |
#define TS_URB_SET_FEATURE_TO_OTHER 0x0023 |
#define TS_URB_SET_FRAME_LENGTH 0x0006 |
#define TS_URB_SYNC_CLEAR_STALL 0x0031 |
#define TS_URB_SYNC_RESET_PIPE 0x0030 |
#define TS_URB_SYNC_RESET_PIPE_AND_CLEAR_STALL 0x001E |
#define TS_URB_TAKE_FRAME_LENGTH_CONTROL 0x0003 |
#define TS_URB_VENDOR_DEVICE 0x0017 |
#define TS_URB_VENDOR_ENDPOINT 0x0019 |
#define TS_URB_VENDOR_INTERFACE 0x0018 |
#define TS_URB_VENDOR_OTHER 0x0020 |
#define UDEVMAN_FLAG_ADD_BY_ADDR 0x02 |
#define UDEVMAN_FLAG_ADD_BY_AUTO 0x04 |
#define UDEVMAN_FLAG_ADD_BY_VID_PID 0x01 |
#define UDEVMAN_FLAG_DEBUG 0x08 |
#define URB_CLEAR_FEATURE 0x01 |
#define URB_COMPLETION 0x00000101 |
#define URB_COMPLETION_NO_DATA 0x00000102 |
#define URB_CONTROL_TRANSFER_EXTERNAL 0x1 |
#define URB_CONTROL_TRANSFER_NONEXTERNAL 0x0 |
#define URB_SET_FEATURE 0x00 |
#define URBDRC_DEVICE_ALREADY_SEND 0x10 |
#define URBDRC_DEVICE_CHANNEL_CLOSED 0x08 |
#define URBDRC_DEVICE_DETACH_KERNEL 0x20 |
#define URBDRC_DEVICE_INITIALIZED 0x01 |
#define URBDRC_DEVICE_NOT_FOUND 0x02 |
#define USB_v1_0 0x100 |
#define USB_v1_1 0x110 |
#define USB_v2_0 0x200 |
#define USB_v3_0 0x300 |
#define USBD_DEFAULT_PIPE_TRANSFER 0x00000008 |
#define USBD_PF_CHANGE_MAX_PACKET 0x00000001 |
#define USBD_PF_CHANGE_MAX_PACKET 0x00000001 |
#define USBD_PF_ENABLE_RT_THREAD_ACCESS 0x00000004 |
#define USBD_PF_ENABLE_RT_THREAD_ACCESS 0x00000004 |
#define USBD_PF_MAP_ADD_TRANSFERS 0x00000008 |
#define USBD_PF_MAP_ADD_TRANSFERS 0x00000008 |
#define USBD_PF_SHORT_PACKET_OPT 0x00000002 |
#define USBD_PF_SHORT_PACKET_OPT 0x00000002 |
#define USBD_SHORT_TRANSFER_OK 0x00000002 |
#define USBD_START_ISO_TRANSFER_ASAP 0x00000004 |
#define USBD_STATUS_BABBLE_DETECTED 0xC0000012 |
#define USBD_STATUS_BTSTUFF 0xC0000002 |
#define USBD_STATUS_BUFFER_OVERRUN 0xC000000C |
#define USBD_STATUS_BUFFER_TOO_SMALL 0xC0003000 |
#define USBD_STATUS_BUFFER_UNDERRUN 0xC000000D |
#define USBD_STATUS_CANCELED 0xC0010000 |
#define USBD_STATUS_CRC 0xC0000001 |
#define USBD_STATUS_DATA_BUFFER_ERROR 0xC0000013 |
#define USBD_STATUS_DATA_OVERRUN 0xC0000008 |
#define USBD_STATUS_DATA_TOGGLE_MISMATCH 0xC0000003 |
#define USBD_STATUS_DATA_UNDERRUN 0xC0000009 |
#define USBD_STATUS_DEV_NOT_RESPONDING 0xC0000005 |
#define USBD_STATUS_DEVICE_GONE 0xC0007000 |
#define USBD_STATUS_ERROR_SHORT_TRANSFER 0x80000900 |
#define USBD_STATUS_FIFO 0xC0000010 |
#define USBD_STATUS_INVALID_PARAMETER 0x80000300 |
#define USBD_STATUS_INVALID_PIPE_HANDLE 0x80000600 |
#define USBD_STATUS_INVALID_URB_FUNCTION 0x80000200 |
#define USBD_STATUS_INVALID_URB_FUNCTION 0x80000200 |
#define USBD_STATUS_NO_DATA 0xC000000E |
#define USBD_STATUS_NO_MEMORY 0x80000100 |
#define USBD_STATUS_NOT_ACCESSED 0xC000000F |
#define USBD_STATUS_NOT_SUPPORTED 0xC0000E00 |
#define USBD_STATUS_PENDING 0x40000000 |
#define USBD_STATUS_PID_CHECK_FAILURE 0xC0000006 |
#define USBD_STATUS_REQUEST_FAILED 0x80000500 |
#define USBD_STATUS_RESERVED1 0xC000000A |
#define USBD_STATUS_RESERVED2 0xC000000B |
#define USBD_STATUS_STALL_PID 0xC0000004 |
#define USBD_STATUS_SUCCESS 0x0 |
#define USBD_STATUS_TIMEOUT 0xC0006000 |
#define USBD_STATUS_UNEXPECTED_PID 0xC0000007 |
#define USBD_STATUS_XACT_ERROR 0xC0000011 |
#define USBD_TRANSFER_DIRECTION 0x00000001 |
#define USBD_TRANSFER_DIRECTION_FLAG | ( | flags | ) | ((flags)&USBD_TRANSFER_DIRECTION) |
#define USBD_TRANSFER_DIRECTION_IN 1 |
#define USBD_TRANSFER_DIRECTION_OUT 0 |
#define USBFS_URB_BULK_CONTINUATION 0x04 |
#define USBFS_URB_ISO_ASAP 0x02 |
#define USBFS_URB_QUEUE_BULK 0x10 |
#define USBFS_URB_SHORT_NOT_OK 0x01 |
#define UsbRetractReason_BlockedByPolicy 0x00000001 |
#define VALID_TRANSFER_FLAGS_MASK |
enum device_text_type |