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