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_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(const MSUSB_INTERFACE_DESCRIPTOR* MsInterface,
81 wStream* out);
82 FREERDP_API void msusb_msinterface_free(MSUSB_INTERFACE_DESCRIPTOR* MsInterface);
83
84 /* MSUSB_CONFIG exported functions */
85 FREERDP_API void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig);
86
87 WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
88 FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(void);
89
90 WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
91 FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(wStream* s, UINT32 NumInterfaces);
92 FREERDP_API BOOL msusb_msconfig_write(const MSUSB_CONFIG_DESCRIPTOR* MsConfg, wStream* out);
93 FREERDP_API void msusb_msconfig_dump(const MSUSB_CONFIG_DESCRIPTOR* MsConfg);
94
95#ifdef __cplusplus
96}
97#endif
98
99#endif /* FREERDP_UTILS_MSCONFIG_H */