FreeRDP
Loading...
Searching...
No Matches
smartcard_emulate.h
1
21#ifndef WINPR_SMARTCARD_EMULATE_PRIVATE_H
22#define WINPR_SMARTCARD_EMULATE_PRIVATE_H
23
24#include <winpr/platform.h>
25#include <winpr/smartcard.h>
26
27#include <freerdp/api.h>
28#include <freerdp/settings.h>
29
30#ifdef __cplusplus
31extern "C"
32{
33#endif
34
35 typedef struct smartcard_emulation_context SmartcardEmulationContext;
36
37 FREERDP_API void Emulate_Free(SmartcardEmulationContext* context);
38
39 WINPR_ATTR_MALLOC(Emulate_Free, 1)
40 WINPR_ATTR_NODISCARD
41 FREERDP_API SmartcardEmulationContext* Emulate_New(const rdpSettings* settings);
42
43 FREERDP_API BOOL Emulate_IsConfigured(SmartcardEmulationContext* context);
44
45 FREERDP_API LONG WINAPI Emulate_SCardEstablishContext(SmartcardEmulationContext* smartcard,
46 DWORD dwScope, LPCVOID pvReserved1,
47 LPCVOID pvReserved2,
48 LPSCARDCONTEXT phContext);
49
50 FREERDP_API LONG WINAPI Emulate_SCardReleaseContext(SmartcardEmulationContext* smartcard,
51 SCARDCONTEXT hContext);
52
53 FREERDP_API LONG WINAPI Emulate_SCardIsValidContext(SmartcardEmulationContext* smartcard,
54 SCARDCONTEXT hContext);
55
56 FREERDP_API LONG WINAPI Emulate_SCardListReaderGroupsA(SmartcardEmulationContext* smartcard,
57 SCARDCONTEXT hContext, LPSTR mszGroups,
58 LPDWORD pcchGroups);
59
60 FREERDP_API LONG WINAPI Emulate_SCardListReaderGroupsW(SmartcardEmulationContext* smartcard,
61 SCARDCONTEXT hContext, LPWSTR mszGroups,
62 LPDWORD pcchGroups);
63
64 FREERDP_API LONG WINAPI Emulate_SCardListReadersA(SmartcardEmulationContext* smartcard,
65 SCARDCONTEXT hContext, LPCSTR mszGroups,
66 LPSTR mszReaders, LPDWORD pcchReaders);
67
68 FREERDP_API LONG WINAPI Emulate_SCardListReadersW(SmartcardEmulationContext* smartcard,
69 SCARDCONTEXT hContext, LPCWSTR mszGroups,
70 LPWSTR mszReaders, LPDWORD pcchReaders);
71
72 FREERDP_API LONG WINAPI Emulate_SCardListCardsA(SmartcardEmulationContext* smartcard,
73 SCARDCONTEXT hContext, LPCBYTE pbAtr,
74 LPCGUID rgquidInterfaces,
75 DWORD cguidInterfaceCount, CHAR* mszCards,
76 LPDWORD pcchCards);
77
78 FREERDP_API LONG WINAPI Emulate_SCardListCardsW(SmartcardEmulationContext* smartcard,
79 SCARDCONTEXT hContext, LPCBYTE pbAtr,
80 LPCGUID rgquidInterfaces,
81 DWORD cguidInterfaceCount, WCHAR* mszCards,
82 LPDWORD pcchCards);
83
84 FREERDP_API LONG WINAPI Emulate_SCardListInterfacesA(SmartcardEmulationContext* smartcard,
85 SCARDCONTEXT hContext, LPCSTR szCard,
86 LPGUID pguidInterfaces,
87 LPDWORD pcguidInterfaces);
88
89 FREERDP_API LONG WINAPI Emulate_SCardListInterfacesW(SmartcardEmulationContext* smartcard,
90 SCARDCONTEXT hContext, LPCWSTR szCard,
91 LPGUID pguidInterfaces,
92 LPDWORD pcguidInterfaces);
93
94 FREERDP_API LONG WINAPI Emulate_SCardGetProviderIdA(SmartcardEmulationContext* smartcard,
95 SCARDCONTEXT hContext, LPCSTR szCard,
96 LPGUID pguidProviderId);
97
98 FREERDP_API LONG WINAPI Emulate_SCardGetProviderIdW(SmartcardEmulationContext* smartcard,
99 SCARDCONTEXT hContext, LPCWSTR szCard,
100 LPGUID pguidProviderId);
101
102 FREERDP_API LONG WINAPI Emulate_SCardGetCardTypeProviderNameA(
103 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCSTR szCardName,
104 DWORD dwProviderId, CHAR* szProvider, LPDWORD pcchProvider);
105
106 FREERDP_API LONG WINAPI Emulate_SCardGetCardTypeProviderNameW(
107 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCWSTR szCardName,
108 DWORD dwProviderId, WCHAR* szProvider, LPDWORD pcchProvider);
109
110 FREERDP_API LONG WINAPI Emulate_SCardIntroduceReaderGroupA(SmartcardEmulationContext* smartcard,
111 SCARDCONTEXT hContext,
112 LPCSTR szGroupName);
113
114 FREERDP_API LONG WINAPI Emulate_SCardIntroduceReaderGroupW(SmartcardEmulationContext* smartcard,
115 SCARDCONTEXT hContext,
116 LPCWSTR szGroupName);
117
118 FREERDP_API LONG WINAPI Emulate_SCardForgetReaderGroupA(SmartcardEmulationContext* smartcard,
119 SCARDCONTEXT hContext,
120 LPCSTR szGroupName);
121
122 FREERDP_API LONG WINAPI Emulate_SCardForgetReaderGroupW(SmartcardEmulationContext* smartcard,
123 SCARDCONTEXT hContext,
124 LPCWSTR szGroupName);
125
126 FREERDP_API LONG WINAPI Emulate_SCardIntroduceReaderA(SmartcardEmulationContext* smartcard,
127 SCARDCONTEXT hContext,
128 LPCSTR szReaderName, LPCSTR szDeviceName);
129
130 FREERDP_API LONG WINAPI Emulate_SCardIntroduceReaderW(SmartcardEmulationContext* smartcard,
131 SCARDCONTEXT hContext,
132 LPCWSTR szReaderName,
133 LPCWSTR szDeviceName);
134
135 FREERDP_API LONG WINAPI Emulate_SCardForgetReaderA(SmartcardEmulationContext* smartcard,
136 SCARDCONTEXT hContext, LPCSTR szReaderName);
137
138 FREERDP_API LONG WINAPI Emulate_SCardForgetReaderW(SmartcardEmulationContext* smartcard,
139 SCARDCONTEXT hContext, LPCWSTR szReaderName);
140
141 FREERDP_API LONG WINAPI Emulate_SCardAddReaderToGroupA(SmartcardEmulationContext* smartcard,
142 SCARDCONTEXT hContext,
143 LPCSTR szReaderName, LPCSTR szGroupName);
144
145 FREERDP_API LONG WINAPI Emulate_SCardAddReaderToGroupW(SmartcardEmulationContext* smartcard,
146 SCARDCONTEXT hContext,
147 LPCWSTR szReaderName,
148 LPCWSTR szGroupName);
149
150 FREERDP_API LONG WINAPI
151 Emulate_SCardRemoveReaderFromGroupA(SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext,
152 LPCSTR szReaderName, LPCSTR szGroupName);
153
154 FREERDP_API LONG WINAPI
155 Emulate_SCardRemoveReaderFromGroupW(SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext,
156 LPCWSTR szReaderName, LPCWSTR szGroupName);
157
158 FREERDP_API LONG WINAPI Emulate_SCardIntroduceCardTypeA(
159 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCSTR szCardName,
160 LPCGUID pguidPrimaryProvider, LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
161 LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen);
162
163 FREERDP_API LONG WINAPI Emulate_SCardIntroduceCardTypeW(
164 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCWSTR szCardName,
165 LPCGUID pguidPrimaryProvider, LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
166 LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen);
167
168 FREERDP_API LONG WINAPI Emulate_SCardSetCardTypeProviderNameA(
169 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCSTR szCardName,
170 DWORD dwProviderId, LPCSTR szProvider);
171
172 FREERDP_API LONG WINAPI Emulate_SCardSetCardTypeProviderNameW(
173 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCWSTR szCardName,
174 DWORD dwProviderId, LPCWSTR szProvider);
175
176 FREERDP_API LONG WINAPI Emulate_SCardForgetCardTypeA(SmartcardEmulationContext* smartcard,
177 SCARDCONTEXT hContext, LPCSTR szCardName);
178
179 FREERDP_API LONG WINAPI Emulate_SCardForgetCardTypeW(SmartcardEmulationContext* smartcard,
180 SCARDCONTEXT hContext, LPCWSTR szCardName);
181
182 FREERDP_API LONG WINAPI Emulate_SCardFreeMemory(SmartcardEmulationContext* smartcard,
183 SCARDCONTEXT hContext, LPVOID pvMem);
184
185 FREERDP_API HANDLE WINAPI Emulate_SCardAccessStartedEvent(SmartcardEmulationContext* smartcard);
186
187 FREERDP_API void WINAPI Emulate_SCardReleaseStartedEvent(SmartcardEmulationContext* smartcard);
188
189 FREERDP_API LONG WINAPI Emulate_SCardLocateCardsA(SmartcardEmulationContext* smartcard,
190 SCARDCONTEXT hContext, LPCSTR mszCards,
191 LPSCARD_READERSTATEA rgReaderStates,
192 DWORD cReaders);
193
194 FREERDP_API LONG WINAPI Emulate_SCardLocateCardsW(SmartcardEmulationContext* smartcard,
195 SCARDCONTEXT hContext, LPCWSTR mszCards,
196 LPSCARD_READERSTATEW rgReaderStates,
197 DWORD cReaders);
198
199 FREERDP_API LONG WINAPI Emulate_SCardLocateCardsByATRA(SmartcardEmulationContext* smartcard,
200 SCARDCONTEXT hContext,
201 LPSCARD_ATRMASK rgAtrMasks, DWORD cAtrs,
202 LPSCARD_READERSTATEA rgReaderStates,
203 DWORD cReaders);
204
205 FREERDP_API LONG WINAPI Emulate_SCardLocateCardsByATRW(SmartcardEmulationContext* smartcard,
206 SCARDCONTEXT hContext,
207 LPSCARD_ATRMASK rgAtrMasks, DWORD cAtrs,
208 LPSCARD_READERSTATEW rgReaderStates,
209 DWORD cReaders);
210
211 FREERDP_API LONG WINAPI Emulate_SCardGetStatusChangeA(SmartcardEmulationContext* smartcard,
212 SCARDCONTEXT hContext, DWORD dwTimeout,
213 LPSCARD_READERSTATEA rgReaderStates,
214 DWORD cReaders);
215
216 FREERDP_API LONG WINAPI Emulate_SCardGetStatusChangeW(SmartcardEmulationContext* smartcard,
217 SCARDCONTEXT hContext, DWORD dwTimeout,
218 LPSCARD_READERSTATEW rgReaderStates,
219 DWORD cReaders);
220
221 FREERDP_API LONG WINAPI Emulate_SCardCancel(SmartcardEmulationContext* smartcard,
222 SCARDCONTEXT hContext);
223
224 FREERDP_API LONG WINAPI Emulate_SCardConnectA(SmartcardEmulationContext* smartcard,
225 SCARDCONTEXT hContext, LPCSTR szReader,
226 DWORD dwShareMode, DWORD dwPreferredProtocols,
227 LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
228
229 FREERDP_API LONG WINAPI Emulate_SCardConnectW(SmartcardEmulationContext* smartcard,
230 SCARDCONTEXT hContext, LPCWSTR szReader,
231 DWORD dwShareMode, DWORD dwPreferredProtocols,
232 LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
233
234 FREERDP_API LONG WINAPI Emulate_SCardReconnect(SmartcardEmulationContext* smartcard,
235 SCARDHANDLE hCard, DWORD dwShareMode,
236 DWORD dwPreferredProtocols,
237 DWORD dwInitialization,
238 LPDWORD pdwActiveProtocol);
239
240 FREERDP_API LONG WINAPI Emulate_SCardDisconnect(SmartcardEmulationContext* smartcard,
241 SCARDHANDLE hCard, DWORD dwDisposition);
242
243 FREERDP_API LONG WINAPI Emulate_SCardBeginTransaction(SmartcardEmulationContext* smartcard,
244 SCARDHANDLE hCard);
245
246 FREERDP_API LONG WINAPI Emulate_SCardEndTransaction(SmartcardEmulationContext* smartcard,
247 SCARDHANDLE hCard, DWORD dwDisposition);
248
249 FREERDP_API LONG WINAPI Emulate_SCardCancelTransaction(SmartcardEmulationContext* smartcard,
250 SCARDHANDLE hCard);
251
252 FREERDP_API LONG WINAPI Emulate_SCardState(SmartcardEmulationContext* smartcard,
253 SCARDHANDLE hCard, LPDWORD pdwState,
254 LPDWORD pdwProtocol, LPBYTE pbAtr,
255 LPDWORD pcbAtrLen);
256
257 FREERDP_API LONG WINAPI Emulate_SCardStatusA(SmartcardEmulationContext* smartcard,
258 SCARDHANDLE hCard, LPSTR mszReaderNames,
259 LPDWORD pcchReaderLen, LPDWORD pdwState,
260 LPDWORD pdwProtocol, LPBYTE pbAtr,
261 LPDWORD pcbAtrLen);
262
263 FREERDP_API LONG WINAPI Emulate_SCardStatusW(SmartcardEmulationContext* smartcard,
264 SCARDHANDLE hCard, LPWSTR mszReaderNames,
265 LPDWORD pcchReaderLen, LPDWORD pdwState,
266 LPDWORD pdwProtocol, LPBYTE pbAtr,
267 LPDWORD pcbAtrLen);
268
269 FREERDP_API LONG WINAPI Emulate_SCardTransmit(SmartcardEmulationContext* smartcard,
270 SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,
271 LPCBYTE pbSendBuffer, DWORD cbSendLength,
272 LPSCARD_IO_REQUEST pioRecvPci,
273 LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);
274
275 FREERDP_API LONG WINAPI Emulate_SCardGetTransmitCount(SmartcardEmulationContext* smartcard,
276 SCARDHANDLE hCard,
277 LPDWORD pcTransmitCount);
278
279 FREERDP_API LONG WINAPI Emulate_SCardControl(SmartcardEmulationContext* smartcard,
280 SCARDHANDLE hCard, DWORD dwControlCode,
281 LPCVOID lpInBuffer, DWORD cbInBufferSize,
282 LPVOID lpOutBuffer, DWORD cbOutBufferSize,
283 LPDWORD lpBytesReturned);
284
285 FREERDP_API LONG WINAPI Emulate_SCardGetAttrib(SmartcardEmulationContext* smartcard,
286 SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
287 LPDWORD pcbAttrLen);
288
289 FREERDP_API LONG WINAPI Emulate_SCardSetAttrib(SmartcardEmulationContext* smartcard,
290 SCARDHANDLE hCard, DWORD dwAttrId,
291 LPCBYTE pbAttr, DWORD cbAttrLen);
292
293 FREERDP_API LONG WINAPI Emulate_SCardUIDlgSelectCardA(SmartcardEmulationContext* smartcard,
294 LPOPENCARDNAMEA_EX pDlgStruc);
295
296 FREERDP_API LONG WINAPI Emulate_SCardUIDlgSelectCardW(SmartcardEmulationContext* smartcard,
297 LPOPENCARDNAMEW_EX pDlgStruc);
298
299 FREERDP_API LONG WINAPI Emulate_GetOpenCardNameA(SmartcardEmulationContext* smartcard,
300 LPOPENCARDNAMEA pDlgStruc);
301
302 FREERDP_API LONG WINAPI Emulate_GetOpenCardNameW(SmartcardEmulationContext* smartcard,
303 LPOPENCARDNAMEW pDlgStruc);
304
305 FREERDP_API LONG WINAPI Emulate_SCardDlgExtendedError(SmartcardEmulationContext* smartcard);
306
307 FREERDP_API LONG WINAPI Emulate_SCardReadCacheA(SmartcardEmulationContext* smartcard,
308 SCARDCONTEXT hContext, UUID* CardIdentifier,
309 DWORD FreshnessCounter, LPSTR LookupName,
310 PBYTE Data, DWORD* DataLen);
311
312 FREERDP_API LONG WINAPI Emulate_SCardReadCacheW(SmartcardEmulationContext* smartcard,
313 SCARDCONTEXT hContext, UUID* CardIdentifier,
314 DWORD FreshnessCounter, LPWSTR LookupName,
315 PBYTE Data, DWORD* DataLen);
316
317 FREERDP_API LONG WINAPI Emulate_SCardWriteCacheA(SmartcardEmulationContext* smartcard,
318 SCARDCONTEXT hContext, UUID* CardIdentifier,
319 DWORD FreshnessCounter, LPSTR LookupName,
320 PBYTE Data, DWORD DataLen);
321
322 FREERDP_API LONG WINAPI Emulate_SCardWriteCacheW(SmartcardEmulationContext* smartcard,
323 SCARDCONTEXT hContext, UUID* CardIdentifier,
324 DWORD FreshnessCounter, LPWSTR LookupName,
325 PBYTE Data, DWORD DataLen);
326
327 FREERDP_API LONG WINAPI Emulate_SCardGetReaderIconA(SmartcardEmulationContext* smartcard,
328 SCARDCONTEXT hContext, LPCSTR szReaderName,
329 LPBYTE pbIcon, LPDWORD pcbIcon);
330
331 FREERDP_API LONG WINAPI Emulate_SCardGetReaderIconW(SmartcardEmulationContext* smartcard,
332 SCARDCONTEXT hContext, LPCWSTR szReaderName,
333 LPBYTE pbIcon, LPDWORD pcbIcon);
334
335 FREERDP_API LONG WINAPI Emulate_SCardGetDeviceTypeIdA(SmartcardEmulationContext* smartcard,
336 SCARDCONTEXT hContext,
337 LPCSTR szReaderName,
338 LPDWORD pdwDeviceTypeId);
339 FREERDP_API LONG WINAPI Emulate_SCardGetDeviceTypeIdW(SmartcardEmulationContext* smartcard,
340 SCARDCONTEXT hContext,
341 LPCWSTR szReaderName,
342 LPDWORD pdwDeviceTypeId);
343
344 FREERDP_API LONG WINAPI Emulate_SCardGetReaderDeviceInstanceIdA(
345 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCSTR szReaderName,
346 LPSTR szDeviceInstanceId, LPDWORD pcchDeviceInstanceId);
347
348 FREERDP_API LONG WINAPI Emulate_SCardGetReaderDeviceInstanceIdW(
349 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCWSTR szReaderName,
350 LPWSTR szDeviceInstanceId, LPDWORD pcchDeviceInstanceId);
351 FREERDP_API LONG WINAPI Emulate_SCardListReadersWithDeviceInstanceIdA(
352 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCSTR szDeviceInstanceId,
353 LPSTR mszReaders, LPDWORD pcchReaders);
354 FREERDP_API LONG WINAPI Emulate_SCardListReadersWithDeviceInstanceIdW(
355 SmartcardEmulationContext* smartcard, SCARDCONTEXT hContext, LPCWSTR szDeviceInstanceId,
356 LPWSTR mszReaders, LPDWORD pcchReaders);
357 FREERDP_API LONG WINAPI Emulate_SCardAudit(SmartcardEmulationContext* smartcard,
358 SCARDCONTEXT hContext, DWORD dwEvent);
359
360#ifdef __cplusplus
361}
362#endif
363
364#endif /* WINPR_SMARTCARD_EMULATE_PRIVATE_H */
Definition wtypes.h:254