FreeRDP
Loading...
Searching...
No Matches
smartcard_operations.h
1
23#ifndef FREERDP_CHANNEL_SMARTCARD_OPERATIONS_MAIN_H
24#define FREERDP_CHANNEL_SMARTCARD_OPERATIONS_MAIN_H
25
26#include <winpr/crt.h>
27#include <winpr/stream.h>
28#include <winpr/smartcard.h>
29
30#include <freerdp/api.h>
31#include <freerdp/channels/scard.h>
32
33#ifdef __cplusplus
34extern "C"
35{
36#endif
37 typedef struct
38 {
39 union
40 {
41 Handles_Call handles;
42 Long_Call lng;
43 Context_Call context;
44 ContextAndStringA_Call contextAndStringA;
45 ContextAndStringW_Call contextAndStringW;
46 ContextAndTwoStringA_Call contextAndTwoStringA;
47 ContextAndTwoStringW_Call contextAndTwoStringW;
48 EstablishContext_Call establishContext;
49 ListReaderGroups_Call listReaderGroups;
50 ListReaders_Call listReaders;
51 GetStatusChangeA_Call getStatusChangeA;
52 LocateCardsA_Call locateCardsA;
53 LocateCardsW_Call locateCardsW;
54 LocateCards_ATRMask locateCardsATRMask;
55 LocateCardsByATRA_Call locateCardsByATRA;
56 LocateCardsByATRW_Call locateCardsByATRW;
57 GetStatusChangeW_Call getStatusChangeW;
58 GetReaderIcon_Call getReaderIcon;
59 GetDeviceTypeId_Call getDeviceTypeId;
60 Connect_Common_Call connect;
61 ConnectA_Call connectA;
62 ConnectW_Call connectW;
63 Reconnect_Call reconnect;
64 HCardAndDisposition_Call hCardAndDisposition;
65 State_Call state;
66 Status_Call status;
67 SCardIO_Request scardIO;
68 Transmit_Call transmit;
69 GetTransmitCount_Call getTransmitCount;
70 Control_Call control;
71 GetAttrib_Call getAttrib;
72 SetAttrib_Call setAttrib;
73 ReadCache_Common readCache;
74 ReadCacheA_Call readCacheA;
75 ReadCacheW_Call readCacheW;
76 WriteCache_Common writeCache;
77 WriteCacheA_Call writeCacheA;
78 WriteCacheW_Call writeCacheW;
79 } call;
80 UINT32 ioControlCode;
81 UINT32 completionID;
82 UINT32 deviceID;
83 SCARDCONTEXT hContext;
84 SCARDHANDLE hCard;
85 const char* ioControlCodeName;
86 UINT32 outputBufferLength;
88
89 FREERDP_API LONG smartcard_irp_device_control_decode(wStream* s, UINT32 CompletionId,
90 UINT32 FileId,
91 SMARTCARD_OPERATION* operation);
92 FREERDP_API void smartcard_operation_free(SMARTCARD_OPERATION* op, BOOL allocated);
93
94#ifdef __cplusplus
95}
96#endif
97#endif /* FREERDP_CHANNEL_SMARTCARD_CLIENT_OPERATIONS_H */