FreeRDP
smartcard_inspect.c File Reference
#include <winpr/config.h>
#include <winpr/crt.h>
#include <winpr/wlog.h>
#include <winpr/file.h>
#include <winpr/path.h>
#include <winpr/library.h>
#include <winpr/smartcard.h>
#include "smartcard_inspect.h"
#include "../log.h"

Macros

#define TAG   WINPR_TAG("smartcard.inspect")
 
#define xstr(s)   str(s)
 
#define str(s)   #s
 
#define SCARDAPI_STUB_CALL_LONG(status, _name, ...)
 
#define SCARDAPI_STUB_CALL_HANDLE(status, _name, ...)
 
#define SCARDAPI_STUB_CALL_VOID(_name, ...)
 

Functions

static LONG WINAPI Inspect_SCardEstablishContext (DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
 
static LONG WINAPI Inspect_SCardReleaseContext (SCARDCONTEXT hContext)
 
static LONG WINAPI Inspect_SCardIsValidContext (SCARDCONTEXT hContext)
 
static LONG WINAPI Inspect_SCardListReaderGroupsA (SCARDCONTEXT hContext, LPSTR mszGroups, LPDWORD pcchGroups)
 
static LONG WINAPI Inspect_SCardListReaderGroupsW (SCARDCONTEXT hContext, LPWSTR mszGroups, LPDWORD pcchGroups)
 
static LONG WINAPI Inspect_SCardListReadersA (SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders, LPDWORD pcchReaders)
 
static LONG WINAPI Inspect_SCardListReadersW (SCARDCONTEXT hContext, LPCWSTR mszGroups, LPWSTR mszReaders, LPDWORD pcchReaders)
 
static LONG WINAPI Inspect_SCardListCardsA (SCARDCONTEXT hContext, LPCBYTE pbAtr, LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount, CHAR *mszCards, LPDWORD pcchCards)
 
static LONG WINAPI Inspect_SCardListCardsW (SCARDCONTEXT hContext, LPCBYTE pbAtr, LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount, WCHAR *mszCards, LPDWORD pcchCards)
 
static LONG WINAPI Inspect_SCardListInterfacesA (SCARDCONTEXT hContext, LPCSTR szCard, LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
 
static LONG WINAPI Inspect_SCardListInterfacesW (SCARDCONTEXT hContext, LPCWSTR szCard, LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
 
static LONG WINAPI Inspect_SCardGetProviderIdA (SCARDCONTEXT hContext, LPCSTR szCard, LPGUID pguidProviderId)
 
static LONG WINAPI Inspect_SCardGetProviderIdW (SCARDCONTEXT hContext, LPCWSTR szCard, LPGUID pguidProviderId)
 
static LONG WINAPI Inspect_SCardGetCardTypeProviderNameA (SCARDCONTEXT hContext, LPCSTR szCardName, DWORD dwProviderId, CHAR *szProvider, LPDWORD pcchProvider)
 
static LONG WINAPI Inspect_SCardGetCardTypeProviderNameW (SCARDCONTEXT hContext, LPCWSTR szCardName, DWORD dwProviderId, WCHAR *szProvider, LPDWORD pcchProvider)
 
static LONG WINAPI Inspect_SCardIntroduceReaderGroupA (SCARDCONTEXT hContext, LPCSTR szGroupName)
 
static LONG WINAPI Inspect_SCardIntroduceReaderGroupW (SCARDCONTEXT hContext, LPCWSTR szGroupName)
 
static LONG WINAPI Inspect_SCardForgetReaderGroupA (SCARDCONTEXT hContext, LPCSTR szGroupName)
 
static LONG WINAPI Inspect_SCardForgetReaderGroupW (SCARDCONTEXT hContext, LPCWSTR szGroupName)
 
static LONG WINAPI Inspect_SCardIntroduceReaderA (SCARDCONTEXT hContext, LPCSTR szReaderName, LPCSTR szDeviceName)
 
static LONG WINAPI Inspect_SCardIntroduceReaderW (SCARDCONTEXT hContext, LPCWSTR szReaderName, LPCWSTR szDeviceName)
 
static LONG WINAPI Inspect_SCardForgetReaderA (SCARDCONTEXT hContext, LPCSTR szReaderName)
 
static LONG WINAPI Inspect_SCardForgetReaderW (SCARDCONTEXT hContext, LPCWSTR szReaderName)
 
static LONG WINAPI Inspect_SCardAddReaderToGroupA (SCARDCONTEXT hContext, LPCSTR szReaderName, LPCSTR szGroupName)
 
static LONG WINAPI Inspect_SCardAddReaderToGroupW (SCARDCONTEXT hContext, LPCWSTR szReaderName, LPCWSTR szGroupName)
 
static LONG WINAPI Inspect_SCardRemoveReaderFromGroupA (SCARDCONTEXT hContext, LPCSTR szReaderName, LPCSTR szGroupName)
 
static LONG WINAPI Inspect_SCardRemoveReaderFromGroupW (SCARDCONTEXT hContext, LPCWSTR szReaderName, LPCWSTR szGroupName)
 
static LONG WINAPI Inspect_SCardIntroduceCardTypeA (SCARDCONTEXT hContext, LPCSTR szCardName, LPCGUID pguidPrimaryProvider, LPCGUID rgguidInterfaces, DWORD dwInterfaceCount, LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen)
 
static LONG WINAPI Inspect_SCardIntroduceCardTypeW (SCARDCONTEXT hContext, LPCWSTR szCardName, LPCGUID pguidPrimaryProvider, LPCGUID rgguidInterfaces, DWORD dwInterfaceCount, LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen)
 
static LONG WINAPI Inspect_SCardSetCardTypeProviderNameA (SCARDCONTEXT hContext, LPCSTR szCardName, DWORD dwProviderId, LPCSTR szProvider)
 
static LONG WINAPI Inspect_SCardSetCardTypeProviderNameW (SCARDCONTEXT hContext, LPCWSTR szCardName, DWORD dwProviderId, LPCWSTR szProvider)
 
static LONG WINAPI Inspect_SCardForgetCardTypeA (SCARDCONTEXT hContext, LPCSTR szCardName)
 
static LONG WINAPI Inspect_SCardForgetCardTypeW (SCARDCONTEXT hContext, LPCWSTR szCardName)
 
static LONG WINAPI Inspect_SCardFreeMemory (SCARDCONTEXT hContext, LPVOID pvMem)
 
static HANDLE WINAPI Inspect_SCardAccessStartedEvent (void)
 
static void WINAPI Inspect_SCardReleaseStartedEvent (void)
 
static LONG WINAPI Inspect_SCardLocateCardsA (SCARDCONTEXT hContext, LPCSTR mszCards, LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders)
 
static LONG WINAPI Inspect_SCardLocateCardsW (SCARDCONTEXT hContext, LPCWSTR mszCards, LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders)
 
static LONG WINAPI Inspect_SCardLocateCardsByATRA (SCARDCONTEXT hContext, LPSCARD_ATRMASK rgAtrMasks, DWORD cAtrs, LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders)
 
static LONG WINAPI Inspect_SCardLocateCardsByATRW (SCARDCONTEXT hContext, LPSCARD_ATRMASK rgAtrMasks, DWORD cAtrs, LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders)
 
static LONG WINAPI Inspect_SCardGetStatusChangeA (SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders)
 
static LONG WINAPI Inspect_SCardGetStatusChangeW (SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders)
 
static LONG WINAPI Inspect_SCardCancel (SCARDCONTEXT hContext)
 
static LONG WINAPI Inspect_SCardConnectA (SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol)
 
static LONG WINAPI Inspect_SCardConnectW (SCARDCONTEXT hContext, LPCWSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol)
 
static LONG WINAPI Inspect_SCardReconnect (SCARDHANDLE hCard, DWORD dwShareMode, DWORD dwPreferredProtocols, DWORD dwInitialization, LPDWORD pdwActiveProtocol)
 
static LONG WINAPI Inspect_SCardDisconnect (SCARDHANDLE hCard, DWORD dwDisposition)
 
static LONG WINAPI Inspect_SCardBeginTransaction (SCARDHANDLE hCard)
 
static LONG WINAPI Inspect_SCardEndTransaction (SCARDHANDLE hCard, DWORD dwDisposition)
 
static LONG WINAPI Inspect_SCardCancelTransaction (SCARDHANDLE hCard)
 
static LONG WINAPI Inspect_SCardState (SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
 
static LONG WINAPI Inspect_SCardStatusA (SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
 
static LONG WINAPI Inspect_SCardStatusW (SCARDHANDLE hCard, LPWSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
 
static LONG WINAPI Inspect_SCardTransmit (SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, LPCBYTE pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength)
 
static LONG WINAPI Inspect_SCardGetTransmitCount (SCARDHANDLE hCard, LPDWORD pcTransmitCount)
 
static LONG WINAPI Inspect_SCardControl (SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer, DWORD cbInBufferSize, LPVOID lpOutBuffer, DWORD cbOutBufferSize, LPDWORD lpBytesReturned)
 
static LONG WINAPI Inspect_SCardGetAttrib (SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr, LPDWORD pcbAttrLen)
 
static LONG WINAPI Inspect_SCardSetAttrib (SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr, DWORD cbAttrLen)
 
static LONG WINAPI Inspect_SCardUIDlgSelectCardA (LPOPENCARDNAMEA_EX pDlgStruc)
 
static LONG WINAPI Inspect_SCardUIDlgSelectCardW (LPOPENCARDNAMEW_EX pDlgStruc)
 
static LONG WINAPI Inspect_GetOpenCardNameA (LPOPENCARDNAMEA pDlgStruc)
 
static LONG WINAPI Inspect_GetOpenCardNameW (LPOPENCARDNAMEW pDlgStruc)
 
static LONG WINAPI Inspect_SCardDlgExtendedError (void)
 
static LONG WINAPI Inspect_SCardReadCacheA (SCARDCONTEXT hContext, UUID *CardIdentifier, DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data, DWORD *DataLen)
 
static LONG WINAPI Inspect_SCardReadCacheW (SCARDCONTEXT hContext, UUID *CardIdentifier, DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data, DWORD *DataLen)
 
static LONG WINAPI Inspect_SCardWriteCacheA (SCARDCONTEXT hContext, UUID *CardIdentifier, DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data, DWORD DataLen)
 
static LONG WINAPI Inspect_SCardWriteCacheW (SCARDCONTEXT hContext, UUID *CardIdentifier, DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data, DWORD DataLen)
 
static LONG WINAPI Inspect_SCardGetReaderIconA (SCARDCONTEXT hContext, LPCSTR szReaderName, LPBYTE pbIcon, LPDWORD pcbIcon)
 
static LONG WINAPI Inspect_SCardGetReaderIconW (SCARDCONTEXT hContext, LPCWSTR szReaderName, LPBYTE pbIcon, LPDWORD pcbIcon)
 
static LONG WINAPI Inspect_SCardGetDeviceTypeIdA (SCARDCONTEXT hContext, LPCSTR szReaderName, LPDWORD pdwDeviceTypeId)
 
static LONG WINAPI Inspect_SCardGetDeviceTypeIdW (SCARDCONTEXT hContext, LPCWSTR szReaderName, LPDWORD pdwDeviceTypeId)
 
static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdA (SCARDCONTEXT hContext, LPCSTR szReaderName, LPSTR szDeviceInstanceId, LPDWORD pcchDeviceInstanceId)
 
static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdW (SCARDCONTEXT hContext, LPCWSTR szReaderName, LPWSTR szDeviceInstanceId, LPDWORD pcchDeviceInstanceId)
 
static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdA (SCARDCONTEXT hContext, LPCSTR szDeviceInstanceId, LPSTR mszReaders, LPDWORD pcchReaders)
 
static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdW (SCARDCONTEXT hContext, LPCWSTR szDeviceInstanceId, LPWSTR mszReaders, LPDWORD pcchReaders)
 
static LONG WINAPI Inspect_SCardAudit (SCARDCONTEXT hContext, DWORD dwEvent)
 
static void Inspect_InitLog (void)
 
const SCardApiFunctionTableInspect_RegisterSCardApi (const SCardApiFunctionTable *pSCardApi)
 

Variables

static const DWORD g_LogLevel = WLOG_DEBUG
 
static wLog * g_Log = NULL
 
static const SCardApiFunctionTableg_SCardApi = NULL
 
static const SCardApiFunctionTable Inspect_SCardApiFunctionTable
 

Macro Definition Documentation

◆ SCARDAPI_STUB_CALL_HANDLE

#define SCARDAPI_STUB_CALL_HANDLE (   status,
  _name,
  ... 
)
Value:
if (!g_SCardApi || !g_SCardApi->pfn##_name) \
{ \
WLog_DBG(TAG, "Missing function pointer g_SCardApi=%p->" xstr(pfn##_name) "=%p", \
g_SCardApi, g_SCardApi ? g_SCardApi->pfn##_name : NULL); \
status = NULL; \
} \
else \
status = g_SCardApi->pfn##_name(__VA_ARGS__)
if availableBytes return NULL
Definition: TPCircularBuffer.h:109
static const SCardApiFunctionTable * g_SCardApi
Definition: smartcard_inspect.c:71
#define xstr(s)
Definition: smartcard_inspect.c:36
#define TAG
Definition: smartcard_inspect.c:34

◆ SCARDAPI_STUB_CALL_LONG

#define SCARDAPI_STUB_CALL_LONG (   status,
  _name,
  ... 
)
Value:
if (!g_SCardApi || !g_SCardApi->pfn##_name) \
{ \
WLog_DBG(TAG, "Missing function pointer g_SCardApi=%p->" xstr(pfn##_name) "=%p", \
g_SCardApi, g_SCardApi ? g_SCardApi->pfn##_name : NULL); \
status = SCARD_E_NO_SERVICE; \
} \
else \
status = g_SCardApi->pfn##_name(__VA_ARGS__)
#define SCARD_E_NO_SERVICE
Definition: include/winpr/smartcard.h:73

◆ SCARDAPI_STUB_CALL_VOID

#define SCARDAPI_STUB_CALL_VOID (   _name,
  ... 
)
Value:
if (!g_SCardApi || !g_SCardApi->pfn##_name) \
{ \
WLog_DBG(TAG, "Missing function pointer g_SCardApi=%p->" xstr(pfn##_name) "=%p", \
g_SCardApi, g_SCardApi ? g_SCardApi->pfn##_name : NULL); \
} \
else \
g_SCardApi->pfn##_name(__VA_ARGS__)

◆ str

#define str (   s)    #s

◆ TAG

#define TAG   WINPR_TAG("smartcard.inspect")

WinPR: Windows Portable Runtime Smart Card API

Copyright 2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2020 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m Copyright 2020 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ xstr

#define xstr (   s)    str(s)

Function Documentation

◆ Inspect_GetOpenCardNameA()

static LONG WINAPI Inspect_GetOpenCardNameA ( LPOPENCARDNAMEA  pDlgStruc)
static
Here is the call graph for this function:

◆ Inspect_GetOpenCardNameW()

static LONG WINAPI Inspect_GetOpenCardNameW ( LPOPENCARDNAMEW  pDlgStruc)
static
Here is the call graph for this function:

◆ Inspect_InitLog()

static void Inspect_InitLog ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Inspect_RegisterSCardApi()

const SCardApiFunctionTable* Inspect_RegisterSCardApi ( const SCardApiFunctionTable pSCardApi)

WinPR: Windows Portable Runtime Smart Card API

Copyright 2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2020 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m Copyright 2020 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Inspect_SCardAccessStartedEvent()

static HANDLE WINAPI Inspect_SCardAccessStartedEvent ( void  )
static
Here is the call graph for this function:

◆ Inspect_SCardAddReaderToGroupA()

static LONG WINAPI Inspect_SCardAddReaderToGroupA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName,
LPCSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardAddReaderToGroupW()

static LONG WINAPI Inspect_SCardAddReaderToGroupW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName,
LPCWSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardAudit()

static LONG WINAPI Inspect_SCardAudit ( SCARDCONTEXT  hContext,
DWORD  dwEvent 
)
static
Here is the call graph for this function:

◆ Inspect_SCardBeginTransaction()

static LONG WINAPI Inspect_SCardBeginTransaction ( SCARDHANDLE  hCard)
static
Here is the call graph for this function:

◆ Inspect_SCardCancel()

static LONG WINAPI Inspect_SCardCancel ( SCARDCONTEXT  hContext)
static
Here is the call graph for this function:

◆ Inspect_SCardCancelTransaction()

static LONG WINAPI Inspect_SCardCancelTransaction ( SCARDHANDLE  hCard)
static
Here is the call graph for this function:

◆ Inspect_SCardConnectA()

static LONG WINAPI Inspect_SCardConnectA ( SCARDCONTEXT  hContext,
LPCSTR  szReader,
DWORD  dwShareMode,
DWORD  dwPreferredProtocols,
LPSCARDHANDLE  phCard,
LPDWORD  pdwActiveProtocol 
)
static
Here is the call graph for this function:

◆ Inspect_SCardConnectW()

static LONG WINAPI Inspect_SCardConnectW ( SCARDCONTEXT  hContext,
LPCWSTR  szReader,
DWORD  dwShareMode,
DWORD  dwPreferredProtocols,
LPSCARDHANDLE  phCard,
LPDWORD  pdwActiveProtocol 
)
static
Here is the call graph for this function:

◆ Inspect_SCardControl()

static LONG WINAPI Inspect_SCardControl ( SCARDHANDLE  hCard,
DWORD  dwControlCode,
LPCVOID  lpInBuffer,
DWORD  cbInBufferSize,
LPVOID  lpOutBuffer,
DWORD  cbOutBufferSize,
LPDWORD  lpBytesReturned 
)
static
Here is the call graph for this function:

◆ Inspect_SCardDisconnect()

static LONG WINAPI Inspect_SCardDisconnect ( SCARDHANDLE  hCard,
DWORD  dwDisposition 
)
static
Here is the call graph for this function:

◆ Inspect_SCardDlgExtendedError()

static LONG WINAPI Inspect_SCardDlgExtendedError ( void  )
static
Here is the call graph for this function:

◆ Inspect_SCardEndTransaction()

static LONG WINAPI Inspect_SCardEndTransaction ( SCARDHANDLE  hCard,
DWORD  dwDisposition 
)
static
Here is the call graph for this function:

◆ Inspect_SCardEstablishContext()

static LONG WINAPI Inspect_SCardEstablishContext ( DWORD  dwScope,
LPCVOID  pvReserved1,
LPCVOID  pvReserved2,
LPSCARDCONTEXT  phContext 
)
static

Standard Windows Smart Card API

Here is the call graph for this function:

◆ Inspect_SCardForgetCardTypeA()

static LONG WINAPI Inspect_SCardForgetCardTypeA ( SCARDCONTEXT  hContext,
LPCSTR  szCardName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardForgetCardTypeW()

static LONG WINAPI Inspect_SCardForgetCardTypeW ( SCARDCONTEXT  hContext,
LPCWSTR  szCardName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardForgetReaderA()

static LONG WINAPI Inspect_SCardForgetReaderA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardForgetReaderGroupA()

static LONG WINAPI Inspect_SCardForgetReaderGroupA ( SCARDCONTEXT  hContext,
LPCSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardForgetReaderGroupW()

static LONG WINAPI Inspect_SCardForgetReaderGroupW ( SCARDCONTEXT  hContext,
LPCWSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardForgetReaderW()

static LONG WINAPI Inspect_SCardForgetReaderW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardFreeMemory()

static LONG WINAPI Inspect_SCardFreeMemory ( SCARDCONTEXT  hContext,
LPVOID  pvMem 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetAttrib()

static LONG WINAPI Inspect_SCardGetAttrib ( SCARDHANDLE  hCard,
DWORD  dwAttrId,
LPBYTE  pbAttr,
LPDWORD  pcbAttrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetCardTypeProviderNameA()

static LONG WINAPI Inspect_SCardGetCardTypeProviderNameA ( SCARDCONTEXT  hContext,
LPCSTR  szCardName,
DWORD  dwProviderId,
CHAR *  szProvider,
LPDWORD  pcchProvider 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetCardTypeProviderNameW()

static LONG WINAPI Inspect_SCardGetCardTypeProviderNameW ( SCARDCONTEXT  hContext,
LPCWSTR  szCardName,
DWORD  dwProviderId,
WCHAR *  szProvider,
LPDWORD  pcchProvider 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetDeviceTypeIdA()

static LONG WINAPI Inspect_SCardGetDeviceTypeIdA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName,
LPDWORD  pdwDeviceTypeId 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetDeviceTypeIdW()

static LONG WINAPI Inspect_SCardGetDeviceTypeIdW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName,
LPDWORD  pdwDeviceTypeId 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetProviderIdA()

static LONG WINAPI Inspect_SCardGetProviderIdA ( SCARDCONTEXT  hContext,
LPCSTR  szCard,
LPGUID  pguidProviderId 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetProviderIdW()

static LONG WINAPI Inspect_SCardGetProviderIdW ( SCARDCONTEXT  hContext,
LPCWSTR  szCard,
LPGUID  pguidProviderId 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetReaderDeviceInstanceIdA()

static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName,
LPSTR  szDeviceInstanceId,
LPDWORD  pcchDeviceInstanceId 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetReaderDeviceInstanceIdW()

static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName,
LPWSTR  szDeviceInstanceId,
LPDWORD  pcchDeviceInstanceId 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetReaderIconA()

static LONG WINAPI Inspect_SCardGetReaderIconA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName,
LPBYTE  pbIcon,
LPDWORD  pcbIcon 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetReaderIconW()

static LONG WINAPI Inspect_SCardGetReaderIconW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName,
LPBYTE  pbIcon,
LPDWORD  pcbIcon 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetStatusChangeA()

static LONG WINAPI Inspect_SCardGetStatusChangeA ( SCARDCONTEXT  hContext,
DWORD  dwTimeout,
LPSCARD_READERSTATEA  rgReaderStates,
DWORD  cReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetStatusChangeW()

static LONG WINAPI Inspect_SCardGetStatusChangeW ( SCARDCONTEXT  hContext,
DWORD  dwTimeout,
LPSCARD_READERSTATEW  rgReaderStates,
DWORD  cReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardGetTransmitCount()

static LONG WINAPI Inspect_SCardGetTransmitCount ( SCARDHANDLE  hCard,
LPDWORD  pcTransmitCount 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIntroduceCardTypeA()

static LONG WINAPI Inspect_SCardIntroduceCardTypeA ( SCARDCONTEXT  hContext,
LPCSTR  szCardName,
LPCGUID  pguidPrimaryProvider,
LPCGUID  rgguidInterfaces,
DWORD  dwInterfaceCount,
LPCBYTE  pbAtr,
LPCBYTE  pbAtrMask,
DWORD  cbAtrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIntroduceCardTypeW()

static LONG WINAPI Inspect_SCardIntroduceCardTypeW ( SCARDCONTEXT  hContext,
LPCWSTR  szCardName,
LPCGUID  pguidPrimaryProvider,
LPCGUID  rgguidInterfaces,
DWORD  dwInterfaceCount,
LPCBYTE  pbAtr,
LPCBYTE  pbAtrMask,
DWORD  cbAtrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIntroduceReaderA()

static LONG WINAPI Inspect_SCardIntroduceReaderA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName,
LPCSTR  szDeviceName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIntroduceReaderGroupA()

static LONG WINAPI Inspect_SCardIntroduceReaderGroupA ( SCARDCONTEXT  hContext,
LPCSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIntroduceReaderGroupW()

static LONG WINAPI Inspect_SCardIntroduceReaderGroupW ( SCARDCONTEXT  hContext,
LPCWSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIntroduceReaderW()

static LONG WINAPI Inspect_SCardIntroduceReaderW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName,
LPCWSTR  szDeviceName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardIsValidContext()

static LONG WINAPI Inspect_SCardIsValidContext ( SCARDCONTEXT  hContext)
static
Here is the call graph for this function:

◆ Inspect_SCardListCardsA()

static LONG WINAPI Inspect_SCardListCardsA ( SCARDCONTEXT  hContext,
LPCBYTE  pbAtr,
LPCGUID  rgquidInterfaces,
DWORD  cguidInterfaceCount,
CHAR *  mszCards,
LPDWORD  pcchCards 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListCardsW()

static LONG WINAPI Inspect_SCardListCardsW ( SCARDCONTEXT  hContext,
LPCBYTE  pbAtr,
LPCGUID  rgquidInterfaces,
DWORD  cguidInterfaceCount,
WCHAR *  mszCards,
LPDWORD  pcchCards 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListInterfacesA()

static LONG WINAPI Inspect_SCardListInterfacesA ( SCARDCONTEXT  hContext,
LPCSTR  szCard,
LPGUID  pguidInterfaces,
LPDWORD  pcguidInterfaces 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListInterfacesW()

static LONG WINAPI Inspect_SCardListInterfacesW ( SCARDCONTEXT  hContext,
LPCWSTR  szCard,
LPGUID  pguidInterfaces,
LPDWORD  pcguidInterfaces 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListReaderGroupsA()

static LONG WINAPI Inspect_SCardListReaderGroupsA ( SCARDCONTEXT  hContext,
LPSTR  mszGroups,
LPDWORD  pcchGroups 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListReaderGroupsW()

static LONG WINAPI Inspect_SCardListReaderGroupsW ( SCARDCONTEXT  hContext,
LPWSTR  mszGroups,
LPDWORD  pcchGroups 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListReadersA()

static LONG WINAPI Inspect_SCardListReadersA ( SCARDCONTEXT  hContext,
LPCSTR  mszGroups,
LPSTR  mszReaders,
LPDWORD  pcchReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListReadersW()

static LONG WINAPI Inspect_SCardListReadersW ( SCARDCONTEXT  hContext,
LPCWSTR  mszGroups,
LPWSTR  mszReaders,
LPDWORD  pcchReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListReadersWithDeviceInstanceIdA()

static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdA ( SCARDCONTEXT  hContext,
LPCSTR  szDeviceInstanceId,
LPSTR  mszReaders,
LPDWORD  pcchReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardListReadersWithDeviceInstanceIdW()

static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdW ( SCARDCONTEXT  hContext,
LPCWSTR  szDeviceInstanceId,
LPWSTR  mszReaders,
LPDWORD  pcchReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardLocateCardsA()

static LONG WINAPI Inspect_SCardLocateCardsA ( SCARDCONTEXT  hContext,
LPCSTR  mszCards,
LPSCARD_READERSTATEA  rgReaderStates,
DWORD  cReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardLocateCardsByATRA()

static LONG WINAPI Inspect_SCardLocateCardsByATRA ( SCARDCONTEXT  hContext,
LPSCARD_ATRMASK  rgAtrMasks,
DWORD  cAtrs,
LPSCARD_READERSTATEA  rgReaderStates,
DWORD  cReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardLocateCardsByATRW()

static LONG WINAPI Inspect_SCardLocateCardsByATRW ( SCARDCONTEXT  hContext,
LPSCARD_ATRMASK  rgAtrMasks,
DWORD  cAtrs,
LPSCARD_READERSTATEW  rgReaderStates,
DWORD  cReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardLocateCardsW()

static LONG WINAPI Inspect_SCardLocateCardsW ( SCARDCONTEXT  hContext,
LPCWSTR  mszCards,
LPSCARD_READERSTATEW  rgReaderStates,
DWORD  cReaders 
)
static
Here is the call graph for this function:

◆ Inspect_SCardReadCacheA()

static LONG WINAPI Inspect_SCardReadCacheA ( SCARDCONTEXT  hContext,
UUID *  CardIdentifier,
DWORD  FreshnessCounter,
LPSTR  LookupName,
PBYTE  Data,
DWORD *  DataLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardReadCacheW()

static LONG WINAPI Inspect_SCardReadCacheW ( SCARDCONTEXT  hContext,
UUID *  CardIdentifier,
DWORD  FreshnessCounter,
LPWSTR  LookupName,
PBYTE  Data,
DWORD *  DataLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardReconnect()

static LONG WINAPI Inspect_SCardReconnect ( SCARDHANDLE  hCard,
DWORD  dwShareMode,
DWORD  dwPreferredProtocols,
DWORD  dwInitialization,
LPDWORD  pdwActiveProtocol 
)
static
Here is the call graph for this function:

◆ Inspect_SCardReleaseContext()

static LONG WINAPI Inspect_SCardReleaseContext ( SCARDCONTEXT  hContext)
static
Here is the call graph for this function:

◆ Inspect_SCardReleaseStartedEvent()

static void WINAPI Inspect_SCardReleaseStartedEvent ( void  )
static
Here is the call graph for this function:

◆ Inspect_SCardRemoveReaderFromGroupA()

static LONG WINAPI Inspect_SCardRemoveReaderFromGroupA ( SCARDCONTEXT  hContext,
LPCSTR  szReaderName,
LPCSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardRemoveReaderFromGroupW()

static LONG WINAPI Inspect_SCardRemoveReaderFromGroupW ( SCARDCONTEXT  hContext,
LPCWSTR  szReaderName,
LPCWSTR  szGroupName 
)
static
Here is the call graph for this function:

◆ Inspect_SCardSetAttrib()

static LONG WINAPI Inspect_SCardSetAttrib ( SCARDHANDLE  hCard,
DWORD  dwAttrId,
LPCBYTE  pbAttr,
DWORD  cbAttrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardSetCardTypeProviderNameA()

static LONG WINAPI Inspect_SCardSetCardTypeProviderNameA ( SCARDCONTEXT  hContext,
LPCSTR  szCardName,
DWORD  dwProviderId,
LPCSTR  szProvider 
)
static
Here is the call graph for this function:

◆ Inspect_SCardSetCardTypeProviderNameW()

static LONG WINAPI Inspect_SCardSetCardTypeProviderNameW ( SCARDCONTEXT  hContext,
LPCWSTR  szCardName,
DWORD  dwProviderId,
LPCWSTR  szProvider 
)
static
Here is the call graph for this function:

◆ Inspect_SCardState()

static LONG WINAPI Inspect_SCardState ( SCARDHANDLE  hCard,
LPDWORD  pdwState,
LPDWORD  pdwProtocol,
LPBYTE  pbAtr,
LPDWORD  pcbAtrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardStatusA()

static LONG WINAPI Inspect_SCardStatusA ( SCARDHANDLE  hCard,
LPSTR  mszReaderNames,
LPDWORD  pcchReaderLen,
LPDWORD  pdwState,
LPDWORD  pdwProtocol,
LPBYTE  pbAtr,
LPDWORD  pcbAtrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardStatusW()

static LONG WINAPI Inspect_SCardStatusW ( SCARDHANDLE  hCard,
LPWSTR  mszReaderNames,
LPDWORD  pcchReaderLen,
LPDWORD  pdwState,
LPDWORD  pdwProtocol,
LPBYTE  pbAtr,
LPDWORD  pcbAtrLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardTransmit()

static LONG WINAPI Inspect_SCardTransmit ( SCARDHANDLE  hCard,
LPCSCARD_IO_REQUEST  pioSendPci,
LPCBYTE  pbSendBuffer,
DWORD  cbSendLength,
LPSCARD_IO_REQUEST  pioRecvPci,
LPBYTE  pbRecvBuffer,
LPDWORD  pcbRecvLength 
)
static
Here is the call graph for this function:

◆ Inspect_SCardUIDlgSelectCardA()

static LONG WINAPI Inspect_SCardUIDlgSelectCardA ( LPOPENCARDNAMEA_EX  pDlgStruc)
static
Here is the call graph for this function:

◆ Inspect_SCardUIDlgSelectCardW()

static LONG WINAPI Inspect_SCardUIDlgSelectCardW ( LPOPENCARDNAMEW_EX  pDlgStruc)
static
Here is the call graph for this function:

◆ Inspect_SCardWriteCacheA()

static LONG WINAPI Inspect_SCardWriteCacheA ( SCARDCONTEXT  hContext,
UUID *  CardIdentifier,
DWORD  FreshnessCounter,
LPSTR  LookupName,
PBYTE  Data,
DWORD  DataLen 
)
static
Here is the call graph for this function:

◆ Inspect_SCardWriteCacheW()

static LONG WINAPI Inspect_SCardWriteCacheW ( SCARDCONTEXT  hContext,
UUID *  CardIdentifier,
DWORD  FreshnessCounter,
LPWSTR  LookupName,
PBYTE  Data,
DWORD  DataLen 
)
static
Here is the call graph for this function:

Variable Documentation

◆ g_Log

wLog* g_Log = NULL
static

◆ g_LogLevel

const DWORD g_LogLevel = WLOG_DEBUG
static

◆ g_SCardApi

const SCardApiFunctionTable* g_SCardApi = NULL
static

◆ Inspect_SCardApiFunctionTable

const SCardApiFunctionTable Inspect_SCardApiFunctionTable
static

Extended API