22 #include <winpr/config.h>
24 #include <winpr/crt.h>
25 #include <winpr/wlog.h>
26 #include <winpr/file.h>
27 #include <winpr/path.h>
28 #include <winpr/library.h>
29 #include <winpr/smartcard.h>
31 #include "smartcard_inspect.h"
34 #define TAG WINPR_TAG("smartcard.inspect")
36 #define xstr(s) str(s)
39 #define SCARDAPI_STUB_CALL_LONG(status, _name, ...) \
40 if (!g_SCardApi || !g_SCardApi->pfn##_name) \
42 WLog_DBG(TAG, "Missing function pointer g_SCardApi=%p->" xstr(pfn##_name) "=%p", \
43 g_SCardApi, g_SCardApi ? g_SCardApi->pfn##_name : NULL); \
44 status = SCARD_E_NO_SERVICE; \
47 status = g_SCardApi->pfn##_name(__VA_ARGS__)
49 #define SCARDAPI_STUB_CALL_HANDLE(status, _name, ...) \
50 if (!g_SCardApi || !g_SCardApi->pfn##_name) \
52 WLog_DBG(TAG, "Missing function pointer g_SCardApi=%p->" xstr(pfn##_name) "=%p", \
53 g_SCardApi, g_SCardApi ? g_SCardApi->pfn##_name : NULL); \
57 status = g_SCardApi->pfn##_name(__VA_ARGS__)
59 #define SCARDAPI_STUB_CALL_VOID(_name, ...) \
60 if (!g_SCardApi || !g_SCardApi->pfn##_name) \
62 WLog_DBG(TAG, "Missing function pointer g_SCardApi=%p->" xstr(pfn##_name) "=%p", \
63 g_SCardApi, g_SCardApi ? g_SCardApi->pfn##_name : NULL); \
66 g_SCardApi->pfn##_name(__VA_ARGS__)
68 static const DWORD g_LogLevel = WLOG_DEBUG;
69 static wLog* g_Log = NULL;
77 static LONG WINAPI Inspect_SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1,
78 LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
82 WLog_Print(g_Log, g_LogLevel,
"SCardEstablishContext { dwScope: %s (0x%08" PRIX32
")",
83 SCardGetScopeString(dwScope), dwScope);
85 SCARDAPI_STUB_CALL_LONG(status, SCardEstablishContext, dwScope, pvReserved1, pvReserved2,
88 WLog_Print(g_Log, g_LogLevel,
"SCardEstablishContext } status: %s (0x%08" PRIX32
")",
89 SCardGetErrorString(status), status);
94 static LONG WINAPI Inspect_SCardReleaseContext(SCARDCONTEXT hContext)
98 WLog_Print(g_Log, g_LogLevel,
"SCardReleaseContext { hContext: %p", (
void*)hContext);
100 SCARDAPI_STUB_CALL_LONG(status, SCardReleaseContext, hContext);
102 WLog_Print(g_Log, g_LogLevel,
"SCardReleaseContext } status: %s (0x%08" PRIX32
")",
103 SCardGetErrorString(status), status);
108 static LONG WINAPI Inspect_SCardIsValidContext(SCARDCONTEXT hContext)
112 WLog_Print(g_Log, g_LogLevel,
"SCardIsValidContext { hContext: %p", (
void*)hContext);
114 SCARDAPI_STUB_CALL_LONG(status, SCardIsValidContext, hContext);
116 WLog_Print(g_Log, g_LogLevel,
"SCardIsValidContext } status: %s (0x%08" PRIX32
")",
117 SCardGetErrorString(status), status);
122 static LONG WINAPI Inspect_SCardListReaderGroupsA(SCARDCONTEXT hContext, LPSTR mszGroups,
127 WLog_Print(g_Log, g_LogLevel,
"SCardListReaderGroupsA { hContext: %p", (
void*)hContext);
129 SCARDAPI_STUB_CALL_LONG(status, SCardListReaderGroupsA, hContext, mszGroups, pcchGroups);
131 WLog_Print(g_Log, g_LogLevel,
"SCardListReaderGroupsA } status: %s (0x%08" PRIX32
")",
132 SCardGetErrorString(status), status);
137 static LONG WINAPI Inspect_SCardListReaderGroupsW(SCARDCONTEXT hContext, LPWSTR mszGroups,
142 WLog_Print(g_Log, g_LogLevel,
"SCardListReaderGroupsW { hContext: %p", (
void*)hContext);
144 SCARDAPI_STUB_CALL_LONG(status, SCardListReaderGroupsW, hContext, mszGroups, pcchGroups);
146 WLog_Print(g_Log, g_LogLevel,
"SCardListReaderGroupsW } status: %s (0x%08" PRIX32
")",
147 SCardGetErrorString(status), status);
152 static LONG WINAPI Inspect_SCardListReadersA(SCARDCONTEXT hContext, LPCSTR mszGroups,
153 LPSTR mszReaders, LPDWORD pcchReaders)
157 WLog_Print(g_Log, g_LogLevel,
"SCardListReadersA { hContext: %p", (
void*)hContext);
159 SCARDAPI_STUB_CALL_LONG(status, SCardListReadersA, hContext, mszGroups, mszReaders,
162 WLog_Print(g_Log, g_LogLevel,
"SCardListReadersA } status: %s (0x%08" PRIX32
")",
163 SCardGetErrorString(status), status);
168 static LONG WINAPI Inspect_SCardListReadersW(SCARDCONTEXT hContext, LPCWSTR mszGroups,
169 LPWSTR mszReaders, LPDWORD pcchReaders)
172 WLog_Print(g_Log, g_LogLevel,
"SCardListReadersW { hContext: %p", (
void*)hContext);
174 SCARDAPI_STUB_CALL_LONG(status, SCardListReadersW, hContext, mszGroups, mszReaders,
176 WLog_Print(g_Log, g_LogLevel,
"SCardListReadersW } status: %s (0x%08" PRIX32
")",
177 SCardGetErrorString(status), status);
182 static LONG WINAPI Inspect_SCardListCardsA(SCARDCONTEXT hContext, LPCBYTE pbAtr,
183 LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
184 CHAR* mszCards, LPDWORD pcchCards)
188 WLog_Print(g_Log, g_LogLevel,
"SCardListCardsA { hContext: %p", (
void*)hContext);
190 SCARDAPI_STUB_CALL_LONG(status, SCardListCardsA, hContext, pbAtr, rgquidInterfaces,
191 cguidInterfaceCount, mszCards, pcchCards);
193 WLog_Print(g_Log, g_LogLevel,
"SCardListCardsA } status: %s (0x%08" PRIX32
")",
194 SCardGetErrorString(status), status);
199 static LONG WINAPI Inspect_SCardListCardsW(SCARDCONTEXT hContext, LPCBYTE pbAtr,
200 LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
201 WCHAR* mszCards, LPDWORD pcchCards)
205 WLog_Print(g_Log, g_LogLevel,
"SCardListCardsW { hContext: %p", (
void*)hContext);
207 SCARDAPI_STUB_CALL_LONG(status, SCardListCardsW, hContext, pbAtr, rgquidInterfaces,
208 cguidInterfaceCount, mszCards, pcchCards);
210 WLog_Print(g_Log, g_LogLevel,
"SCardListCardsW } status: %s (0x%08" PRIX32
")",
211 SCardGetErrorString(status), status);
216 static LONG WINAPI Inspect_SCardListInterfacesA(SCARDCONTEXT hContext, LPCSTR szCard,
217 LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
221 WLog_Print(g_Log, g_LogLevel,
"SCardListInterfacesA { hContext: %p", (
void*)hContext);
223 SCARDAPI_STUB_CALL_LONG(status, SCardListInterfacesA, hContext, szCard, pguidInterfaces,
226 WLog_Print(g_Log, g_LogLevel,
"SCardListInterfacesA } status: %s (0x%08" PRIX32
")",
227 SCardGetErrorString(status), status);
232 static LONG WINAPI Inspect_SCardListInterfacesW(SCARDCONTEXT hContext, LPCWSTR szCard,
233 LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
237 WLog_Print(g_Log, g_LogLevel,
"SCardListInterfacesW { hContext: %p", (
void*)hContext);
239 SCARDAPI_STUB_CALL_LONG(status, SCardListInterfacesW, hContext, szCard, pguidInterfaces,
242 WLog_Print(g_Log, g_LogLevel,
"SCardListInterfacesW } status: %s (0x%08" PRIX32
")",
243 SCardGetErrorString(status), status);
248 static LONG WINAPI Inspect_SCardGetProviderIdA(SCARDCONTEXT hContext, LPCSTR szCard,
249 LPGUID pguidProviderId)
253 WLog_Print(g_Log, g_LogLevel,
"SCardGetProviderIdA { hContext: %p", (
void*)hContext);
255 SCARDAPI_STUB_CALL_LONG(status, SCardGetProviderIdA, hContext, szCard, pguidProviderId);
257 WLog_Print(g_Log, g_LogLevel,
"SCardGetProviderIdA } status: %s (0x%08" PRIX32
")",
258 SCardGetErrorString(status), status);
263 static LONG WINAPI Inspect_SCardGetProviderIdW(SCARDCONTEXT hContext, LPCWSTR szCard,
264 LPGUID pguidProviderId)
268 WLog_Print(g_Log, g_LogLevel,
"SCardGetProviderIdW { hContext: %p", (
void*)hContext);
270 SCARDAPI_STUB_CALL_LONG(status, SCardGetProviderIdW, hContext, szCard, pguidProviderId);
272 WLog_Print(g_Log, g_LogLevel,
"SCardGetProviderIdW } status: %s (0x%08" PRIX32
")",
273 SCardGetErrorString(status), status);
278 static LONG WINAPI Inspect_SCardGetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
279 DWORD dwProviderId, CHAR* szProvider,
280 LPDWORD pcchProvider)
284 WLog_Print(g_Log, g_LogLevel,
"SCardGetCardTypeProviderNameA { hContext: %p", (
void*)hContext);
286 SCARDAPI_STUB_CALL_LONG(status, SCardGetCardTypeProviderNameA, hContext, szCardName,
287 dwProviderId, szProvider, pcchProvider);
289 WLog_Print(g_Log, g_LogLevel,
"SCardGetCardTypeProviderNameA } status: %s (0x%08" PRIX32
")",
290 SCardGetErrorString(status), status);
295 static LONG WINAPI Inspect_SCardGetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
296 DWORD dwProviderId, WCHAR* szProvider,
297 LPDWORD pcchProvider)
301 WLog_Print(g_Log, g_LogLevel,
"SCardGetCardTypeProviderNameW { hContext: %p", (
void*)hContext);
303 SCARDAPI_STUB_CALL_LONG(status, SCardGetCardTypeProviderNameW, hContext, szCardName,
304 dwProviderId, szProvider, pcchProvider);
306 WLog_Print(g_Log, g_LogLevel,
"SCardGetCardTypeProviderNameW } status: %s (0x%08" PRIX32
")",
307 SCardGetErrorString(status), status);
312 static LONG WINAPI Inspect_SCardIntroduceReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName)
316 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderGroupA { hContext: %p", (
void*)hContext);
318 SCARDAPI_STUB_CALL_LONG(status, SCardIntroduceReaderGroupA, hContext, szGroupName);
320 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderGroupA } status: %s (0x%08" PRIX32
")",
321 SCardGetErrorString(status), status);
326 static LONG WINAPI Inspect_SCardIntroduceReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName)
330 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderGroupW { hContext: %p", (
void*)hContext);
332 SCARDAPI_STUB_CALL_LONG(status, SCardIntroduceReaderGroupW, hContext, szGroupName);
334 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderGroupW } status: %s (0x%08" PRIX32
")",
335 SCardGetErrorString(status), status);
340 static LONG WINAPI Inspect_SCardForgetReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName)
344 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderGroupA { hContext: %p", (
void*)hContext);
346 SCARDAPI_STUB_CALL_LONG(status, SCardForgetReaderGroupA, hContext, szGroupName);
348 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderGroupA } status: %s (0x%08" PRIX32
")",
349 SCardGetErrorString(status), status);
354 static LONG WINAPI Inspect_SCardForgetReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName)
358 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderGroupW { hContext: %p", (
void*)hContext);
360 SCARDAPI_STUB_CALL_LONG(status, SCardForgetReaderGroupW, hContext, szGroupName);
362 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderGroupW } status: %s (0x%08" PRIX32
")",
363 SCardGetErrorString(status), status);
368 static LONG WINAPI Inspect_SCardIntroduceReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName,
373 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderA { hContext: %p", (
void*)hContext);
375 SCARDAPI_STUB_CALL_LONG(status, SCardIntroduceReaderA, hContext, szReaderName, szDeviceName);
377 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderA } status: %s (0x%08" PRIX32
")",
378 SCardGetErrorString(status), status);
383 static LONG WINAPI Inspect_SCardIntroduceReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
384 LPCWSTR szDeviceName)
388 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderW { hContext: %p", (
void*)hContext);
390 SCARDAPI_STUB_CALL_LONG(status, SCardIntroduceReaderW, hContext, szReaderName, szDeviceName);
392 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceReaderW } status: %s (0x%08" PRIX32
")",
393 SCardGetErrorString(status), status);
398 static LONG WINAPI Inspect_SCardForgetReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName)
402 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderA { hContext: %p", (
void*)hContext);
404 SCARDAPI_STUB_CALL_LONG(status, SCardForgetReaderA, hContext, szReaderName);
406 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderA } status: %s (0x%08" PRIX32
")",
407 SCardGetErrorString(status), status);
412 static LONG WINAPI Inspect_SCardForgetReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName)
416 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderW { hContext: %p", (
void*)hContext);
418 SCARDAPI_STUB_CALL_LONG(status, SCardForgetReaderW, hContext, szReaderName);
420 WLog_Print(g_Log, g_LogLevel,
"SCardForgetReaderW } status: %s (0x%08" PRIX32
")",
421 SCardGetErrorString(status), status);
426 static LONG WINAPI Inspect_SCardAddReaderToGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
431 WLog_Print(g_Log, g_LogLevel,
"SCardAddReaderToGroupA { hContext: %p", (
void*)hContext);
433 SCARDAPI_STUB_CALL_LONG(status, SCardAddReaderToGroupA, hContext, szReaderName, szGroupName);
435 WLog_Print(g_Log, g_LogLevel,
"SCardAddReaderToGroupA } status: %s (0x%08" PRIX32
")",
436 SCardGetErrorString(status), status);
441 static LONG WINAPI Inspect_SCardAddReaderToGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
446 WLog_Print(g_Log, g_LogLevel,
"SCardAddReaderToGroupW { hContext: %p", (
void*)hContext);
448 SCARDAPI_STUB_CALL_LONG(status, SCardAddReaderToGroupW, hContext, szReaderName, szGroupName);
450 WLog_Print(g_Log, g_LogLevel,
"SCardAddReaderToGroupW } status: %s (0x%08" PRIX32
")",
451 SCardGetErrorString(status), status);
456 static LONG WINAPI Inspect_SCardRemoveReaderFromGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
461 WLog_Print(g_Log, g_LogLevel,
"SCardRemoveReaderFromGroupA { hContext: %p", (
void*)hContext);
463 SCARDAPI_STUB_CALL_LONG(status, SCardRemoveReaderFromGroupA, hContext, szReaderName,
466 WLog_Print(g_Log, g_LogLevel,
"SCardRemoveReaderFromGroupA } status: %s (0x%08" PRIX32
")",
467 SCardGetErrorString(status), status);
472 static LONG WINAPI Inspect_SCardRemoveReaderFromGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
477 WLog_Print(g_Log, g_LogLevel,
"SCardRemoveReaderFromGroupW { hContext: %p", (
void*)hContext);
479 SCARDAPI_STUB_CALL_LONG(status, SCardRemoveReaderFromGroupW, hContext, szReaderName,
482 WLog_Print(g_Log, g_LogLevel,
"SCardRemoveReaderFromGroupW } status: %s (0x%08" PRIX32
")",
483 SCardGetErrorString(status), status);
488 static LONG WINAPI Inspect_SCardIntroduceCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName,
489 LPCGUID pguidPrimaryProvider,
490 LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
491 LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen)
495 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceCardTypeA { hContext: %p", (
void*)hContext);
497 SCARDAPI_STUB_CALL_LONG(status, SCardIntroduceCardTypeA, hContext, szCardName,
498 pguidPrimaryProvider, rgguidInterfaces, dwInterfaceCount, pbAtr,
499 pbAtrMask, cbAtrLen);
501 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceCardTypeA } status: %s (0x%08" PRIX32
")",
502 SCardGetErrorString(status), status);
507 static LONG WINAPI Inspect_SCardIntroduceCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName,
508 LPCGUID pguidPrimaryProvider,
509 LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
510 LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen)
514 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceCardTypeW { hContext: %p", (
void*)hContext);
516 SCARDAPI_STUB_CALL_LONG(status, SCardIntroduceCardTypeW, hContext, szCardName,
517 pguidPrimaryProvider, rgguidInterfaces, dwInterfaceCount, pbAtr,
518 pbAtrMask, cbAtrLen);
520 WLog_Print(g_Log, g_LogLevel,
"SCardIntroduceCardTypeW } status: %s (0x%08" PRIX32
")",
521 SCardGetErrorString(status), status);
526 static LONG WINAPI Inspect_SCardSetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
527 DWORD dwProviderId, LPCSTR szProvider)
531 WLog_Print(g_Log, g_LogLevel,
"SCardSetCardTypeProviderNameA { hContext: %p", (
void*)hContext);
533 SCARDAPI_STUB_CALL_LONG(status, SCardSetCardTypeProviderNameA, hContext, szCardName,
534 dwProviderId, szProvider);
536 WLog_Print(g_Log, g_LogLevel,
"SCardSetCardTypeProviderNameA } status: %s (0x%08" PRIX32
")",
537 SCardGetErrorString(status), status);
542 static LONG WINAPI Inspect_SCardSetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
543 DWORD dwProviderId, LPCWSTR szProvider)
547 WLog_Print(g_Log, g_LogLevel,
"SCardSetCardTypeProviderNameA { hContext: %p", (
void*)hContext);
549 SCARDAPI_STUB_CALL_LONG(status, SCardSetCardTypeProviderNameW, hContext, szCardName,
550 dwProviderId, szProvider);
552 WLog_Print(g_Log, g_LogLevel,
"SCardSetCardTypeProviderNameW } status: %s (0x%08" PRIX32
")",
553 SCardGetErrorString(status), status);
558 static LONG WINAPI Inspect_SCardForgetCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName)
562 WLog_Print(g_Log, g_LogLevel,
"SCardForgetCardTypeA { hContext: %p", (
void*)hContext);
564 SCARDAPI_STUB_CALL_LONG(status, SCardForgetCardTypeA, hContext, szCardName);
566 WLog_Print(g_Log, g_LogLevel,
"SCardForgetCardTypeA } status: %s (0x%08" PRIX32
")",
567 SCardGetErrorString(status), status);
572 static LONG WINAPI Inspect_SCardForgetCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName)
576 WLog_Print(g_Log, g_LogLevel,
"SCardForgetCardTypeW { hContext: %p", (
void*)hContext);
578 SCARDAPI_STUB_CALL_LONG(status, SCardForgetCardTypeW, hContext, szCardName);
580 WLog_Print(g_Log, g_LogLevel,
"SCardForgetCardTypeW } status: %s (0x%08" PRIX32
")",
581 SCardGetErrorString(status), status);
586 static LONG WINAPI Inspect_SCardFreeMemory(SCARDCONTEXT hContext, LPVOID pvMem)
590 WLog_Print(g_Log, g_LogLevel,
"SCardFreeMemory { hContext: %p", (
void*)hContext);
592 SCARDAPI_STUB_CALL_LONG(status, SCardFreeMemory, hContext, pvMem);
594 WLog_Print(g_Log, g_LogLevel,
"SCardFreeMemory } status: %s (0x%08" PRIX32
")",
595 SCardGetErrorString(status), status);
600 static HANDLE WINAPI Inspect_SCardAccessStartedEvent(
void)
602 HANDLE hEvent = NULL;
604 WLog_Print(g_Log, g_LogLevel,
"SCardAccessStartedEvent {");
606 SCARDAPI_STUB_CALL_HANDLE(hEvent, SCardAccessStartedEvent);
608 WLog_Print(g_Log, g_LogLevel,
"SCardAccessStartedEvent } hEvent: %p", hEvent);
613 static void WINAPI Inspect_SCardReleaseStartedEvent(
void)
615 WLog_Print(g_Log, g_LogLevel,
"SCardReleaseStartedEvent {");
617 SCARDAPI_STUB_CALL_VOID(SCardReleaseStartedEvent);
619 WLog_Print(g_Log, g_LogLevel,
"SCardReleaseStartedEvent }");
622 static LONG WINAPI Inspect_SCardLocateCardsA(SCARDCONTEXT hContext, LPCSTR mszCards,
627 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsA { hContext: %p", (
void*)hContext);
629 SCARDAPI_STUB_CALL_LONG(status, SCardLocateCardsA, hContext, mszCards, rgReaderStates,
632 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsA } status: %s (0x%08" PRIX32
")",
633 SCardGetErrorString(status), status);
638 static LONG WINAPI Inspect_SCardLocateCardsW(SCARDCONTEXT hContext, LPCWSTR mszCards,
643 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsW { hContext: %p", (
void*)hContext);
645 SCARDAPI_STUB_CALL_LONG(status, SCardLocateCardsW, hContext, mszCards, rgReaderStates,
648 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsW } status: %s (0x%08" PRIX32
")",
649 SCardGetErrorString(status), status);
654 static LONG WINAPI Inspect_SCardLocateCardsByATRA(SCARDCONTEXT hContext,
LPSCARD_ATRMASK rgAtrMasks,
660 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsByATRA { hContext: %p", (
void*)hContext);
662 SCARDAPI_STUB_CALL_LONG(status, SCardLocateCardsByATRA, hContext, rgAtrMasks, cAtrs,
663 rgReaderStates, cReaders);
665 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsByATRA } status: %s (0x%08" PRIX32
")",
666 SCardGetErrorString(status), status);
671 static LONG WINAPI Inspect_SCardLocateCardsByATRW(SCARDCONTEXT hContext,
LPSCARD_ATRMASK rgAtrMasks,
677 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsByATRW { hContext: %p", (
void*)hContext);
679 SCARDAPI_STUB_CALL_LONG(status, SCardLocateCardsByATRW, hContext, rgAtrMasks, cAtrs,
680 rgReaderStates, cReaders);
682 WLog_Print(g_Log, g_LogLevel,
"SCardLocateCardsByATRW } status: %s (0x%08" PRIX32
")",
683 SCardGetErrorString(status), status);
688 static LONG WINAPI Inspect_SCardGetStatusChangeA(SCARDCONTEXT hContext, DWORD dwTimeout,
694 WLog_Print(g_Log, g_LogLevel,
"SCardGetStatusChangeA { hContext: %p", (
void*)hContext);
696 SCARDAPI_STUB_CALL_LONG(status, SCardGetStatusChangeA, hContext, dwTimeout, rgReaderStates,
699 WLog_Print(g_Log, g_LogLevel,
"SCardGetStatusChangeA } status: %s (0x%08" PRIX32
")",
700 SCardGetErrorString(status), status);
705 static LONG WINAPI Inspect_SCardGetStatusChangeW(SCARDCONTEXT hContext, DWORD dwTimeout,
711 WLog_Print(g_Log, g_LogLevel,
"SCardGetStatusChangeW { hContext: %p", (
void*)hContext);
713 SCARDAPI_STUB_CALL_LONG(status, SCardGetStatusChangeW, hContext, dwTimeout, rgReaderStates,
716 WLog_Print(g_Log, g_LogLevel,
"SCardGetStatusChangeW } status: %s (0x%08" PRIX32
")",
717 SCardGetErrorString(status), status);
722 static LONG WINAPI Inspect_SCardCancel(SCARDCONTEXT hContext)
726 WLog_Print(g_Log, g_LogLevel,
"SCardCancel { hContext: %p", (
void*)hContext);
728 SCARDAPI_STUB_CALL_LONG(status, SCardCancel, hContext);
730 WLog_Print(g_Log, g_LogLevel,
"SCardCancel } status: %s (0x%08" PRIX32
")",
731 SCardGetErrorString(status), status);
736 static LONG WINAPI Inspect_SCardConnectA(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode,
737 DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
738 LPDWORD pdwActiveProtocol)
742 WLog_Print(g_Log, g_LogLevel,
"SCardConnectA { hContext: %p", (
void*)hContext);
744 SCARDAPI_STUB_CALL_LONG(status, SCardConnectA, hContext, szReader, dwShareMode,
745 dwPreferredProtocols, phCard, pdwActiveProtocol);
747 WLog_Print(g_Log, g_LogLevel,
"SCardConnectA } status: %s (0x%08" PRIX32
")",
748 SCardGetErrorString(status), status);
753 static LONG WINAPI Inspect_SCardConnectW(SCARDCONTEXT hContext, LPCWSTR szReader, DWORD dwShareMode,
754 DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
755 LPDWORD pdwActiveProtocol)
759 WLog_Print(g_Log, g_LogLevel,
"SCardConnectW { hContext: %p", (
void*)hContext);
761 SCARDAPI_STUB_CALL_LONG(status, SCardConnectW, hContext, szReader, dwShareMode,
762 dwPreferredProtocols, phCard, pdwActiveProtocol);
764 WLog_Print(g_Log, g_LogLevel,
"SCardConnectW } status: %s (0x%08" PRIX32
")",
765 SCardGetErrorString(status), status);
770 static LONG WINAPI Inspect_SCardReconnect(SCARDHANDLE hCard, DWORD dwShareMode,
771 DWORD dwPreferredProtocols, DWORD dwInitialization,
772 LPDWORD pdwActiveProtocol)
776 WLog_Print(g_Log, g_LogLevel,
"SCardReconnect { hCard: %p", (
void*)hCard);
778 SCARDAPI_STUB_CALL_LONG(status, SCardReconnect, hCard, dwShareMode, dwPreferredProtocols,
779 dwInitialization, pdwActiveProtocol);
781 WLog_Print(g_Log, g_LogLevel,
"SCardReconnect } status: %s (0x%08" PRIX32
")",
782 SCardGetErrorString(status), status);
787 static LONG WINAPI Inspect_SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)
791 WLog_Print(g_Log, g_LogLevel,
"SCardDisconnect { hCard: %p", (
void*)hCard);
793 SCARDAPI_STUB_CALL_LONG(status, SCardDisconnect, hCard, dwDisposition);
795 WLog_Print(g_Log, g_LogLevel,
"SCardDisconnect } status: %s (0x%08" PRIX32
")",
796 SCardGetErrorString(status), status);
801 static LONG WINAPI Inspect_SCardBeginTransaction(SCARDHANDLE hCard)
805 WLog_Print(g_Log, g_LogLevel,
"SCardBeginTransaction { hCard: %p", (
void*)hCard);
807 SCARDAPI_STUB_CALL_LONG(status, SCardBeginTransaction, hCard);
809 WLog_Print(g_Log, g_LogLevel,
"SCardBeginTransaction } status: %s (0x%08" PRIX32
")",
810 SCardGetErrorString(status), status);
815 static LONG WINAPI Inspect_SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition)
819 WLog_Print(g_Log, g_LogLevel,
"SCardEndTransaction { hCard: %p", (
void*)hCard);
821 SCARDAPI_STUB_CALL_LONG(status, SCardEndTransaction, hCard, dwDisposition);
823 WLog_Print(g_Log, g_LogLevel,
"SCardEndTransaction } status: %s (0x%08" PRIX32
")",
824 SCardGetErrorString(status), status);
829 static LONG WINAPI Inspect_SCardCancelTransaction(SCARDHANDLE hCard)
833 WLog_Print(g_Log, g_LogLevel,
"SCardCancelTransaction { hCard: %p", (
void*)hCard);
835 SCARDAPI_STUB_CALL_LONG(status, SCardCancelTransaction, hCard);
837 WLog_Print(g_Log, g_LogLevel,
"SCardCancelTransaction } status: %s (0x%08" PRIX32
")",
838 SCardGetErrorString(status), status);
843 static LONG WINAPI Inspect_SCardState(SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol,
844 LPBYTE pbAtr, LPDWORD pcbAtrLen)
848 WLog_Print(g_Log, g_LogLevel,
"SCardState { hCard: %p", (
void*)hCard);
850 SCARDAPI_STUB_CALL_LONG(status, SCardState, hCard, pdwState, pdwProtocol, pbAtr, pcbAtrLen);
852 WLog_Print(g_Log, g_LogLevel,
"SCardState } status: %s (0x%08" PRIX32
")",
853 SCardGetErrorString(status), status);
858 static LONG WINAPI Inspect_SCardStatusA(SCARDHANDLE hCard, LPSTR mszReaderNames,
859 LPDWORD pcchReaderLen, LPDWORD pdwState,
860 LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
864 WLog_Print(g_Log, g_LogLevel,
"SCardStatusA { hCard: %p", (
void*)hCard);
866 SCARDAPI_STUB_CALL_LONG(status, SCardStatusA, hCard, mszReaderNames, pcchReaderLen, pdwState,
867 pdwProtocol, pbAtr, pcbAtrLen);
869 WLog_Print(g_Log, g_LogLevel,
"SCardStatusA } status: %s (0x%08" PRIX32
")",
870 SCardGetErrorString(status), status);
875 static LONG WINAPI Inspect_SCardStatusW(SCARDHANDLE hCard, LPWSTR mszReaderNames,
876 LPDWORD pcchReaderLen, LPDWORD pdwState,
877 LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
881 WLog_Print(g_Log, g_LogLevel,
"SCardStatusW { hCard: %p", (
void*)hCard);
883 SCARDAPI_STUB_CALL_LONG(status, SCardStatusW, hCard, mszReaderNames, pcchReaderLen, pdwState,
884 pdwProtocol, pbAtr, pcbAtrLen);
886 WLog_Print(g_Log, g_LogLevel,
"SCardStatusW } status: %s (0x%08" PRIX32
")",
887 SCardGetErrorString(status), status);
892 static LONG WINAPI Inspect_SCardTransmit(SCARDHANDLE hCard,
LPCSCARD_IO_REQUEST pioSendPci,
893 LPCBYTE pbSendBuffer, DWORD cbSendLength,
895 LPDWORD pcbRecvLength)
899 WLog_Print(g_Log, g_LogLevel,
"SCardTransmit { hCard: %p", (
void*)hCard);
901 SCARDAPI_STUB_CALL_LONG(status, SCardTransmit, hCard, pioSendPci, pbSendBuffer, cbSendLength,
902 pioRecvPci, pbRecvBuffer, pcbRecvLength);
904 WLog_Print(g_Log, g_LogLevel,
"SCardTransmit } status: %s (0x%08" PRIX32
")",
905 SCardGetErrorString(status), status);
910 static LONG WINAPI Inspect_SCardGetTransmitCount(SCARDHANDLE hCard, LPDWORD pcTransmitCount)
914 WLog_Print(g_Log, g_LogLevel,
"SCardGetTransmitCount { hCard: %p", (
void*)hCard);
916 SCARDAPI_STUB_CALL_LONG(status, SCardGetTransmitCount, hCard, pcTransmitCount);
918 WLog_Print(g_Log, g_LogLevel,
"SCardGetTransmitCount } status: %s (0x%08" PRIX32
")",
919 SCardGetErrorString(status), status);
924 static LONG WINAPI Inspect_SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer,
925 DWORD cbInBufferSize, LPVOID lpOutBuffer,
926 DWORD cbOutBufferSize, LPDWORD lpBytesReturned)
930 WLog_Print(g_Log, g_LogLevel,
"SCardControl { hCard: %p", (
void*)hCard);
932 SCARDAPI_STUB_CALL_LONG(status, SCardControl, hCard, dwControlCode, lpInBuffer, cbInBufferSize,
933 lpOutBuffer, cbOutBufferSize, lpBytesReturned);
935 WLog_Print(g_Log, g_LogLevel,
"SCardControl } status: %s (0x%08" PRIX32
")",
936 SCardGetErrorString(status), status);
941 static LONG WINAPI Inspect_SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
946 WLog_Print(g_Log, g_LogLevel,
"SCardGetAttrib { hCard: %p", (
void*)hCard);
948 SCARDAPI_STUB_CALL_LONG(status, SCardGetAttrib, hCard, dwAttrId, pbAttr, pcbAttrLen);
950 WLog_Print(g_Log, g_LogLevel,
"SCardGetAttrib } status: %s (0x%08" PRIX32
")",
951 SCardGetErrorString(status), status);
956 static LONG WINAPI Inspect_SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
961 WLog_Print(g_Log, g_LogLevel,
"SCardSetAttrib { hCard: %p", (
void*)hCard);
963 SCARDAPI_STUB_CALL_LONG(status, SCardSetAttrib, hCard, dwAttrId, pbAttr, cbAttrLen);
965 WLog_Print(g_Log, g_LogLevel,
"SCardSetAttrib } status: %s (0x%08" PRIX32
")",
966 SCardGetErrorString(status), status);
971 static LONG WINAPI Inspect_SCardUIDlgSelectCardA(LPOPENCARDNAMEA_EX pDlgStruc)
975 WLog_Print(g_Log, g_LogLevel,
"SCardUIDlgSelectCardA {");
977 SCARDAPI_STUB_CALL_LONG(status, SCardUIDlgSelectCardA, pDlgStruc);
979 WLog_Print(g_Log, g_LogLevel,
"SCardUIDlgSelectCardA } status: %s (0x%08" PRIX32
")",
980 SCardGetErrorString(status), status);
985 static LONG WINAPI Inspect_SCardUIDlgSelectCardW(LPOPENCARDNAMEW_EX pDlgStruc)
989 WLog_Print(g_Log, g_LogLevel,
"SCardUIDlgSelectCardW {");
991 SCARDAPI_STUB_CALL_LONG(status, SCardUIDlgSelectCardW, pDlgStruc);
993 WLog_Print(g_Log, g_LogLevel,
"SCardUIDlgSelectCardW } status: %s (0x%08" PRIX32
")",
994 SCardGetErrorString(status), status);
1003 WLog_Print(g_Log, g_LogLevel,
"GetOpenCardNameA {");
1005 SCARDAPI_STUB_CALL_LONG(status, GetOpenCardNameA, pDlgStruc);
1007 WLog_Print(g_Log, g_LogLevel,
"GetOpenCardNameA } status: %s (0x%08" PRIX32
")",
1008 SCardGetErrorString(status), status);
1013 static LONG WINAPI Inspect_GetOpenCardNameW(
LPOPENCARDNAMEW pDlgStruc)
1017 WLog_Print(g_Log, g_LogLevel,
"GetOpenCardNameW {");
1019 SCARDAPI_STUB_CALL_LONG(status, GetOpenCardNameW, pDlgStruc);
1021 WLog_Print(g_Log, g_LogLevel,
"GetOpenCardNameW } status: %s (0x%08" PRIX32
")",
1022 SCardGetErrorString(status), status);
1027 static LONG WINAPI Inspect_SCardDlgExtendedError(
void)
1031 WLog_Print(g_Log, g_LogLevel,
"SCardDlgExtendedError {");
1033 SCARDAPI_STUB_CALL_LONG(status, SCardDlgExtendedError);
1035 WLog_Print(g_Log, g_LogLevel,
"SCardDlgExtendedError } status: %s (0x%08" PRIX32
")",
1036 SCardGetErrorString(status), status);
1041 static LONG WINAPI Inspect_SCardReadCacheA(SCARDCONTEXT hContext, UUID* CardIdentifier,
1042 DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
1047 WLog_Print(g_Log, g_LogLevel,
"SCardReadCacheA { hContext: %p", (
void*)hContext);
1049 SCARDAPI_STUB_CALL_LONG(status, SCardReadCacheA, hContext, CardIdentifier, FreshnessCounter,
1050 LookupName, Data, DataLen);
1052 WLog_Print(g_Log, g_LogLevel,
"SCardReadCacheA } status: %s (0x%08" PRIX32
")",
1053 SCardGetErrorString(status), status);
1058 static LONG WINAPI Inspect_SCardReadCacheW(SCARDCONTEXT hContext, UUID* CardIdentifier,
1059 DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
1064 WLog_Print(g_Log, g_LogLevel,
"SCardReadCacheW { hContext: %p", (
void*)hContext);
1066 SCARDAPI_STUB_CALL_LONG(status, SCardReadCacheW, hContext, CardIdentifier, FreshnessCounter,
1067 LookupName, Data, DataLen);
1069 WLog_Print(g_Log, g_LogLevel,
"SCardReadCacheW } status: %s (0x%08" PRIX32
")",
1070 SCardGetErrorString(status), status);
1075 static LONG WINAPI Inspect_SCardWriteCacheA(SCARDCONTEXT hContext, UUID* CardIdentifier,
1076 DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
1081 WLog_Print(g_Log, g_LogLevel,
"SCardWriteCacheA { hContext: %p", (
void*)hContext);
1083 SCARDAPI_STUB_CALL_LONG(status, SCardWriteCacheA, hContext, CardIdentifier, FreshnessCounter,
1084 LookupName, Data, DataLen);
1086 WLog_Print(g_Log, g_LogLevel,
"SCardWriteCacheA } status: %s (0x%08" PRIX32
")",
1087 SCardGetErrorString(status), status);
1092 static LONG WINAPI Inspect_SCardWriteCacheW(SCARDCONTEXT hContext, UUID* CardIdentifier,
1093 DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
1098 WLog_Print(g_Log, g_LogLevel,
"SCardWriteCacheW { hContext: %p", (
void*)hContext);
1100 SCARDAPI_STUB_CALL_LONG(status, SCardWriteCacheW, hContext, CardIdentifier, FreshnessCounter,
1101 LookupName, Data, DataLen);
1103 WLog_Print(g_Log, g_LogLevel,
"SCardWriteCacheW } status: %s (0x%08" PRIX32
")",
1104 SCardGetErrorString(status), status);
1109 static LONG WINAPI Inspect_SCardGetReaderIconA(SCARDCONTEXT hContext, LPCSTR szReaderName,
1110 LPBYTE pbIcon, LPDWORD pcbIcon)
1114 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderIconA { hContext: %p", (
void*)hContext);
1116 SCARDAPI_STUB_CALL_LONG(status, SCardGetReaderIconA, hContext, szReaderName, pbIcon, pcbIcon);
1118 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderIconA } status: %s (0x%08" PRIX32
")",
1119 SCardGetErrorString(status), status);
1124 static LONG WINAPI Inspect_SCardGetReaderIconW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
1125 LPBYTE pbIcon, LPDWORD pcbIcon)
1129 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderIconW { hContext: %p", (
void*)hContext);
1131 SCARDAPI_STUB_CALL_LONG(status, SCardGetReaderIconW, hContext, szReaderName, pbIcon, pcbIcon);
1133 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderIconW } status: %s (0x%08" PRIX32
")",
1134 SCardGetErrorString(status), status);
1139 static LONG WINAPI Inspect_SCardGetDeviceTypeIdA(SCARDCONTEXT hContext, LPCSTR szReaderName,
1140 LPDWORD pdwDeviceTypeId)
1144 WLog_Print(g_Log, g_LogLevel,
"SCardGetDeviceTypeIdA { hContext: %p", (
void*)hContext);
1146 SCARDAPI_STUB_CALL_LONG(status, SCardGetDeviceTypeIdA, hContext, szReaderName, pdwDeviceTypeId);
1148 WLog_Print(g_Log, g_LogLevel,
"SCardGetDeviceTypeIdA } status: %s (0x%08" PRIX32
")",
1149 SCardGetErrorString(status), status);
1154 static LONG WINAPI Inspect_SCardGetDeviceTypeIdW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
1155 LPDWORD pdwDeviceTypeId)
1159 WLog_Print(g_Log, g_LogLevel,
"SCardGetDeviceTypeIdW { hContext: %p", (
void*)hContext);
1161 SCARDAPI_STUB_CALL_LONG(status, SCardGetDeviceTypeIdW, hContext, szReaderName, pdwDeviceTypeId);
1163 WLog_Print(g_Log, g_LogLevel,
"SCardGetDeviceTypeIdW } status: %s (0x%08" PRIX32
")",
1164 SCardGetErrorString(status), status);
1169 static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdA(SCARDCONTEXT hContext,
1170 LPCSTR szReaderName,
1171 LPSTR szDeviceInstanceId,
1172 LPDWORD pcchDeviceInstanceId)
1176 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderDeviceInstanceIdA { hContext: %p",
1179 SCARDAPI_STUB_CALL_LONG(status, SCardGetReaderDeviceInstanceIdA, hContext, szReaderName,
1180 szDeviceInstanceId, pcchDeviceInstanceId);
1182 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderDeviceInstanceIdA } status: %s (0x%08" PRIX32
")",
1183 SCardGetErrorString(status), status);
1188 static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdW(SCARDCONTEXT hContext,
1189 LPCWSTR szReaderName,
1190 LPWSTR szDeviceInstanceId,
1191 LPDWORD pcchDeviceInstanceId)
1195 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderDeviceInstanceIdW { hContext: %p",
1198 SCARDAPI_STUB_CALL_LONG(status, SCardGetReaderDeviceInstanceIdW, hContext, szReaderName,
1199 szDeviceInstanceId, pcchDeviceInstanceId);
1201 WLog_Print(g_Log, g_LogLevel,
"SCardGetReaderDeviceInstanceIdW } status: %s (0x%08" PRIX32
")",
1202 SCardGetErrorString(status), status);
1207 static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdA(SCARDCONTEXT hContext,
1208 LPCSTR szDeviceInstanceId,
1210 LPDWORD pcchReaders)
1214 WLog_Print(g_Log, g_LogLevel,
"SCardListReadersWithDeviceInstanceIdA { hContext: %p",
1217 SCARDAPI_STUB_CALL_LONG(status, SCardListReadersWithDeviceInstanceIdA, hContext,
1218 szDeviceInstanceId, mszReaders, pcchReaders);
1220 WLog_Print(g_Log, g_LogLevel,
1221 "SCardListReadersWithDeviceInstanceIdA } status: %s (0x%08" PRIX32
")",
1222 SCardGetErrorString(status), status);
1227 static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdW(SCARDCONTEXT hContext,
1228 LPCWSTR szDeviceInstanceId,
1230 LPDWORD pcchReaders)
1234 WLog_Print(g_Log, g_LogLevel,
"SCardListReadersWithDeviceInstanceIdW { hContext: %p",
1237 SCARDAPI_STUB_CALL_LONG(status, SCardListReadersWithDeviceInstanceIdW, hContext,
1238 szDeviceInstanceId, mszReaders, pcchReaders);
1240 WLog_Print(g_Log, g_LogLevel,
1241 "SCardListReadersWithDeviceInstanceIdW } status: %s (0x%08" PRIX32
")",
1242 SCardGetErrorString(status), status);
1247 static LONG WINAPI Inspect_SCardAudit(SCARDCONTEXT hContext, DWORD dwEvent)
1251 WLog_Print(g_Log, g_LogLevel,
"SCardAudit { hContext: %p", (
void*)hContext);
1253 SCARDAPI_STUB_CALL_LONG(status, SCardAudit, hContext, dwEvent);
1255 WLog_Print(g_Log, g_LogLevel,
"SCardAudit } status: %s (0x%08" PRIX32
")",
1256 SCardGetErrorString(status), status);
1269 Inspect_SCardEstablishContext,
1270 Inspect_SCardReleaseContext,
1271 Inspect_SCardIsValidContext,
1272 Inspect_SCardListReaderGroupsA,
1273 Inspect_SCardListReaderGroupsW,
1274 Inspect_SCardListReadersA,
1275 Inspect_SCardListReadersW,
1276 Inspect_SCardListCardsA,
1277 Inspect_SCardListCardsW,
1278 Inspect_SCardListInterfacesA,
1279 Inspect_SCardListInterfacesW,
1280 Inspect_SCardGetProviderIdA,
1281 Inspect_SCardGetProviderIdW,
1282 Inspect_SCardGetCardTypeProviderNameA,
1283 Inspect_SCardGetCardTypeProviderNameW,
1284 Inspect_SCardIntroduceReaderGroupA,
1285 Inspect_SCardIntroduceReaderGroupW,
1286 Inspect_SCardForgetReaderGroupA,
1287 Inspect_SCardForgetReaderGroupW,
1288 Inspect_SCardIntroduceReaderA,
1289 Inspect_SCardIntroduceReaderW,
1290 Inspect_SCardForgetReaderA,
1291 Inspect_SCardForgetReaderW,
1292 Inspect_SCardAddReaderToGroupA,
1293 Inspect_SCardAddReaderToGroupW,
1294 Inspect_SCardRemoveReaderFromGroupA,
1295 Inspect_SCardRemoveReaderFromGroupW,
1296 Inspect_SCardIntroduceCardTypeA,
1297 Inspect_SCardIntroduceCardTypeW,
1298 Inspect_SCardSetCardTypeProviderNameA,
1299 Inspect_SCardSetCardTypeProviderNameW,
1300 Inspect_SCardForgetCardTypeA,
1301 Inspect_SCardForgetCardTypeW,
1302 Inspect_SCardFreeMemory,
1303 Inspect_SCardAccessStartedEvent,
1304 Inspect_SCardReleaseStartedEvent,
1305 Inspect_SCardLocateCardsA,
1306 Inspect_SCardLocateCardsW,
1307 Inspect_SCardLocateCardsByATRA,
1308 Inspect_SCardLocateCardsByATRW,
1309 Inspect_SCardGetStatusChangeA,
1310 Inspect_SCardGetStatusChangeW,
1311 Inspect_SCardCancel,
1312 Inspect_SCardConnectA,
1313 Inspect_SCardConnectW,
1314 Inspect_SCardReconnect,
1315 Inspect_SCardDisconnect,
1316 Inspect_SCardBeginTransaction,
1317 Inspect_SCardEndTransaction,
1318 Inspect_SCardCancelTransaction,
1320 Inspect_SCardStatusA,
1321 Inspect_SCardStatusW,
1322 Inspect_SCardTransmit,
1323 Inspect_SCardGetTransmitCount,
1324 Inspect_SCardControl,
1325 Inspect_SCardGetAttrib,
1326 Inspect_SCardSetAttrib,
1327 Inspect_SCardUIDlgSelectCardA,
1328 Inspect_SCardUIDlgSelectCardW,
1329 Inspect_GetOpenCardNameA,
1330 Inspect_GetOpenCardNameW,
1331 Inspect_SCardDlgExtendedError,
1332 Inspect_SCardReadCacheA,
1333 Inspect_SCardReadCacheW,
1334 Inspect_SCardWriteCacheA,
1335 Inspect_SCardWriteCacheW,
1336 Inspect_SCardGetReaderIconA,
1337 Inspect_SCardGetReaderIconW,
1338 Inspect_SCardGetDeviceTypeIdA,
1339 Inspect_SCardGetDeviceTypeIdW,
1340 Inspect_SCardGetReaderDeviceInstanceIdA,
1341 Inspect_SCardGetReaderDeviceInstanceIdW,
1342 Inspect_SCardListReadersWithDeviceInstanceIdA,
1343 Inspect_SCardListReadersWithDeviceInstanceIdW,
1347 static void Inspect_InitLog(
void)
1352 if (!(g_Log = WLog_Get(
"WinSCard")))
1358 g_SCardApi = pSCardApi;
1362 return &Inspect_SCardApiFunctionTable;