FreeRDP
Loading...
Searching...
No Matches
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
27typedef 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
39typedef 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
54typedef 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
66extern "C"
67{
68#endif
69
70 /* MSUSB_CONFIG exported functions */
71 FREERDP_API void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig);
72
73 WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
74 WINPR_ATTR_NODISCARD
75 FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(void);
76
77 WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
78 WINPR_ATTR_NODISCARD
79 FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(wStream* s, UINT32 NumInterfaces);
80 FREERDP_API BOOL msusb_msconfig_write(const MSUSB_CONFIG_DESCRIPTOR* MsConfg, wStream* out);
81 FREERDP_API void msusb_msconfig_dump(const MSUSB_CONFIG_DESCRIPTOR* MsConfg);
82
83 /* MSUSB_PIPE exported functions */
84 FREERDP_API BOOL msusb_mspipes_replace(MSUSB_INTERFACE_DESCRIPTOR* MsInterface,
85 MSUSB_PIPE_DESCRIPTOR** NewMsPipes,
86 UINT32 NewNumberOfPipes);
87
88 /* MSUSB_INTERFACE exported functions */
89 FREERDP_API BOOL msusb_msinterface_replace(MSUSB_CONFIG_DESCRIPTOR* MsConfig,
90 BYTE InterfaceNumber,
91 MSUSB_INTERFACE_DESCRIPTOR* NewMsInterface);
92
93 FREERDP_API void msusb_msinterface_free(MSUSB_INTERFACE_DESCRIPTOR* MsInterface);
94
95 WINPR_ATTR_MALLOC(msusb_msinterface_free, 1)
96 FREERDP_API MSUSB_INTERFACE_DESCRIPTOR* msusb_msinterface_read(wStream* out);
97 FREERDP_API BOOL msusb_msinterface_write(const MSUSB_INTERFACE_DESCRIPTOR* MsInterface,
98 wStream* out);
99
100#ifdef __cplusplus
101}
102#endif
103
104#endif /* FREERDP_UTILS_MSCONFIG_H */