chansrv: added winscard.dll wrapper

ulab-next
Jay Sorg 11 years ago
parent ef51e44119
commit e85e4634c7

@ -0,0 +1,14 @@
CC=bcc32.exe
CFLAGS=-O2
OBJS=winscard.obj
winscard.dll: $(OBJS)
$(CC) -ewinscard.dll -tWD $(OBJS)
clean:
-del winscard.dll
-del *.obj
-del *.tds

@ -0,0 +1,78 @@
ClassInstall32
SCardAccessNewReaderEvent
SCardReleaseAllEvents
SCardReleaseNewReaderEvent
SCardAccessStartedEvent
done SCardAddReaderToGroupA
done SCardAddReaderToGroupW
done SCardBeginTransaction
done SCardCancel
done SCardConnectA
done SCardConnectW
done SCardControl
done SCardDisconnect
done SCardEndTransaction
done SCardEstablishContext
done SCardForgetCardTypeA
done SCardForgetCardTypeW
done SCardForgetReaderA
done SCardForgetReaderGroupA
done SCardForgetReaderGroupW
done SCardForgetReaderW
done SCardFreeMemory
done SCardGetAttrib
done SCardGetCardTypeProviderNameA
done SCardGetCardTypeProviderNameW
done SCardGetProviderIdA
done SCardGetProviderIdW
done SCardGetStatusChangeA
done SCardGetStatusChangeW
SCardGetTransmitCount
done SCardIntroduceCardTypeA
done SCardIntroduceCardTypeW
done SCardIntroduceReaderA
done SCardIntroduceReaderGroupA
done SCardIntroduceReaderGroupW
done SCardIntroduceReaderW
done SCardIsValidContext
done SCardListCardsA
done SCardListCardsW
done SCardListInterfacesA
done SCardListInterfacesW
done SCardListReaderGroupsA
done SCardListReaderGroupsW
done SCardListReadersA
done SCardListReadersW
done SCardLocateCardsA
SCardLocateCardsByATRA
SCardLocateCardsByATRW
done SCardLocateCardsW
SCardReadCacheA
SCardReadCacheW
done SCardReconnect
done SCardReleaseContext
SCardReleaseStartedEvent
done SCardRemoveReaderFromGroupA
done SCardRemoveReaderFromGroupW
done SCardSetAttrib
done SCardSetCardTypeProviderNameA
done SCardSetCardTypeProviderNameW
done SCardState
done SCardStatusA
done SCardStatusW
done SCardTransmit
SCardWriteCacheA
SCardWriteCacheW
g_rgSCardRawPci
g_rgSCardT0Pci
g_rgSCardT1Pci

@ -0,0 +1,171 @@
#ifndef _WINSCARD_FUNCS_H
#define _WINSCARD_FUNCS_H
typedef LONG WINAPI
(*tSCardEstablishContext)(DWORD dwScope, LPCVOID pvReserved1,
LPCVOID pvReserved2, LPSCARDCONTEXT phContext);
typedef LONG WINAPI
(*tSCardReleaseContext)(SCARDCONTEXT hContext);
typedef LONG WINAPI
(*tSCardIsValidContext)(SCARDCONTEXT hContext);
typedef LONG WINAPI
(*tSCardListReaderGroupsA)(SCARDCONTEXT hContext, LPSTR mszGroups,
LPDWORD pcchGroups);
typedef LONG WINAPI
(*tSCardListReaderGroupsW)(SCARDCONTEXT hContext, LPWSTR mszGroups,
LPDWORD pcchGroups);
typedef LONG WINAPI
(*tSCardListReadersA)(SCARDCONTEXT hContext, LPCSTR mszGroups,
LPSTR mszReaders, LPDWORD pcchReaders);
typedef LONG WINAPI
(*tSCardListReadersW)(SCARDCONTEXT hContext, LPCWSTR mszGroups,
LPWSTR mszReaders, LPDWORD pcchReaders);
typedef LONG WINAPI
(*tSCardListCardsA)(SCARDCONTEXT hContext, LPCBYTE pbAtr,
LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
LPSTR mszCards, LPDWORD pcchCards);
typedef LONG WINAPI
(*tSCardListCardsW)(SCARDCONTEXT hContext, LPCBYTE pbAtr,
LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
LPWSTR mszCards, LPDWORD pcchCards);
typedef LONG WINAPI
(*tSCardListInterfacesA)(SCARDCONTEXT hContext, LPCSTR szCard,
LPGUID pguidInterfaces, LPDWORD pcguidInterfaces);
typedef LONG WINAPI
(*tSCardListInterfacesW)(SCARDCONTEXT hContext, LPCWSTR szCard,
LPGUID pguidInterfaces, LPDWORD pcguidInterfaces);
typedef LONG WINAPI
(*tSCardGetProviderIdA)(SCARDCONTEXT hContext, LPCSTR szCard,
LPGUID pguidProviderId);
typedef LONG WINAPI
(*tSCardGetProviderIdW)(SCARDCONTEXT hContext, LPCWSTR szCard,
LPGUID pguidProviderId);
typedef LONG WINAPI
(*tSCardGetCardTypeProviderNameA)(SCARDCONTEXT hContext, LPCSTR szCardName,
DWORD dwProviderId, LPSTR szProvider,
LPDWORD pcchProvider);
typedef LONG WINAPI
(*tSCardGetCardTypeProviderNameW)(SCARDCONTEXT hContext, LPCWSTR szCardName,
DWORD dwProviderId, LPWSTR szProvider,
LPDWORD pcchProvider);
typedef LONG WINAPI
(*tSCardIntroduceReaderGroupA)(SCARDCONTEXT hContext, LPCSTR szGroupName);
typedef LONG WINAPI
(*tSCardIntroduceReaderGroupW)(SCARDCONTEXT hContext, LPCWSTR szGroupName);
typedef LONG WINAPI
(*tSCardForgetReaderGroupA)(SCARDCONTEXT hContext, LPCSTR szGroupName);
typedef LONG WINAPI
(*tSCardForgetReaderGroupW)(SCARDCONTEXT hContext, LPCWSTR szGroupName);
typedef LONG WINAPI
(*tSCardIntroduceReaderA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
LPCSTR szDeviceName);
typedef LONG WINAPI
(*tSCardIntroduceReaderW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
LPCWSTR szDeviceName);
typedef LONG WINAPI
(*tSCardForgetReaderA)(SCARDCONTEXT hContext, LPCSTR szReaderName);
typedef LONG WINAPI
(*tSCardForgetReaderW)(SCARDCONTEXT hContext, LPCWSTR szReaderName);
typedef LONG WINAPI
(*tSCardAddReaderToGroupA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
LPCSTR szGroupName);
typedef LONG WINAPI
(*tSCardAddReaderToGroupW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
LPCWSTR szGroupName);
typedef LONG WINAPI
(*tSCardRemoveReaderFromGroupA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
LPCSTR szGroupName);
typedef LONG WINAPI
(*tSCardRemoveReaderFromGroupW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
LPCWSTR szGroupName);
typedef LONG WINAPI
(*tSCardIntroduceCardTypeA)(SCARDCONTEXT hContext, LPCSTR szCardName,
LPCGUID pguidPrimaryProvider,
LPCGUID rgguidInterfaces,
DWORD dwInterfaceCount, LPCBYTE pbAtr,
LPCBYTE pbAtrMask, DWORD cbAtrLen);
typedef LONG WINAPI
(*tSCardIntroduceCardTypeW)(SCARDCONTEXT hContext, LPCWSTR szCardName,
LPCGUID pguidPrimaryProvider,
LPCGUID rgguidInterfaces,
DWORD dwInterfaceCount, LPCBYTE pbAtr,
LPCBYTE pbAtrMask, DWORD cbAtrLen);
typedef LONG WINAPI
(*tSCardSetCardTypeProviderNameA)(SCARDCONTEXT hContext, LPCSTR szCardName,
DWORD dwProviderId, LPCSTR szProvider);
typedef LONG WINAPI
(*tSCardSetCardTypeProviderNameW)(SCARDCONTEXT hContext, LPCWSTR szCardName,
DWORD dwProviderId, LPCWSTR szProvider);
typedef LONG WINAPI
(*tSCardForgetCardTypeA)(SCARDCONTEXT hContext, LPCSTR szCardName);
typedef LONG WINAPI
(*tSCardForgetCardTypeW)(SCARDCONTEXT hContext, LPCWSTR szCardName);
typedef LONG WINAPI
(*tSCardFreeMemory)(SCARDCONTEXT hContext, LPCVOID pvMem);
typedef LONG WINAPI
(*tSCardLocateCardsA)(SCARDCONTEXT hContext, LPCSTR mszCards,
LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders);
typedef LONG WINAPI
(*tSCardLocateCardsW)(SCARDCONTEXT hContext, LPCWSTR mszCards,
LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders);
typedef LONG WINAPI
(*tSCardGetStatusChangeA)(SCARDCONTEXT hContext, DWORD dwTimeout,
LPSCARD_READERSTATEA rgReaderStates,
DWORD cReaders);
typedef LONG WINAPI
(*tSCardGetStatusChangeW)(SCARDCONTEXT hContext, DWORD dwTimeout,
LPSCARD_READERSTATEW rgReaderStates,
DWORD cReaders);
typedef LONG WINAPI
(*tSCardCancel)(SCARDCONTEXT hContext);
typedef LONG WINAPI
(*tSCardConnectA)(SCARDCONTEXT hContext, LPCSTR szReader,
DWORD dwShareMode, DWORD dwPreferredProtocols,
LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
typedef LONG WINAPI
(*tSCardConnectW)(SCARDCONTEXT hContext, LPCWSTR szReader,
DWORD dwShareMode, DWORD dwPreferredProtocols,
LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
typedef LONG WINAPI
(*tSCardReconnect)(SCARDHANDLE hCard, DWORD dwShareMode,
DWORD dwPreferredProtocols, DWORD dwInitialization,
LPDWORD pdwActiveProtocol);
typedef LONG WINAPI
(*tSCardDisconnect)(SCARDHANDLE hCard, DWORD dwDisposition);
typedef LONG WINAPI
(*tSCardBeginTransaction)(SCARDHANDLE hCard);
typedef LONG WINAPI
(*tSCardEndTransaction)(SCARDHANDLE hCard, DWORD dwDisposition);
typedef LONG WINAPI
(*tSCardCancelTransaction)(SCARDHANDLE hCard);
typedef LONG WINAPI
(*tSCardState)(SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol,
LPBYTE pbAtr, LPDWORD pcbAtrLen);
typedef LONG WINAPI
(*tSCardStatusA)(SCARDHANDLE hCard, LPSTR szReaderName, LPDWORD pcchReaderLen,
LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr,
LPDWORD pcbAtrLen);
typedef LONG WINAPI
(*tSCardStatusW)(SCARDHANDLE hCard, LPWSTR szReaderName, LPDWORD pcchReaderLen,
LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr,
LPDWORD pcbAtrLen);
typedef LONG WINAPI
(*tSCardTransmit)(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,
LPCBYTE pbSendBuffer, DWORD cbSendLength,
LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer,
LPDWORD pcbRecvLength);
typedef LONG WINAPI
(*tSCardControl)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer,
DWORD nInBufferSize, LPVOID lpOutBuffer,
DWORD nOutBufferSize, LPDWORD lpBytesReturned);
typedef LONG WINAPI
(*tSCardGetAttrib)(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
LPDWORD pcbAttrLen);
typedef LONG WINAPI
(*tSCardSetAttrib)(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
DWORD cbAttrLen);
#endif

@ -0,0 +1,722 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <windows.h>
#include "winscard-funcs.h"
#define LUNUSED(_param) (void) _param
static tSCardEstablishContext aSCardEstablishContext;
static tSCardReleaseContext aSCardReleaseContext;
static tSCardIsValidContext aSCardIsValidContext;
static tSCardListReaderGroupsA aSCardListReaderGroupsA;
static tSCardListReaderGroupsW aSCardListReaderGroupsW;
static tSCardListReadersA aSCardListReadersA;
static tSCardListReadersW aSCardListReadersW;
static tSCardListCardsA aSCardListCardsA;
static tSCardListCardsW aSCardListCardsW;
static tSCardListInterfacesA aSCardListInterfacesA;
static tSCardListInterfacesW aSCardListInterfacesW;
static tSCardGetProviderIdA aSCardGetProviderIdA;
static tSCardGetProviderIdW aSCardGetProviderIdW;
static tSCardGetCardTypeProviderNameA aSCardGetCardTypeProviderNameA;
static tSCardGetCardTypeProviderNameW aSCardGetCardTypeProviderNameW;
static tSCardIntroduceReaderGroupA aSCardIntroduceReaderGroupA;
static tSCardIntroduceReaderGroupW aSCardIntroduceReaderGroupW;
static tSCardForgetReaderGroupA aSCardForgetReaderGroupA;
static tSCardForgetReaderGroupW aSCardForgetReaderGroupW;
static tSCardIntroduceReaderA aSCardIntroduceReaderA;
static tSCardIntroduceReaderW aSCardIntroduceReaderW;
static tSCardForgetReaderA aSCardForgetReaderA;
static tSCardForgetReaderW aSCardForgetReaderW;
static tSCardAddReaderToGroupA aSCardAddReaderToGroupA;
static tSCardAddReaderToGroupW aSCardAddReaderToGroupW;
static tSCardRemoveReaderFromGroupA aSCardRemoveReaderFromGroupA;
static tSCardRemoveReaderFromGroupW aSCardRemoveReaderFromGroupW;
static tSCardIntroduceCardTypeA aSCardIntroduceCardTypeA;
static tSCardIntroduceCardTypeW aSCardIntroduceCardTypeW;
static tSCardSetCardTypeProviderNameA aSCardSetCardTypeProviderNameA;
static tSCardSetCardTypeProviderNameW aSCardSetCardTypeProviderNameW;
static tSCardForgetCardTypeA aSCardForgetCardTypeA;
static tSCardForgetCardTypeW aSCardForgetCardTypeW;
static tSCardFreeMemory aSCardFreeMemory;
static tSCardLocateCardsA aSCardLocateCardsA;
static tSCardLocateCardsW aSCardLocateCardsW;
static tSCardGetStatusChangeA aSCardGetStatusChangeA;
static tSCardGetStatusChangeW aSCardGetStatusChangeW;
static tSCardCancel aSCardCancel;
static tSCardConnectA aSCardConnectA;
static tSCardConnectW aSCardConnectW;
static tSCardReconnect aSCardReconnect;
static tSCardDisconnect aSCardDisconnect;
static tSCardBeginTransaction aSCardBeginTransaction;
static tSCardEndTransaction aSCardEndTransaction;
static tSCardCancelTransaction aSCardCancelTransaction;
static tSCardState aSCardState;
static tSCardStatusA aSCardStatusA;
static tSCardStatusW aSCardStatusW;
static tSCardTransmit aSCardTransmit;
static tSCardControl aSCardControl;
static tSCardGetAttrib aSCardGetAttrib;
static tSCardSetAttrib aSCardSetAttrib;
//__declspec(dllexport) const SCARD_IO_REQUEST g_rgSCardT0Pci = { 0 };
//__declspec(dllexport) const SCARD_IO_REQUEST g_rgSCardT1Pci = { 0 };
//__declspec(dllexport) const SCARD_IO_REQUEST g_rgSCardRawPci = { 0 };
static int g_true = 1;
#define LLOGLN(_level, _args) do { if ((_level < 1) && g_true) { writeln _args ; } } while (0)
/*****************************************************************************/
static int
writeln(const char* format, ...)
{
va_list ap;
char text[256];
va_start(ap, format);
vsnprintf(text, 255, format, ap);
va_end(ap);
OutputDebugString(text);
return 0;
}
#define LLOAD(_func, _type, _name) \
do { \
_func = (_type) GetProcAddress(lib, _name); \
if (_func == 0) \
{ \
writeln("LLOAD error %s", _name); \
} \
} while (0)
static int g_funcs_loaded = 0;
/*****************************************************************************/
static int __fastcall
load_funsc(void)
{
HMODULE lib;
if (g_funcs_loaded)
{
return 0;
}
g_funcs_loaded = 1;
lib = LoadLibrary("winscard-org.dll");
LLOGLN(0, ("load_funsc: lib %p", lib));
LLOAD(aSCardEstablishContext, tSCardEstablishContext, "SCardEstablishContext");
LLOAD(aSCardReleaseContext, tSCardReleaseContext, "SCardReleaseContext");
LLOAD(aSCardIsValidContext, tSCardIsValidContext, "SCardIsValidContext");
LLOAD(aSCardListReaderGroupsA, tSCardListReaderGroupsA, "SCardListReaderGroupsA");
LLOAD(aSCardListReaderGroupsW, tSCardListReaderGroupsW, "SCardListReaderGroupsW");
LLOAD(aSCardListReadersA, tSCardListReadersA, "SCardListReadersA");
LLOAD(aSCardListReadersW, tSCardListReadersW, "SCardListReadersW");
LLOAD(aSCardListCardsA, tSCardListCardsA, "SCardListCardsA");
LLOAD(aSCardListCardsW, tSCardListCardsW, "SCardListCardsW");
LLOAD(aSCardListInterfacesA, tSCardListInterfacesA, "SCardListInterfacesA");
LLOAD(aSCardListInterfacesW, tSCardListInterfacesW, "SCardListInterfacesW");
LLOAD(aSCardGetProviderIdA, tSCardGetProviderIdA, "SCardGetProviderIdA");
LLOAD(aSCardGetProviderIdW, tSCardGetProviderIdW, "SCardGetProviderIdW");
LLOAD(aSCardGetCardTypeProviderNameA, tSCardGetCardTypeProviderNameA, "SCardGetCardTypeProviderNameA");
LLOAD(aSCardGetCardTypeProviderNameW, tSCardGetCardTypeProviderNameW, "SCardGetCardTypeProviderNameW");
LLOAD(aSCardIntroduceReaderGroupA, tSCardIntroduceReaderGroupA, "SCardIntroduceReaderGroupA");
LLOAD(aSCardIntroduceReaderGroupW, tSCardIntroduceReaderGroupW, "SCardIntroduceReaderGroupW");
LLOAD(aSCardForgetReaderGroupA, tSCardForgetReaderGroupA, "SCardForgetReaderGroupA");
LLOAD(aSCardForgetReaderGroupW, tSCardForgetReaderGroupW, "SCardForgetReaderGroupW");
LLOAD(aSCardIntroduceReaderA, tSCardIntroduceReaderA, "SCardIntroduceReaderA");
LLOAD(aSCardIntroduceReaderW, tSCardIntroduceReaderW, "SCardIntroduceReaderW");
LLOAD(aSCardForgetReaderA, tSCardForgetReaderA, "SCardForgetReaderA");
LLOAD(aSCardForgetReaderW, tSCardForgetReaderW, "SCardForgetReaderW");
LLOAD(aSCardAddReaderToGroupA, tSCardAddReaderToGroupA, "SCardAddReaderToGroupA");
LLOAD(aSCardAddReaderToGroupW, tSCardAddReaderToGroupW, "SCardAddReaderToGroupW");
LLOAD(aSCardRemoveReaderFromGroupA, tSCardRemoveReaderFromGroupA, "SCardRemoveReaderFromGroupA");
LLOAD(aSCardRemoveReaderFromGroupW, tSCardRemoveReaderFromGroupW, "SCardRemoveReaderFromGroupW");
LLOAD(aSCardIntroduceCardTypeA, tSCardIntroduceCardTypeA, "SCardIntroduceCardTypeA");
LLOAD(aSCardIntroduceCardTypeW, tSCardIntroduceCardTypeW, "SCardIntroduceCardTypeW");
LLOAD(aSCardSetCardTypeProviderNameA, tSCardSetCardTypeProviderNameA, "SCardSetCardTypeProviderNameA");
LLOAD(aSCardSetCardTypeProviderNameW, tSCardSetCardTypeProviderNameW, "SCardSetCardTypeProviderNameW");
LLOAD(aSCardForgetCardTypeA, tSCardForgetCardTypeA, "SCardForgetCardTypeA");
LLOAD(aSCardForgetCardTypeW, tSCardForgetCardTypeW, "SCardForgetCardTypeW");
LLOAD(aSCardFreeMemory, tSCardFreeMemory, "SCardFreeMemory");
LLOAD(aSCardLocateCardsA, tSCardLocateCardsA, "SCardLocateCardsA");
LLOAD(aSCardLocateCardsW, tSCardLocateCardsW, "SCardLocateCardsW");
LLOAD(aSCardGetStatusChangeA, tSCardGetStatusChangeA, "SCardGetStatusChangeA");
LLOAD(aSCardGetStatusChangeW, tSCardGetStatusChangeW, "SCardGetStatusChangeW");
LLOAD(aSCardCancel, tSCardCancel, "SCardCancel");
LLOAD(aSCardConnectA, tSCardConnectA, "SCardConnectA");
LLOAD(aSCardConnectW, tSCardConnectW, "SCardConnectW");
LLOAD(aSCardReconnect, tSCardReconnect, "SCardReconnect");
LLOAD(aSCardDisconnect, tSCardDisconnect, "SCardDisconnect");
LLOAD(aSCardBeginTransaction, tSCardBeginTransaction, "SCardBeginTransaction");
LLOAD(aSCardEndTransaction, tSCardEndTransaction, "SCardEndTransaction");
LLOAD(aSCardCancelTransaction, tSCardCancelTransaction, "SCardCancelTransaction");
LLOAD(aSCardState, tSCardState, "SCardState");
LLOAD(aSCardStatusA, tSCardStatusA, "SCardStatusA");
LLOAD(aSCardStatusW, tSCardStatusW, "SCardStatusW");
LLOAD(aSCardTransmit, tSCardTransmit, "SCardTransmit");
LLOAD(aSCardGetAttrib, tSCardGetAttrib, "SCardGetAttrib");
LLOAD(aSCardSetAttrib, tSCardSetAttrib, "SCardSetAttrib");
return 0;
}
/*****************************************************************************/
BOOL WINAPI
DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
BOOL rv;
LUNUSED(hinstDLL);
LUNUSED(lpvReserved);
LLOGLN(10, ("DllEntryPoint: hinstDLL %p fdwReason %d", hinstDLL, fdwReason));
rv = FALSE;
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
LLOGLN(0, ("DllEntryPoint: DLL_PROCESS_ATTACH"));
load_funsc();
rv = TRUE;
break;
case DLL_THREAD_ATTACH:
LLOGLN(10, ("DllEntryPoint: DLL_THREAD_ATTACH"));
rv = TRUE;
break;
case DLL_THREAD_DETACH:
LLOGLN(10, ("DllEntryPoint: DLL_THREAD_DETACH"));
rv = TRUE;
break;
case DLL_PROCESS_DETACH:
LLOGLN(0, ("DllEntryPoint: DLL_PROCESS_DETACH"));
rv = TRUE;
break;
default:
LLOGLN(0, ("DllEntryPoint: unknown fdwReason %d", fdwReason));
break;
}
return rv;
}
/*****************************************************************************/
LONG WINAPI
SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1,
LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
{
LLOGLN(0, ("SCardEstablishContext:"));
return aSCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext);
}
/*****************************************************************************/
LONG WINAPI
SCardReleaseContext(SCARDCONTEXT hContext)
{
LLOGLN(0, ("SCardReleaseContext:"));
return aSCardReleaseContext(hContext);
}
/*****************************************************************************/
LONG WINAPI
SCardIsValidContext(SCARDCONTEXT hContext)
{
LLOGLN(0, ("SCardIsValidContext:"));
return aSCardIsValidContext(hContext);
}
/*****************************************************************************/
LONG WINAPI
SCardListReaderGroupsA(SCARDCONTEXT hContext, LPSTR mszGroups,
LPDWORD pcchGroups)
{
LLOGLN(0, ("SCardListReaderGroupsA:"));
return aSCardListReaderGroupsA(hContext, mszGroups, pcchGroups);
}
/*****************************************************************************/
LONG WINAPI
SCardListReaderGroupsW(SCARDCONTEXT hContext, LPWSTR mszGroups,
LPDWORD pcchGroups)
{
LLOGLN(0, ("SCardListReaderGroupsW:"));
return aSCardListReaderGroupsW(hContext, mszGroups, pcchGroups);
}
/*****************************************************************************/
LONG WINAPI
SCardListReadersA(SCARDCONTEXT hContext, LPCSTR mszGroups,
LPSTR mszReaders, LPDWORD pcchReaders)
{
LLOGLN(0, ("SCardListReadersA:"));
return aSCardListReadersA(hContext, mszGroups, mszReaders, pcchReaders);
}
/*****************************************************************************/
LONG WINAPI
SCardListReadersW(SCARDCONTEXT hContext, LPCWSTR mszGroups,
LPWSTR mszReaders, LPDWORD pcchReaders)
{
char text[256];
LONG rv;
DWORD cchReaders;
text[0] = 0;
if (mszGroups != 0)
{
wcstombs(text, mszGroups, 255);
}
cchReaders = *pcchReaders;
LLOGLN(0, ("SCardListReadersW: mszGroups [%s] cchReaders [%d]", text, *pcchReaders));
rv = aSCardListReadersW(hContext, mszGroups, mszReaders, pcchReaders);
text[0] = 0;
if (cchReaders > 0)
{
wcstombs(text, mszReaders, 255);
}
LLOGLN(0, (" mszReaders [%s] cchReaders [%d]", text, *pcchReaders));
return rv;
}
/*****************************************************************************/
LONG WINAPI
SCardListCardsA(SCARDCONTEXT hContext, LPCBYTE pbAtr,
LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
LPSTR mszCards, LPDWORD pcchCards)
{
LLOGLN(0, ("SCardListCardsA:"));
return aSCardListCardsA(hContext, pbAtr, rgquidInterfaces,
cguidInterfaceCount, mszCards, pcchCards);
}
/*****************************************************************************/
LONG WINAPI
SCardListCardsW(SCARDCONTEXT hContext, LPCBYTE pbAtr,
LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
LPWSTR mszCards, LPDWORD pcchCards)
{
LLOGLN(0, ("SCardListCardsW:"));
return aSCardListCardsW(hContext, pbAtr, rgquidInterfaces,
cguidInterfaceCount, mszCards, pcchCards);
}
/*****************************************************************************/
LONG WINAPI
SCardListInterfacesA(SCARDCONTEXT hContext, LPCSTR szCard,
LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
{
LLOGLN(0, ("SCardListInterfacesA:"));
return aSCardListInterfacesA(hContext, szCard, pguidInterfaces,
pcguidInterfaces);
}
/*****************************************************************************/
LONG WINAPI
SCardListInterfacesW(SCARDCONTEXT hContext, LPCWSTR szCard,
LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
{
LLOGLN(0, ("SCardListInterfacesW:"));
return aSCardListInterfacesW(hContext, szCard, pguidInterfaces,
pcguidInterfaces);
}
/*****************************************************************************/
LONG WINAPI
SCardGetProviderIdA(SCARDCONTEXT hContext, LPCSTR szCard,
LPGUID pguidProviderId)
{
LLOGLN(0, ("SCardGetProviderIdA:"));
return aSCardGetProviderIdA(hContext, szCard, pguidProviderId);
}
/****************************************************************************/
LONG WINAPI
SCardGetProviderIdW(SCARDCONTEXT hContext, LPCWSTR szCard,
LPGUID pguidProviderId)
{
LLOGLN(0, ("SCardGetProviderIdW:"));
return aSCardGetProviderIdW(hContext, szCard, pguidProviderId);
}
/****************************************************************************/
LONG WINAPI
SCardGetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
DWORD dwProviderId, LPSTR szProvider,
LPDWORD pcchProvider)
{
LLOGLN(0, ("SCardGetCardTypeProviderNameA:"));
return aSCardGetCardTypeProviderNameA(hContext, szCardName, dwProviderId,
szProvider, pcchProvider);
}
/*****************************************************************************/
LONG WINAPI
SCardGetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
DWORD dwProviderId, LPWSTR szProvider,
LPDWORD pcchProvider)
{
LLOGLN(0, ("SCardGetCardTypeProviderNameW:"));
return aSCardGetCardTypeProviderNameW(hContext, szCardName, dwProviderId,
szProvider, pcchProvider);
}
/*****************************************************************************/
LONG WINAPI
SCardIntroduceReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName)
{
LLOGLN(0, ("SCardIntroduceReaderGroupA:"));
return aSCardIntroduceReaderGroupA(hContext, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardIntroduceReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName)
{
LLOGLN(0, ("SCardIntroduceReaderGroupW:"));
return aSCardIntroduceReaderGroupW(hContext, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardForgetReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName)
{
LLOGLN(0, ("SCardForgetReaderGroupA:"));
return aSCardForgetReaderGroupA(hContext, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardForgetReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName)
{
LLOGLN(0, ("SCardForgetReaderGroupW:"));
return aSCardForgetReaderGroupW(hContext, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardIntroduceReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName,
LPCSTR szDeviceName)
{
LLOGLN(0, ("SCardIntroduceReaderA:"));
return aSCardIntroduceReaderA(hContext, szReaderName, szDeviceName);
}
/*****************************************************************************/
LONG WINAPI
SCardIntroduceReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
LPCWSTR szDeviceName)
{
LLOGLN(0, ("SCardIntroduceReaderW:"));
return aSCardIntroduceReaderW(hContext, szReaderName, szDeviceName);
}
/*****************************************************************************/
LONG WINAPI
SCardForgetReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName)
{
LLOGLN(0, ("SCardForgetReaderA:"));
return aSCardForgetReaderA(hContext, szReaderName);
}
/*****************************************************************************/
LONG WINAPI
SCardForgetReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName)
{
LLOGLN(0, ("SCardForgetReaderW:"));
return aSCardForgetReaderW(hContext, szReaderName);
}
/*****************************************************************************/
LONG WINAPI
SCardAddReaderToGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
LPCSTR szGroupName)
{
LLOGLN(0, ("SCardAddReaderToGroupA:"));
return aSCardAddReaderToGroupA(hContext, szReaderName, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardAddReaderToGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
LPCWSTR szGroupName)
{
LLOGLN(0, ("SCardAddReaderToGroupW:"));
return aSCardAddReaderToGroupW(hContext, szReaderName, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardRemoveReaderFromGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
LPCSTR szGroupName)
{
LLOGLN(0, ("SCardRemoveReaderFromGroupA:"));
return aSCardRemoveReaderFromGroupA(hContext, szReaderName, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardRemoveReaderFromGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
LPCWSTR szGroupName)
{
LLOGLN(0, ("SCardRemoveReaderFromGroupW:"));
return aSCardRemoveReaderFromGroupW(hContext, szReaderName, szGroupName);
}
/*****************************************************************************/
LONG WINAPI
SCardIntroduceCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName,
LPCGUID pguidPrimaryProvider,
LPCGUID rgguidInterfaces,
DWORD dwInterfaceCount, LPCBYTE pbAtr,
LPCBYTE pbAtrMask, DWORD cbAtrLen)
{
LLOGLN(0, ("SCardIntroduceCardTypeA:"));
return aSCardIntroduceCardTypeA(hContext, szCardName, pguidPrimaryProvider,
rgguidInterfaces, dwInterfaceCount, pbAtr,
pbAtrMask, cbAtrLen);
}
/*****************************************************************************/
LONG WINAPI
SCardIntroduceCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName,
LPCGUID pguidPrimaryProvider, LPCGUID rgguidInterfaces,
DWORD dwInterfaceCount, LPCBYTE pbAtr,
LPCBYTE pbAtrMask, DWORD cbAtrLen)
{
LLOGLN(0, ("SCardIntroduceCardTypeW:"));
return aSCardIntroduceCardTypeW(hContext, szCardName, pguidPrimaryProvider,
rgguidInterfaces, dwInterfaceCount, pbAtr,
pbAtrMask, cbAtrLen);
}
/*****************************************************************************/
LONG WINAPI
SCardSetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
DWORD dwProviderId, LPCSTR szProvider)
{
LLOGLN(0, ("SCardSetCardTypeProviderNameA:"));
return aSCardSetCardTypeProviderNameA(hContext, szCardName,
dwProviderId, szProvider);
}
/*****************************************************************************/
LONG WINAPI
SCardSetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
DWORD dwProviderId, LPCWSTR szProvider)
{
LLOGLN(0, ("SCardSetCardTypeProviderNameW:"));
return aSCardSetCardTypeProviderNameW(hContext, szCardName,
dwProviderId, szProvider);
}
/*****************************************************************************/
LONG WINAPI
SCardForgetCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName)
{
LLOGLN(0, ("SCardForgetCardTypeA:"));
return aSCardForgetCardTypeA(hContext, szCardName);
}
/*****************************************************************************/
LONG WINAPI
SCardForgetCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName)
{
LLOGLN(0, ("SCardForgetCardTypeW:"));
return aSCardForgetCardTypeW(hContext, szCardName);
}
/*****************************************************************************/
LONG WINAPI
SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem)
{
LLOGLN(0, ("SCardFreeMemory:"));
return aSCardFreeMemory(hContext, pvMem);
}
/*****************************************************************************/
LONG WINAPI
SCardLocateCardsA(SCARDCONTEXT hContext, LPCSTR mszCards,
LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders)
{
LLOGLN(0, ("SCardLocateCardsA:"));
return aSCardLocateCardsA(hContext, mszCards, rgReaderStates, cReaders);
}
/*****************************************************************************/
LONG WINAPI
SCardLocateCardsW(SCARDCONTEXT hContext, LPCWSTR mszCards,
LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders)
{
LLOGLN(0, ("SCardLocateCardsW:"));
return aSCardLocateCardsW(hContext, mszCards, rgReaderStates, cReaders);
}
/*****************************************************************************/
LONG WINAPI
SCardGetStatusChangeA(SCARDCONTEXT hContext, DWORD dwTimeout,
LPSCARD_READERSTATEA rgReaderStates,
DWORD cReaders)
{
LLOGLN(0, ("SCardGetStatusChangeA:"));
return aSCardGetStatusChangeA(hContext, dwTimeout, rgReaderStates, cReaders);
}
/*****************************************************************************/
LONG WINAPI
SCardGetStatusChangeW(SCARDCONTEXT hContext, DWORD dwTimeout,
LPSCARD_READERSTATEW rgReaderStates,
DWORD cReaders)
{
LLOGLN(0, ("SCardGetStatusChangeW:"));
return aSCardGetStatusChangeW(hContext, dwTimeout, rgReaderStates, cReaders);
}
/*****************************************************************************/
LONG WINAPI
SCardCancel(SCARDCONTEXT hContext)
{
LLOGLN(0, ("SCardCancel:"));
return aSCardCancel(hContext);
}
/*****************************************************************************/
LONG WINAPI
SCardConnectA(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode,
DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
LPDWORD pdwActiveProtocol)
{
LLOGLN(0, ("SCardConnectA:"));
return aSCardConnectA(hContext, szReader, dwShareMode,
dwPreferredProtocols, phCard,
pdwActiveProtocol);
}
/*****************************************************************************/
LONG WINAPI
SCardConnectW(SCARDCONTEXT hContext, LPCWSTR szReader, DWORD dwShareMode,
DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
LPDWORD pdwActiveProtocol)
{
LLOGLN(0, ("SCardConnectW:"));
return aSCardConnectW(hContext, szReader, dwShareMode,
dwPreferredProtocols, phCard,
pdwActiveProtocol);
}
/*****************************************************************************/
LONG WINAPI
SCardReconnect(SCARDHANDLE hCard, DWORD dwShareMode,
DWORD dwPreferredProtocols, DWORD dwInitialization,
LPDWORD pdwActiveProtocol)
{
LLOGLN(0, ("SCardReconnect:"));
return SCardReconnect(hCard, dwShareMode, dwPreferredProtocols,
dwInitialization, pdwActiveProtocol);
}
/*****************************************************************************/
LONG WINAPI
SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)
{
LLOGLN(0, ("SCardDisconnect:"));
return aSCardDisconnect(hCard, dwDisposition);
}
/*****************************************************************************/
LONG WINAPI
SCardBeginTransaction(SCARDHANDLE hCard)
{
LLOGLN(0, ("SCardBeginTransaction:"));
return aSCardBeginTransaction(hCard);
}
/*****************************************************************************/
LONG WINAPI
SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition)
{
LLOGLN(0, ("SCardEndTransaction:"));
return aSCardEndTransaction(hCard, dwDisposition);
}
/*****************************************************************************/
LONG WINAPI
SCardCancelTransaction(SCARDHANDLE hCard)
{
LLOGLN(0, ("SCardCancelTransaction:"));
return aSCardCancelTransaction(hCard);
}
/*****************************************************************************/
LONG WINAPI
SCardState(SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol,
LPBYTE pbAtr, LPDWORD pcbAtrLen)
{
LLOGLN(0, ("SCardState:"));
return aSCardState(hCard, pdwState, pdwProtocol, pbAtr, pcbAtrLen);
}
/*****************************************************************************/
LONG WINAPI
SCardStatusA(SCARDHANDLE hCard, LPSTR szReaderName, LPDWORD pcchReaderLen,
LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr,
LPDWORD pcbAtrLen)
{
LLOGLN(0, ("SCardStatusA:"));
return aSCardStatusA(hCard, szReaderName, pcchReaderLen,
pdwState, pdwProtocol, pbAtr, pcbAtrLen);
}
/*****************************************************************************/
LONG WINAPI
SCardStatusW(SCARDHANDLE hCard, LPWSTR szReaderName, LPDWORD pcchReaderLen,
LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr,
LPDWORD pcbAtrLen)
{
LLOGLN(0, ("SCardStatusW:"));
return aSCardStatusW(hCard, szReaderName, pcchReaderLen,
pdwState, pdwProtocol, pbAtr, pcbAtrLen);
}
/*****************************************************************************/
LONG WINAPI
SCardTransmit(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,
LPCBYTE pbSendBuffer, DWORD cbSendLength,
LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer,
LPDWORD pcbRecvLength)
{
LLOGLN(0, ("SCardTransmit:"));
return aSCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength,
pioRecvPci, pbRecvBuffer, pcbRecvLength);
}
/*****************************************************************************/
LONG WINAPI
SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer,
DWORD nInBufferSize, LPVOID lpOutBuffer,
DWORD nOutBufferSize, LPDWORD lpBytesReturned)
{
LLOGLN(0, ("SCardControl:"));
return aSCardControl(hCard, dwControlCode, lpInBuffer,
nInBufferSize, lpOutBuffer, nOutBufferSize,
lpBytesReturned);
}
/*****************************************************************************/
LONG WINAPI
SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
LPDWORD pcbAttrLen)
{
LLOGLN(0, ("SCardGetAttrib:"));
return aSCardGetAttrib(hCard, dwAttrId, pbAttr, pcbAttrLen);
}
/*****************************************************************************/
LONG WINAPI
SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
DWORD cbAttrLen)
{
LLOGLN(0, ("SCardSetAttrib:"));
return aSCardSetAttrib(hCard, dwAttrId, pbAttr, cbAttrLen);
}

@ -0,0 +1,53 @@
EXPORTS
SCardEstablishContext
SCardReleaseContext
SCardIsValidContext
SCardListReaderGroupsA
SCardListReaderGroupsW
SCardListReadersA
SCardListReadersW
SCardListCardsA
SCardListCardsW
SCardListInterfacesA
SCardListInterfacesW
SCardGetProviderIdA
SCardGetProviderIdW
SCardGetCardTypeProviderNameA
SCardGetCardTypeProviderNameW
SCardIntroduceReaderGroupA
SCardIntroduceReaderGroupW
SCardForgetReaderGroupA
SCardForgetReaderGroupW
SCardIntroduceReaderA
SCardIntroduceReaderW
SCardForgetReaderA
SCardForgetReaderW
SCardAddReaderToGroupA
SCardAddReaderToGroupW
SCardRemoveReaderFromGroupA
SCardRemoveReaderFromGroupW
SCardIntroduceCardTypeA
SCardIntroduceCardTypeW
SCardSetCardTypeProviderNameA
SCardSetCardTypeProviderNameW
SCardForgetCardTypeA
SCardForgetCardTypeW
SCardFreeMemory
SCardLocateCardsA
SCardLocateCardsW
SCardGetStatusChangeA
SCardGetStatusChangeW
SCardCancel
SCardConnectA
SCardConnectW
SCardReconnect
SCardDisconnect
SCardBeginTransaction
SCardEndTransaction
SCardState
SCardStatusA
SCardStatusW
SCardTransmit
SCardControl
SCardGetAttrib
SCardSetAttrib
Loading…
Cancel
Save