FreeRDP
Loading...
Searching...
No Matches
server/rdpdr.h
1
23#ifndef FREERDP_CHANNEL_RDPDR_SERVER_RDPDR_H
24#define FREERDP_CHANNEL_RDPDR_SERVER_RDPDR_H
25
26#include <freerdp/api.h>
27#include <freerdp/config.h>
28#include <freerdp/types.h>
29#include <freerdp/channels/wtsvc.h>
30#include <freerdp/channels/rdpdr.h>
31#include <freerdp/channels/scard.h>
32#include <freerdp/utils/rdpdr_utils.h>
33
34#ifdef __cplusplus
35extern "C"
36{
37#endif
38
43 typedef struct s_rdpdr_server_context RdpdrServerContext;
44 typedef struct s_rdpdr_server_private RdpdrServerPrivate;
45
47 typedef struct
48 {
49 UINT16 Component;
50 UINT16 PacketId;
52
53#ifndef __MINGW32__
55 typedef struct
56 {
58 UINT32 FileIndex;
66#if defined(WITH_WCHAR_FILE_DIRECTORY_INFORMATION)
67 WCHAR FileName[512];
68#else
69 char FileName[512];
70#endif
72#endif
73
74 typedef UINT (*psRdpdrStart)(RdpdrServerContext* context);
75 typedef UINT (*psRdpdrStop)(RdpdrServerContext* context);
76
77 typedef UINT (*psRdpdrCapablityPDU)(RdpdrServerContext* context,
78 const RDPDR_CAPABILITY_HEADER* header, size_t size,
79 const BYTE* data);
80 typedef UINT (*psRdpdrReceivePDU)(RdpdrServerContext* context, const RDPDR_HEADER* header,
81 UINT error);
82 typedef UINT (*psRdpdrReceiveAnnounceResponse)(RdpdrServerContext* context, UINT16 VersionMajor,
83 UINT16 VersionMinor, UINT32 ClientId);
84 typedef UINT (*psRdpdrSendServerAnnounce)(RdpdrServerContext* context);
85 typedef UINT (*psRdpdrReceiveDeviceAnnounce)(RdpdrServerContext* context,
86 const RdpdrDevice* device);
87 typedef UINT (*psRdpdrReceiveDeviceRemove)(RdpdrServerContext* context, UINT32 deviceId,
88 const RdpdrDevice* device);
89 typedef UINT (*psRdpdrReceiveClientNameRequest)(RdpdrServerContext* context,
90 size_t ComputerNameLen, const char* name);
91
92 typedef UINT (*psRdpdrDriveCreateDirectory)(RdpdrServerContext* context, void* callbackData,
93 UINT32 deviceId, const char* path);
94 typedef UINT (*psRdpdrDriveDeleteDirectory)(RdpdrServerContext* context, void* callbackData,
95 UINT32 deviceId, const char* path);
96 typedef UINT (*psRdpdrDriveQueryDirectory)(RdpdrServerContext* context, void* callbackData,
97 UINT32 deviceId, const char* path);
98 typedef UINT (*psRdpdrDriveOpenFile)(RdpdrServerContext* context, void* callbackData,
99 UINT32 deviceId, const char* path, UINT32 desiredAccess,
100 UINT32 createDisposition);
101 typedef UINT (*psRdpdrDriveReadFile)(RdpdrServerContext* context, void* callbackData,
102 UINT32 deviceId, UINT32 fileId, UINT32 length,
103 UINT32 offset);
104 typedef UINT (*psRdpdrDriveWriteFile)(RdpdrServerContext* context, void* callbackData,
105 UINT32 deviceId, UINT32 fileId, const char* buffer,
106 UINT32 length, UINT32 offset);
107 typedef UINT (*psRdpdrDriveCloseFile)(RdpdrServerContext* context, void* callbackData,
108 UINT32 deviceId, UINT32 fileId);
109 typedef UINT (*psRdpdrDriveDeleteFile)(RdpdrServerContext* context, void* callbackData,
110 UINT32 deviceId, const char* path);
111 typedef UINT (*psRdpdrDriveRenameFile)(RdpdrServerContext* context, void* callbackData,
112 UINT32 deviceId, const char* oldPath,
113 const char* newPath);
114
119 typedef UINT (*psRdpdrDriveReadFileEx)(RdpdrServerContext* context, void* callbackData,
120 UINT32 deviceId, UINT32 fileId, UINT32 length,
121 UINT64 offset);
126 typedef UINT (*psRdpdrDriveWriteFileEx)(RdpdrServerContext* context, void* callbackData,
127 UINT32 deviceId, UINT32 fileId, const char* buffer,
128 UINT32 length, UINT64 offset);
133 typedef UINT (*psRdpdrDriveRenameFileEx)(RdpdrServerContext* context, void* callbackData,
134 UINT32 deviceId, const char* oldPath,
135 const char* newPath, BOOL replaceIfExists);
140 typedef UINT (*psRdpdrDriveSetFileSize)(RdpdrServerContext* context, void* callbackData,
141 UINT32 deviceId, const char* path, UINT64 size);
146 typedef UINT (*psRdpdrDriveSetFileTimes)(RdpdrServerContext* context, void* callbackData,
147 UINT32 deviceId, const char* path,
148 INT64 lastAccessTime, INT64 lastWriteTime);
153 typedef UINT (*psRdpdrDriveQueryVolumeInformation)(RdpdrServerContext* context,
154 void* callbackData, UINT32 deviceId);
155
160 typedef void (*psRdpdrOnDriveSetFileInformationComplete)(RdpdrServerContext* context,
161 void* callbackData, UINT32 ioStatus);
166 typedef void (*psRdpdrOnDriveQueryVolumeInformationComplete)(RdpdrServerContext* context,
167 void* callbackData,
168 UINT32 ioStatus, UINT64 totalBytes,
169 UINT64 availableBytes);
170
171 typedef void (*psRdpdrOnDriveCreateDirectoryComplete)(RdpdrServerContext* context,
172 void* callbackData, UINT32 ioStatus);
173 typedef void (*psRdpdrOnDriveDeleteDirectoryComplete)(RdpdrServerContext* context,
174 void* callbackData, UINT32 ioStatus);
175 typedef void (*psRdpdrOnDriveQueryDirectoryComplete)(RdpdrServerContext* context,
176 void* callbackData, UINT32 ioStatus,
178 typedef void (*psRdpdrOnDriveOpenFileComplete)(RdpdrServerContext* context, void* callbackData,
179 UINT32 ioStatus, UINT32 deviceId, UINT32 fileId);
180 typedef void (*psRdpdrOnDriveReadFileComplete)(RdpdrServerContext* context, void* callbackData,
181 UINT32 ioStatus, const char* buffer,
182 UINT32 length);
183 typedef void (*psRdpdrOnDriveWriteFileComplete)(RdpdrServerContext* context, void* callbackData,
184 UINT32 ioStatus, UINT32 bytesWritten);
185 typedef void (*psRdpdrOnDriveCloseFileComplete)(RdpdrServerContext* context, void* callbackData,
186 UINT32 ioStatus);
187 typedef void (*psRdpdrOnDriveDeleteFileComplete)(RdpdrServerContext* context,
188 void* callbackData, UINT32 ioStatus);
189 typedef void (*psRdpdrOnDriveRenameFileComplete)(RdpdrServerContext* context,
190 void* callbackData, UINT32 ioStatus);
191
192 typedef UINT (*psRdpdrOnDeviceCreate)(RdpdrServerContext* context, const RdpdrDevice* device);
193 typedef UINT (*psRdpdrOnDeviceDelete)(RdpdrServerContext* context, UINT32 deviceId);
194
195 typedef UINT (*psRdpdrSmartcardEstablishContext)(RdpdrServerContext* context,
196 void* callbackData, UINT32 dwScope,
197 UINT32* completionId);
198 typedef UINT (*psRdpdrSmartcardReleaseContext)(RdpdrServerContext* context, void* callbackData,
199 const REDIR_SCARDCONTEXT* hContext,
200 UINT32* completionId);
201 typedef UINT (*psRdpdrSmartcardIsValidContext)(RdpdrServerContext* context, void* callbackData,
202 const REDIR_SCARDCONTEXT* hContext,
203 UINT32* completionId);
204 typedef UINT (*psRdpdrSmartcardListReaderGroups)(RdpdrServerContext* context,
205 void* callbackData,
206 const ListReaderGroups_Call* call,
207 UINT32* completionId);
208 typedef UINT (*psRdpdrSmartcardListReaders)(RdpdrServerContext* context, void* callbackData,
209 const ListReaders_Call* call, UINT32* completionId);
210 typedef UINT (*psRdpdrSmartcardGetStatusChangeA)(RdpdrServerContext* context,
211 void* callbackData,
212 const GetStatusChangeA_Call* call,
213 UINT32* completionId);
214 typedef UINT (*psRdpdrSmartcardGetStatusChangeW)(RdpdrServerContext* context,
215 void* callbackData,
216 const GetStatusChangeW_Call* call,
217 UINT32* completionId);
218 typedef UINT (*psRdpdrSmartcardCancel)(RdpdrServerContext* context, void* callbackData,
219 const REDIR_SCARDCONTEXT* hContext,
220 UINT32* completionId);
221 typedef UINT (*psRdpdrSmartcardConnectA)(RdpdrServerContext* context, void* callbackData,
222 const ConnectA_Call* call, UINT32* completionId);
223 typedef UINT (*psRdpdrSmartcardConnectW)(RdpdrServerContext* context, void* callbackData,
224 const ConnectW_Call* call, UINT32* completionId);
225 typedef UINT (*psRdpdrSmartcardReconnect)(RdpdrServerContext* context, void* callbackData,
226 const Reconnect_Call* call, UINT32* completionId);
227 typedef UINT (*psRdpdrSmartcardDisconnect)(RdpdrServerContext* context, void* callbackData,
228 const HCardAndDisposition_Call* call,
229 UINT32* completionId);
230 typedef UINT (*psRdpdrSmartcardBeginTransaction)(RdpdrServerContext* context,
231 void* callbackData,
232 const HCardAndDisposition_Call* call,
233 UINT32* completionId);
234 typedef UINT (*psRdpdrSmartcardEndTransaction)(RdpdrServerContext* context, void* callbackData,
235 const HCardAndDisposition_Call* call,
236 UINT32* completionId);
237 typedef UINT (*psRdpdrSmartcardStatus)(RdpdrServerContext* context, void* callbackData,
238 const Status_Call* call, UINT32* completionId);
239 typedef UINT (*psRdpdrSmartcardTransmit)(RdpdrServerContext* context, void* callbackData,
240 const Transmit_Call* call, UINT32* completionId);
241 typedef UINT (*psRdpdrSmartcardControl)(RdpdrServerContext* context, void* callbackData,
242 const Control_Call* call, UINT32* completionId);
243 typedef UINT (*psRdpdrSmartcardGetAttrib)(RdpdrServerContext* context, void* callbackData,
244 const GetAttrib_Call* call, UINT32* completionId);
245 typedef UINT (*psRdpdrSmartcardSetAttrib)(RdpdrServerContext* context, void* callbackData,
246 const SetAttrib_Call* call, UINT32* completionId);
247
248 typedef void (*psRdpdrOnSmartcardEstablishContextComplete)(RdpdrServerContext* context,
249 void* callbackData, UINT32 ioStatus,
250 LONG returnCode,
251 const EstablishContext_Return* ret);
252 typedef void (*psRdpdrOnSmartcardReleaseContextComplete)(RdpdrServerContext* context,
253 void* callbackData, UINT32 ioStatus,
254 LONG returnCode);
255 typedef void (*psRdpdrOnSmartcardIsValidContextComplete)(RdpdrServerContext* context,
256 void* callbackData, UINT32 ioStatus,
257 LONG returnCode);
258 typedef void (*psRdpdrOnSmartcardListReaderGroupsComplete)(RdpdrServerContext* context,
259 void* callbackData, UINT32 ioStatus,
260 LONG returnCode,
261 const ListReaderGroups_Return* ret);
262 typedef void (*psRdpdrOnSmartcardListReadersComplete)(RdpdrServerContext* context,
263 void* callbackData, UINT32 ioStatus,
264 LONG returnCode,
265 const ListReaders_Return* ret);
266 typedef void (*psRdpdrOnSmartcardGetStatusChangeComplete)(RdpdrServerContext* context,
267 void* callbackData, UINT32 ioStatus,
268 LONG returnCode,
269 const GetStatusChange_Return* ret);
270 typedef void (*psRdpdrOnSmartcardCancelComplete)(RdpdrServerContext* context,
271 void* callbackData, UINT32 ioStatus,
272 LONG returnCode);
273 typedef void (*psRdpdrOnSmartcardConnectComplete)(RdpdrServerContext* context,
274 void* callbackData, UINT32 ioStatus,
275 LONG returnCode, const Connect_Return* ret);
276 typedef void (*psRdpdrOnSmartcardReconnectComplete)(RdpdrServerContext* context,
277 void* callbackData, UINT32 ioStatus,
278 LONG returnCode,
279 const Reconnect_Return* ret);
280 typedef void (*psRdpdrOnSmartcardDisconnectComplete)(RdpdrServerContext* context,
281 void* callbackData, UINT32 ioStatus,
282 LONG returnCode);
283 typedef void (*psRdpdrOnSmartcardBeginTransactionComplete)(RdpdrServerContext* context,
284 void* callbackData, UINT32 ioStatus,
285 LONG returnCode);
286 typedef void (*psRdpdrOnSmartcardEndTransactionComplete)(RdpdrServerContext* context,
287 void* callbackData, UINT32 ioStatus,
288 LONG returnCode);
289 typedef void (*psRdpdrOnSmartcardStatusComplete)(RdpdrServerContext* context,
290 void* callbackData, UINT32 ioStatus,
291 LONG returnCode, const Status_Return* ret);
292 typedef void (*psRdpdrOnSmartcardTransmitComplete)(RdpdrServerContext* context,
293 void* callbackData, UINT32 ioStatus,
294 LONG returnCode, const Transmit_Return* ret);
295 typedef void (*psRdpdrOnSmartcardControlComplete)(RdpdrServerContext* context,
296 void* callbackData, UINT32 ioStatus,
297 LONG returnCode, const Control_Return* ret);
298 typedef void (*psRdpdrOnSmartcardGetAttribComplete)(RdpdrServerContext* context,
299 void* callbackData, UINT32 ioStatus,
300 LONG returnCode,
301 const GetAttrib_Return* ret);
302 typedef void (*psRdpdrOnSmartcardSetAttribComplete)(RdpdrServerContext* context,
303 void* callbackData, UINT32 ioStatus,
304 LONG returnCode);
305
307 {
308 HANDLE vcm;
310 WINPR_ATTR_NODISCARD psRdpdrStart Start;
311 psRdpdrStop Stop;
313 RdpdrServerPrivate* priv;
315 /* Server self-defined pointer. */
316 void* data;
317
325 UINT16 supported;
326
327 /*** RDPDR message intercept callbacks */
328 WINPR_ATTR_NODISCARD psRdpdrCapablityPDU
330 WINPR_ATTR_NODISCARD psRdpdrCapablityPDU
332 WINPR_ATTR_NODISCARD psRdpdrReceivePDU
334 WINPR_ATTR_NODISCARD psRdpdrSendServerAnnounce
336 WINPR_ATTR_NODISCARD psRdpdrReceiveAnnounceResponse
338 WINPR_ATTR_NODISCARD psRdpdrReceiveClientNameRequest
340 WINPR_ATTR_NODISCARD psRdpdrReceiveDeviceAnnounce
343 WINPR_ATTR_NODISCARD psRdpdrReceiveDeviceRemove
347 /*** Drive APIs called by the server. ***/
348 WINPR_ATTR_NODISCARD psRdpdrDriveCreateDirectory
350 WINPR_ATTR_NODISCARD psRdpdrDriveDeleteDirectory
352 WINPR_ATTR_NODISCARD psRdpdrDriveQueryDirectory DriveQueryDirectory;
353 WINPR_ATTR_NODISCARD psRdpdrDriveOpenFile DriveOpenFile;
354 WINPR_ATTR_NODISCARD psRdpdrDriveReadFile DriveReadFile;
355 WINPR_ATTR_NODISCARD psRdpdrDriveWriteFile DriveWriteFile;
356 WINPR_ATTR_NODISCARD psRdpdrDriveCloseFile DriveCloseFile;
357 WINPR_ATTR_NODISCARD psRdpdrDriveDeleteFile DriveDeleteFile;
358 WINPR_ATTR_NODISCARD psRdpdrDriveRenameFile DriveRenameFile;
360 /*** Drive callbacks registered by the server. ***/
361 WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate
364 WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete
367 psRdpdrOnDriveCreateDirectoryComplete
369 psRdpdrOnDriveDeleteDirectoryComplete
371 psRdpdrOnDriveQueryDirectoryComplete
373 psRdpdrOnDriveOpenFileComplete
375 psRdpdrOnDriveReadFileComplete
377 psRdpdrOnDriveWriteFileComplete
379 psRdpdrOnDriveCloseFileComplete
381 psRdpdrOnDriveDeleteFileComplete
383 psRdpdrOnDriveRenameFileComplete
386 /*** Serial Port callbacks registered by the server. ***/
387 WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate
390 WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete
394 /*** Parallel Port callbacks registered by the server. ***/
395 WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate
398 WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete
402 /*** Printer callbacks registered by the server. ***/
403 WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate OnPrinterCreate;
405 WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete OnPrinterDelete;
408 /*** Smartcard callbacks registered by the server. ***/
409 WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate
412 WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete
416 rdpContext* rdpcontext;
418 /*** New Smartcard APIs called by the server.
419 * @since version 3.28.0
420 */
421 WINPR_ATTR_NODISCARD psRdpdrSmartcardEstablishContext
425 WINPR_ATTR_NODISCARD psRdpdrSmartcardReleaseContext
429 WINPR_ATTR_NODISCARD psRdpdrSmartcardIsValidContext
433 WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaderGroups
437 WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaderGroups
441 WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaders
445 WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaders
449 WINPR_ATTR_NODISCARD psRdpdrSmartcardGetStatusChangeA
453 WINPR_ATTR_NODISCARD psRdpdrSmartcardGetStatusChangeW
457 WINPR_ATTR_NODISCARD psRdpdrSmartcardCancel
461 WINPR_ATTR_NODISCARD psRdpdrSmartcardConnectA
465 WINPR_ATTR_NODISCARD psRdpdrSmartcardConnectW
469 WINPR_ATTR_NODISCARD psRdpdrSmartcardReconnect
473 WINPR_ATTR_NODISCARD psRdpdrSmartcardDisconnect
477 WINPR_ATTR_NODISCARD psRdpdrSmartcardBeginTransaction
481 WINPR_ATTR_NODISCARD psRdpdrSmartcardEndTransaction
485 WINPR_ATTR_NODISCARD psRdpdrSmartcardStatus
489 WINPR_ATTR_NODISCARD psRdpdrSmartcardStatus
493 WINPR_ATTR_NODISCARD psRdpdrSmartcardTransmit
497 WINPR_ATTR_NODISCARD psRdpdrSmartcardControl
501 WINPR_ATTR_NODISCARD psRdpdrSmartcardGetAttrib
505 WINPR_ATTR_NODISCARD psRdpdrSmartcardSetAttrib
510 /*** New Smartcard callbacks registered by the server. ***/
511 psRdpdrOnSmartcardEstablishContextComplete
517 psRdpdrOnSmartcardReleaseContextComplete
522 psRdpdrOnSmartcardIsValidContextComplete
527 psRdpdrOnSmartcardListReaderGroupsComplete
533 psRdpdrOnSmartcardListReadersComplete
538 psRdpdrOnSmartcardGetStatusChangeComplete
543 psRdpdrOnSmartcardCancelComplete OnSmartcardCancelComplete;
547 psRdpdrOnSmartcardConnectComplete OnSmartcardConnectComplete;
551 psRdpdrOnSmartcardReconnectComplete OnSmartcardReconnectComplete;
555 psRdpdrOnSmartcardDisconnectComplete
560 psRdpdrOnSmartcardBeginTransactionComplete
566 psRdpdrOnSmartcardEndTransactionComplete
571 psRdpdrOnSmartcardStatusComplete OnSmartcardStatusComplete;
575 psRdpdrOnSmartcardTransmitComplete OnSmartcardTransmitComplete;
579 psRdpdrOnSmartcardControlComplete OnSmartcardControlComplete;
583 psRdpdrOnSmartcardGetAttribComplete OnSmartcardGetAttribComplete;
587 psRdpdrOnSmartcardSetAttribComplete OnSmartcardSetAttribComplete;
592 /*** New Drive APIs called by the server.
593 * @since version 3.33.0
594 */
595 WINPR_ATTR_NODISCARD psRdpdrDriveReadFileEx
600 WINPR_ATTR_NODISCARD psRdpdrDriveWriteFileEx
605 WINPR_ATTR_NODISCARD psRdpdrDriveRenameFileEx
610 WINPR_ATTR_NODISCARD psRdpdrDriveSetFileSize
615 WINPR_ATTR_NODISCARD psRdpdrDriveSetFileTimes
621 WINPR_ATTR_NODISCARD psRdpdrDriveQueryVolumeInformation
627 psRdpdrOnDriveSetFileInformationComplete
632 psRdpdrOnDriveQueryVolumeInformationComplete
637 };
638
643 FREERDP_API void rdpdr_server_context_free(RdpdrServerContext* context);
644
650 WINPR_ATTR_MALLOC(rdpdr_server_context_free, 1)
651 FREERDP_API RdpdrServerContext* rdpdr_server_context_new(HANDLE vcm);
652
659 FREERDP_API void rdpdr_server_discard_request(RdpdrServerContext* context, UINT32 completionId);
660#ifdef __cplusplus
661}
662#endif
663
664#endif /* FREERDP_CHANNEL_RDPDR_SERVER_RDPDR_H */
UINT16 PacketId
UINT16 Component
WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate OnPrinterCreate
WINPR_ATTR_NODISCARD psRdpdrCapablityPDU ReceiveCaps
psRdpdrOnDriveDeleteFileComplete OnDriveDeleteFileComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardEstablishContext SmartcardEstablishContext
psRdpdrOnSmartcardListReadersComplete OnSmartcardListReadersComplete
psRdpdrOnSmartcardBeginTransactionComplete OnSmartcardBeginTransactionComplete
psRdpdrOnSmartcardDisconnectComplete OnSmartcardDisconnectComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardTransmit SmartcardTransmit
WINPR_ATTR_NODISCARD psRdpdrDriveDeleteDirectory DriveDeleteDirectory
WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaders SmartcardListReadersA
WINPR_ATTR_NODISCARD psRdpdrCapablityPDU SendCaps
WINPR_ATTR_NODISCARD psRdpdrDriveQueryDirectory DriveQueryDirectory
WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate OnSerialPortCreate
WINPR_ATTR_NODISCARD psRdpdrSmartcardIsValidContext SmartcardIsValidContext
WINPR_ATTR_NODISCARD psRdpdrStart Start
WINPR_ATTR_NODISCARD psRdpdrDriveReadFileEx DriveReadFileEx
WINPR_ATTR_NODISCARD psRdpdrDriveCloseFile DriveCloseFile
psRdpdrOnDriveOpenFileComplete OnDriveOpenFileComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardGetStatusChangeW SmartcardGetStatusChangeW
psRdpdrOnDriveReadFileComplete OnDriveReadFileComplete
psRdpdrOnDriveQueryVolumeInformationComplete OnDriveQueryVolumeInformationComplete
psRdpdrOnDriveDeleteDirectoryComplete OnDriveDeleteDirectoryComplete
psRdpdrOnSmartcardConnectComplete OnSmartcardConnectComplete
WINPR_ATTR_NODISCARD psRdpdrDriveSetFileSize DriveSetFileSize
WINPR_ATTR_NODISCARD psRdpdrSmartcardGetStatusChangeA SmartcardGetStatusChangeA
psRdpdrOnSmartcardEstablishContextComplete OnSmartcardEstablishContextComplete
WINPR_ATTR_NODISCARD psRdpdrDriveSetFileTimes DriveSetFileTimes
WINPR_ATTR_NODISCARD psRdpdrReceiveClientNameRequest ReceiveClientNameRequest
psRdpdrOnSmartcardIsValidContextComplete OnSmartcardIsValidContextComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardReleaseContext SmartcardReleaseContext
psRdpdrOnSmartcardReleaseContextComplete OnSmartcardReleaseContextComplete
WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete OnDriveDelete
WINPR_ATTR_NODISCARD psRdpdrDriveWriteFileEx DriveWriteFileEx
WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete OnSerialPortDelete
WINPR_ATTR_NODISCARD psRdpdrReceiveDeviceRemove ReceiveDeviceRemove
WINPR_ATTR_NODISCARD psRdpdrSmartcardReconnect SmartcardReconnect
WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaders SmartcardListReadersW
WINPR_ATTR_NODISCARD psRdpdrSmartcardStatus SmartcardStatusA
psRdpdrOnDriveQueryDirectoryComplete OnDriveQueryDirectoryComplete
psRdpdrOnSmartcardCancelComplete OnSmartcardCancelComplete
WINPR_ATTR_NODISCARD psRdpdrDriveQueryVolumeInformation DriveQueryVolumeInformation
WINPR_ATTR_NODISCARD psRdpdrReceiveAnnounceResponse ReceiveAnnounceResponse
WINPR_ATTR_NODISCARD psRdpdrSmartcardConnectA SmartcardConnectA
WINPR_ATTR_NODISCARD psRdpdrSmartcardGetAttrib SmartcardGetAttrib
WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaderGroups SmartcardListReaderGroupsW
WINPR_ATTR_NODISCARD psRdpdrSmartcardControl SmartcardControl
WINPR_ATTR_NODISCARD psRdpdrSmartcardDisconnect SmartcardDisconnect
psRdpdrOnSmartcardEndTransactionComplete OnSmartcardEndTransactionComplete
WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate OnSmartcardCreate
psRdpdrOnSmartcardStatusComplete OnSmartcardStatusComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardCancel SmartcardCancel
WINPR_ATTR_NODISCARD psRdpdrReceiveDeviceAnnounce ReceiveDeviceAnnounce
WINPR_ATTR_NODISCARD psRdpdrSmartcardConnectW SmartcardConnectW
psRdpdrOnDriveWriteFileComplete OnDriveWriteFileComplete
psRdpdrOnSmartcardReconnectComplete OnSmartcardReconnectComplete
psRdpdrOnSmartcardControlComplete OnSmartcardControlComplete
WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete OnParallelPortDelete
WINPR_ATTR_NODISCARD psRdpdrSmartcardEndTransaction SmartcardEndTransaction
WINPR_ATTR_NODISCARD psRdpdrDriveRenameFileEx DriveRenameFileEx
psRdpdrOnSmartcardListReaderGroupsComplete OnSmartcardListReaderGroupsComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardListReaderGroups SmartcardListReaderGroupsA
WINPR_ATTR_NODISCARD psRdpdrSmartcardStatus SmartcardStatusW
WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete OnSmartcardDelete
WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate OnDriveCreate
WINPR_ATTR_NODISCARD psRdpdrReceivePDU ReceivePDU
WINPR_ATTR_NODISCARD psRdpdrDriveReadFile DriveReadFile
RdpdrServerPrivate * priv
psRdpdrOnSmartcardGetAttribComplete OnSmartcardGetAttribComplete
WINPR_ATTR_NODISCARD psRdpdrDriveOpenFile DriveOpenFile
psRdpdrOnDriveSetFileInformationComplete OnDriveSetFileInformationComplete
psRdpdrOnDriveCreateDirectoryComplete OnDriveCreateDirectoryComplete
WINPR_ATTR_NODISCARD psRdpdrDriveRenameFile DriveRenameFile
WINPR_ATTR_NODISCARD psRdpdrDriveCreateDirectory DriveCreateDirectory
WINPR_ATTR_NODISCARD psRdpdrDriveDeleteFile DriveDeleteFile
psRdpdrOnSmartcardSetAttribComplete OnSmartcardSetAttribComplete
psRdpdrOnDriveCloseFileComplete OnDriveCloseFileComplete
WINPR_ATTR_NODISCARD psRdpdrOnDeviceCreate OnParallelPortCreate
WINPR_ATTR_NODISCARD psRdpdrSmartcardSetAttrib SmartcardSetAttrib
psRdpdrOnSmartcardTransmitComplete OnSmartcardTransmitComplete
psRdpdrOnDriveRenameFileComplete OnDriveRenameFileComplete
WINPR_ATTR_NODISCARD psRdpdrSmartcardBeginTransaction SmartcardBeginTransaction
WINPR_ATTR_NODISCARD psRdpdrOnDeviceDelete OnPrinterDelete
WINPR_ATTR_NODISCARD psRdpdrDriveWriteFile DriveWriteFile
psRdpdrOnSmartcardGetStatusChangeComplete OnSmartcardGetStatusChangeComplete
WINPR_ATTR_NODISCARD psRdpdrSendServerAnnounce SendServerAnnounce