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_LOCAL void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig);
72
73 WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
74 WINPR_ATTR_NODISCARD
75 FREERDP_LOCAL MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(void);
76
77 WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
78 WINPR_ATTR_NODISCARD
79 FREERDP_LOCAL MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(wStream* s, UINT32 NumInterfaces);
80
81 WINPR_ATTR_NODISCARD
82 FREERDP_LOCAL BOOL msusb_msconfig_write(const MSUSB_CONFIG_DESCRIPTOR* MsConfig, wStream* out);
83
84 FREERDP_LOCAL void msusb_msconfig_dump(const MSUSB_CONFIG_DESCRIPTOR* MsConfig);
85
86 /* MSUSB_PIPE exported functions */
87 FREERDP_LOCAL void msusb_mspipes_replace(MSUSB_INTERFACE_DESCRIPTOR* MsInterface,
88 MSUSB_PIPE_DESCRIPTOR** NewMsPipes,
89 UINT32 NewNumberOfPipes);
90
91 /* MSUSB_INTERFACE exported functions */
92 WINPR_ATTR_NODISCARD
93 FREERDP_LOCAL BOOL msusb_msinterface_replace(MSUSB_CONFIG_DESCRIPTOR* MsConfig,
94 BYTE InterfaceNumber,
95 MSUSB_INTERFACE_DESCRIPTOR* NewMsInterface);
96
97 FREERDP_LOCAL void msusb_msinterface_free(MSUSB_INTERFACE_DESCRIPTOR* MsInterface);
98
99 WINPR_ATTR_MALLOC(msusb_msinterface_free, 1)
100 WINPR_ATTR_NODISCARD
101 FREERDP_LOCAL MSUSB_INTERFACE_DESCRIPTOR* msusb_msinterface_read(wStream* s);
102
103 WINPR_ATTR_NODISCARD
104 FREERDP_LOCAL BOOL msusb_msinterface_write(const MSUSB_INTERFACE_DESCRIPTOR* MsInterface,
105 wStream* out);
106
107#ifdef __cplusplus
108}
109#endif
110
111#endif /* FREERDP_UTILS_MSCONFIG_H */