FreeRDP
msusb.h
1 
21 #ifndef FREERDP_UTILS_MSCONFIG_H
22 #define FREERDP_UTILS_MSCONFIG_H
23 
24 #include <winpr/stream.h>
25 #include <freerdp/api.h>
26 
27 typedef struct
28 {
29  UINT16 MaximumPacketSize;
30  UINT32 MaximumTransferSize;
31  UINT32 PipeFlags;
32  UINT32 PipeHandle;
33  BYTE bEndpointAddress;
34  BYTE bInterval;
35  BYTE PipeType;
36  int InitCompleted;
38 
39 typedef struct
40 {
41  UINT16 Length;
42  UINT16 NumberOfPipesExpected;
43  BYTE InterfaceNumber;
44  BYTE AlternateSetting;
45  UINT32 NumberOfPipes;
46  UINT32 InterfaceHandle;
47  BYTE bInterfaceClass;
48  BYTE bInterfaceSubClass;
49  BYTE bInterfaceProtocol;
50  MSUSB_PIPE_DESCRIPTOR** MsPipes;
51  int InitCompleted;
53 
54 typedef struct
55 {
56  UINT16 wTotalLength;
57  BYTE bConfigurationValue;
58  UINT32 ConfigurationHandle;
59  UINT32 NumInterfaces;
60  MSUSB_INTERFACE_DESCRIPTOR** MsInterfaces;
61  int InitCompleted;
62  int MsOutSize;
64 
65 #ifdef __cplusplus
66 extern "C"
67 {
68 #endif
69 
70  /* MSUSB_PIPE exported functions */
71  FREERDP_API BOOL msusb_mspipes_replace(MSUSB_INTERFACE_DESCRIPTOR* MsInterface,
72  MSUSB_PIPE_DESCRIPTOR** NewMsPipes,
73  UINT32 NewNumberOfPipes);
74 
75  /* MSUSB_INTERFACE exported functions */
76  FREERDP_API BOOL msusb_msinterface_replace(MSUSB_CONFIG_DESCRIPTOR* MsConfig,
77  BYTE InterfaceNumber,
78  MSUSB_INTERFACE_DESCRIPTOR* NewMsInterface);
79  FREERDP_API MSUSB_INTERFACE_DESCRIPTOR* msusb_msinterface_read(wStream* out);
80  FREERDP_API BOOL msusb_msinterface_write(MSUSB_INTERFACE_DESCRIPTOR* MsInterface, wStream* out);
81  FREERDP_API void msusb_msinterface_free(MSUSB_INTERFACE_DESCRIPTOR* MsInterface);
82 
83  /* MSUSB_CONFIG exported functions */
84  FREERDP_API void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig);
85 
86  WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
87  FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(void);
88 
89  WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
90  FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(wStream* s, UINT32 NumInterfaces);
91  FREERDP_API BOOL msusb_msconfig_write(MSUSB_CONFIG_DESCRIPTOR* MsConfg, wStream* out);
92  FREERDP_API void msusb_msconfig_dump(MSUSB_CONFIG_DESCRIPTOR* MsConfg);
93 
94 #ifdef __cplusplus
95 }
96 #endif
97 
98 #endif /* FREERDP_UTILS_MSCONFIG_H */