Headers diff for winscard.dll between 6.0.6002.18005-Windows 6.0 and 6.1.7601.17514-Windows 7.0 versions



 winscard.h (6.0.6002.18005-Windows 6.0)   winscard.h (6.1.7601.17514-Windows 7.0) 
skipping to change at line 104 skipping to change at line 104
// calling application must have appropriate // calling application must have appropriate
// access permissions for any database actions.) // access permissions for any database actions.)
#define SCARD_SCOPE_SYSTEM 2 // The context is the system context, and any #define SCARD_SCOPE_SYSTEM 2 // The context is the system context, and any
// database operations are performed within the // database operations are performed within the
// domain of the system. (The calling // domain of the system. (The calling
// application must have appropriate access // application must have appropriate access
// permissions for any database actions.) // permissions for any database actions.)
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardEstablishContext( SCardEstablishContext(
IN DWORD dwScope, __in DWORD dwScope,
IN LPCVOID pvReserved1, __reserved LPCVOID pvReserved1,
IN LPCVOID pvReserved2, __reserved LPCVOID pvReserved2,
OUT LPSCARDCONTEXT phContext); __out LPSCARDCONTEXT phContext);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardReleaseContext( SCardReleaseContext(
IN SCARDCONTEXT hContext); __in SCARDCONTEXT hContext);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIsValidContext( SCardIsValidContext(
IN SCARDCONTEXT hContext); __in SCARDCONTEXT hContext);
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// Smart Card Database Management Services // Smart Card Database Management Services
// //
// The following services provide for managing the Smart Card Database. // The following services provide for managing the Smart Card Database.
// //
#define SCARD_ALL_READERS TEXT("SCard$AllReaders\000") #define SCARD_ALL_READERS TEXT("SCard$AllReaders\000")
skipping to change at line 140 skipping to change at line 140
#define SCARD_PROVIDER_PRIMARY 1 // Primary Provider Id #define SCARD_PROVIDER_PRIMARY 1 // Primary Provider Id
#define SCARD_PROVIDER_CSP 2 // Crypto Service Provider Id #define SCARD_PROVIDER_CSP 2 // Crypto Service Provider Id
#define SCARD_PROVIDER_KSP 3 // Key Storage Provider Id #define SCARD_PROVIDER_KSP 3 // Key Storage Provider Id
// //
// Database Reader routines // Database Reader routines
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListReaderGroupsA( SCardListReaderGroupsA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
OUT LPSTR mszGroups, __nullnullterminated __out_ecount_opt(*pcchGroups) LPSTR mszGroups,
IN OUT LPDWORD pcchGroups); __inout LPDWORD pcchGroups);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListReaderGroupsW( SCardListReaderGroupsW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
OUT LPWSTR mszGroups, __nullnullterminated __out_ecount_opt(*pcchGroups) LPWSTR mszGroups,
IN OUT LPDWORD pcchGroups); __inout LPDWORD pcchGroups);
#ifdef UNICODE #ifdef UNICODE
#define SCardListReaderGroups SCardListReaderGroupsW #define SCardListReaderGroups SCardListReaderGroupsW
#else #else
#define SCardListReaderGroups SCardListReaderGroupsA #define SCardListReaderGroups SCardListReaderGroupsA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListReadersA( SCardListReadersA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR mszGroups, __in_opt LPCSTR mszGroups,
OUT LPSTR mszReaders, __nullnullterminated __out_ecount_opt(*pcchReaders) LPSTR mszReaders,
IN OUT LPDWORD pcchReaders); __inout LPDWORD pcchReaders);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListReadersW( SCardListReadersW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR mszGroups, __in_opt LPCWSTR mszGroups,
OUT LPWSTR mszReaders, __nullnullterminated __out_ecount_opt(*pcchReaders) LPWSTR mszReaders,
IN OUT LPDWORD pcchReaders); __inout LPDWORD pcchReaders);
#ifdef UNICODE #ifdef UNICODE
#define SCardListReaders SCardListReadersW #define SCardListReaders SCardListReadersW
#else #else
#define SCardListReaders SCardListReadersA #define SCardListReaders SCardListReadersA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListCardsA( SCardListCardsA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCBYTE pbAtr, __in_opt LPCBYTE pbAtr,
IN LPCGUID rgquidInterfaces, __in_ecount_opt(cguidInterfaceCount) LPCGUID rgquidInterfaces,
IN DWORD cguidInterfaceCount, __in DWORD cguidInterfaceCount,
OUT LPSTR mszCards, __nullnullterminated __out_ecount_opt(*pcchCards) LPSTR mszCards,
IN OUT LPDWORD pcchCards); __inout LPDWORD pcchCards);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListCardsW( SCardListCardsW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCBYTE pbAtr, __in_opt LPCBYTE pbAtr,
IN LPCGUID rgquidInterfaces, __in_ecount_opt(cguidInterfaceCount) LPCGUID rgquidInterfaces,
IN DWORD cguidInterfaceCount, __in DWORD cguidInterfaceCount,
OUT LPWSTR mszCards, __nullnullterminated __out_ecount_opt(*pcchCards) LPWSTR mszCards,
IN OUT LPDWORD pcchCards); __inout LPDWORD pcchCards);
#ifdef UNICODE #ifdef UNICODE
#define SCardListCards SCardListCardsW #define SCardListCards SCardListCardsW
#else #else
#define SCardListCards SCardListCardsA #define SCardListCards SCardListCardsA
#endif // !UNICODE #endif // !UNICODE
// //
// NOTE: The routine SCardListCards name differs from the PC/SC definition. // NOTE: The routine SCardListCards name differs from the PC/SC definition.
// It should be: // It should be:
// //
// extern WINSCARDAPI LONG WINAPI // extern WINSCARDAPI LONG WINAPI
// SCardListCardTypes( // SCardListCardTypes(
// IN SCARDCONTEXT hContext, // __in SCARDCONTEXT hContext,
// IN LPCBYTE pbAtr, // __in_opt LPCBYTE pbAtr,
// IN LPCGUID rgquidInterfaces, // __in_opt LPCGUID rgquidInterfaces,
// IN DWORD cguidInterfaceCount, // __in DWORD cguidInterfaceCount,
// OUT LPTSTR mszCards, // __out_opt LPTSTR mszCards,
// IN OUT LPDWORD pcchCards); // __inout LPDWORD pcchCards);
// //
// Here's a work-around MACRO: // Here's a work-around MACRO:
#define SCardListCardTypes SCardListCards #define SCardListCardTypes SCardListCards
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListInterfacesA( SCardListInterfacesA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szCard, __in LPCSTR szCard,
OUT LPGUID pguidInterfaces, __out LPGUID pguidInterfaces,
IN OUT LPDWORD pcguidInterfaces); __inout LPDWORD pcguidInterfaces);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardListInterfacesW( SCardListInterfacesW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szCard, __in LPCWSTR szCard,
OUT LPGUID pguidInterfaces, __out LPGUID pguidInterfaces,
IN OUT LPDWORD pcguidInterfaces); __inout LPDWORD pcguidInterfaces);
#ifdef UNICODE #ifdef UNICODE
#define SCardListInterfaces SCardListInterfacesW #define SCardListInterfaces SCardListInterfacesW
#else #else
#define SCardListInterfaces SCardListInterfacesA #define SCardListInterfaces SCardListInterfacesA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetProviderIdA( SCardGetProviderIdA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szCard, __in LPCSTR szCard,
OUT LPGUID pguidProviderId); __out LPGUID pguidProviderId);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetProviderIdW( SCardGetProviderIdW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szCard, __in LPCWSTR szCard,
OUT LPGUID pguidProviderId); __out LPGUID pguidProviderId);
#ifdef UNICODE #ifdef UNICODE
#define SCardGetProviderId SCardGetProviderIdW #define SCardGetProviderId SCardGetProviderIdW
#else #else
#define SCardGetProviderId SCardGetProviderIdA #define SCardGetProviderId SCardGetProviderIdA
#endif // !UNICODE #endif // !UNICODE
// //
// NOTE: The routine SCardGetProviderId in this implementation uses GUIDs. // NOTE: The routine SCardGetProviderId in this implementation uses GUIDs.
// The PC/SC definition uses BYTEs. // The PC/SC definition uses BYTEs.
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetCardTypeProviderNameA( SCardGetCardTypeProviderNameA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szCardName, __in LPCSTR szCardName,
IN DWORD dwProviderId, __in DWORD dwProviderId,
OUT LPSTR szProvider, __out_ecount_opt(*pcchProvider) LPSTR szProvider,
IN OUT LPDWORD pcchProvider); __inout LPDWORD pcchProvider);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetCardTypeProviderNameW( SCardGetCardTypeProviderNameW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szCardName, __in LPCWSTR szCardName,
IN DWORD dwProviderId, __in DWORD dwProviderId,
OUT LPWSTR szProvider, __out_ecount_opt(*pcchProvider) LPWSTR szProvider,
IN OUT LPDWORD pcchProvider); __inout LPDWORD pcchProvider);
#ifdef UNICODE #ifdef UNICODE
#define SCardGetCardTypeProviderName SCardGetCardTypeProviderNameW #define SCardGetCardTypeProviderName SCardGetCardTypeProviderNameW
#else #else
#define SCardGetCardTypeProviderName SCardGetCardTypeProviderNameA #define SCardGetCardTypeProviderName SCardGetCardTypeProviderNameA
#endif // !UNICODE #endif // !UNICODE
// //
// NOTE: This routine is an extension to the PC/SC definitions. // NOTE: This routine is an extension to the PC/SC definitions.
// //
// //
// Database Writer routines // Database Writer routines
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIntroduceReaderGroupA( SCardIntroduceReaderGroupA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szGroupName); __in LPCSTR szGroupName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIntroduceReaderGroupW( SCardIntroduceReaderGroupW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szGroupName); __in LPCWSTR szGroupName);
#ifdef UNICODE #ifdef UNICODE
#define SCardIntroduceReaderGroup SCardIntroduceReaderGroupW #define SCardIntroduceReaderGroup SCardIntroduceReaderGroupW
#else #else
#define SCardIntroduceReaderGroup SCardIntroduceReaderGroupA #define SCardIntroduceReaderGroup SCardIntroduceReaderGroupA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardForgetReaderGroupA( SCardForgetReaderGroupA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szGroupName); __in LPCSTR szGroupName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardForgetReaderGroupW( SCardForgetReaderGroupW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szGroupName); __in LPCWSTR szGroupName);
#ifdef UNICODE #ifdef UNICODE
#define SCardForgetReaderGroup SCardForgetReaderGroupW #define SCardForgetReaderGroup SCardForgetReaderGroupW
#else #else
#define SCardForgetReaderGroup SCardForgetReaderGroupA #define SCardForgetReaderGroup SCardForgetReaderGroupA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIntroduceReaderA( SCardIntroduceReaderA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szReaderName, __in LPCSTR szReaderName,
IN LPCSTR szDeviceName); __in LPCSTR szDeviceName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIntroduceReaderW( SCardIntroduceReaderW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szReaderName, __in LPCWSTR szReaderName,
IN LPCWSTR szDeviceName); __in LPCWSTR szDeviceName);
#ifdef UNICODE #ifdef UNICODE
#define SCardIntroduceReader SCardIntroduceReaderW #define SCardIntroduceReader SCardIntroduceReaderW
#else #else
#define SCardIntroduceReader SCardIntroduceReaderA #define SCardIntroduceReader SCardIntroduceReaderA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardForgetReaderA( SCardForgetReaderA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szReaderName); __in LPCSTR szReaderName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardForgetReaderW( SCardForgetReaderW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szReaderName); __in LPCWSTR szReaderName);
#ifdef UNICODE #ifdef UNICODE
#define SCardForgetReader SCardForgetReaderW #define SCardForgetReader SCardForgetReaderW
#else #else
#define SCardForgetReader SCardForgetReaderA #define SCardForgetReader SCardForgetReaderA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardAddReaderToGroupA( SCardAddReaderToGroupA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szReaderName, __in LPCSTR szReaderName,
IN LPCSTR szGroupName); __in LPCSTR szGroupName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardAddReaderToGroupW( SCardAddReaderToGroupW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szReaderName, __in LPCWSTR szReaderName,
IN LPCWSTR szGroupName); __in LPCWSTR szGroupName);
#ifdef UNICODE #ifdef UNICODE
#define SCardAddReaderToGroup SCardAddReaderToGroupW #define SCardAddReaderToGroup SCardAddReaderToGroupW
#else #else
#define SCardAddReaderToGroup SCardAddReaderToGroupA #define SCardAddReaderToGroup SCardAddReaderToGroupA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardRemoveReaderFromGroupA( SCardRemoveReaderFromGroupA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szReaderName, __in LPCSTR szReaderName,
IN LPCSTR szGroupName); __in LPCSTR szGroupName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardRemoveReaderFromGroupW( SCardRemoveReaderFromGroupW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szReaderName, __in LPCWSTR szReaderName,
IN LPCWSTR szGroupName); __in LPCWSTR szGroupName);
#ifdef UNICODE #ifdef UNICODE
#define SCardRemoveReaderFromGroup SCardRemoveReaderFromGroupW #define SCardRemoveReaderFromGroup SCardRemoveReaderFromGroupW
#else #else
#define SCardRemoveReaderFromGroup SCardRemoveReaderFromGroupA #define SCardRemoveReaderFromGroup SCardRemoveReaderFromGroupA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIntroduceCardTypeA( SCardIntroduceCardTypeA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szCardName, __in LPCSTR szCardName,
IN LPCGUID pguidPrimaryProvider, __in_opt LPCGUID pguidPrimaryProvider,
IN LPCGUID rgguidInterfaces, __in_opt LPCGUID rgguidInterfaces,
IN DWORD dwInterfaceCount, __in DWORD dwInterfaceCount,
IN LPCBYTE pbAtr, __in LPCBYTE pbAtr,
IN LPCBYTE pbAtrMask, __in LPCBYTE pbAtrMask,
IN DWORD cbAtrLen); __in DWORD cbAtrLen);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardIntroduceCardTypeW( SCardIntroduceCardTypeW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szCardName, __in LPCWSTR szCardName,
IN LPCGUID pguidPrimaryProvider, __in_opt LPCGUID pguidPrimaryProvider,
IN LPCGUID rgguidInterfaces, __in_opt LPCGUID rgguidInterfaces,
IN DWORD dwInterfaceCount, __in DWORD dwInterfaceCount,
IN LPCBYTE pbAtr, __in LPCBYTE pbAtr,
IN LPCBYTE pbAtrMask, __in LPCBYTE pbAtrMask,
IN DWORD cbAtrLen); __in DWORD cbAtrLen);
#ifdef UNICODE #ifdef UNICODE
#define SCardIntroduceCardType SCardIntroduceCardTypeW #define SCardIntroduceCardType SCardIntroduceCardTypeW
#else #else
#define SCardIntroduceCardType SCardIntroduceCardTypeA #define SCardIntroduceCardType SCardIntroduceCardTypeA
#endif // !UNICODE #endif // !UNICODE
// //
// NOTE: The routine SCardIntroduceCardType's parameters' order differs from // NOTE: The routine SCardIntroduceCardType's parameters' order differs from
// the PC/SC definition. It should be: // the PC/SC definition. It should be:
// //
// extern WINSCARDAPI LONG WINAPI // extern WINSCARDAPI LONG WINAPI
// SCardIntroduceCardType( // SCardIntroduceCardType(
// IN SCARDCONTEXT hContext, // __in SCARDCONTEXT hContext,
// IN LPCTSTR szCardName, // __in LPCTSTR szCardName,
// IN LPCBYTE pbAtr, // __in LPCBYTE pbAtr,
// IN LPCBYTE pbAtrMask, // __in LPCBYTE pbAtrMask,
// IN DWORD cbAtrLen, // __in DWORD cbAtrLen,
// IN LPCGUID pguidPrimaryProvider, // __in_opt LPCGUID pguidPrimaryProvider,
// IN LPCGUID rgguidInterfaces, // __in_opt LPCGUID rgguidInterfaces,
// IN DWORD dwInterfaceCount); // __in DWORD dwInterfaceCount);
// //
// Here's a work-around MACRO: // Here's a work-around MACRO:
#define PCSCardIntroduceCardType(hContext, szCardName, pbAtr, pbAtrMask, cbAtrLe n, pguidPrimaryProvider, rgguidInterfaces, dwInterfaceCount) \ #define PCSCardIntroduceCardType(hContext, szCardName, pbAtr, pbAtrMask, cbAtrLe n, pguidPrimaryProvider, rgguidInterfaces, dwInterfaceCount) \
SCardIntroduceCardType(hContext, szCardName, pguidPrimaryProvider, rgg uidInterfaces, dwInterfaceCount, pbAtr, pbAtrMask, cbAtrLen) SCardIntroduceCardType(hContext, szCardName, pguidPrimaryProvider, rgg uidInterfaces, dwInterfaceCount, pbAtr, pbAtrMask, cbAtrLen)
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardSetCardTypeProviderNameA( SCardSetCardTypeProviderNameA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szCardName, __in LPCSTR szCardName,
IN DWORD dwProviderId, __in DWORD dwProviderId,
IN LPCSTR szProvider); __in LPCSTR szProvider);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardSetCardTypeProviderNameW( SCardSetCardTypeProviderNameW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szCardName, __in LPCWSTR szCardName,
IN DWORD dwProviderId, __in DWORD dwProviderId,
IN LPCWSTR szProvider); __in LPCWSTR szProvider);
#ifdef UNICODE #ifdef UNICODE
#define SCardSetCardTypeProviderName SCardSetCardTypeProviderNameW #define SCardSetCardTypeProviderName SCardSetCardTypeProviderNameW
#else #else
#define SCardSetCardTypeProviderName SCardSetCardTypeProviderNameA #define SCardSetCardTypeProviderName SCardSetCardTypeProviderNameA
#endif // !UNICODE #endif // !UNICODE
// //
// NOTE: This routine is an extention to the PC/SC specifications. // NOTE: This routine is an extention to the PC/SC specifications.
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardForgetCardTypeA( SCardForgetCardTypeA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szCardName); __in LPCSTR szCardName);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardForgetCardTypeW( SCardForgetCardTypeW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szCardName); __in LPCWSTR szCardName);
#ifdef UNICODE #ifdef UNICODE
#define SCardForgetCardType SCardForgetCardTypeW #define SCardForgetCardType SCardForgetCardTypeW
#else #else
#define SCardForgetCardType SCardForgetCardTypeA #define SCardForgetCardType SCardForgetCardTypeA
#endif // !UNICODE #endif // !UNICODE
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// Service Manager Support Routines // Service Manager Support Routines
// //
// The following services are supplied to simplify the use of the Service // The following services are supplied to simplify the use of the Service
// Manager API. // Manager API.
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardFreeMemory( SCardFreeMemory(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCVOID pvMem); __in LPCVOID pvMem);
#if (NTDDI_VERSION >= NTDDI_WINXP) #if (NTDDI_VERSION >= NTDDI_WINXP)
extern WINSCARDAPI HANDLE WINAPI extern WINSCARDAPI HANDLE WINAPI
SCardAccessStartedEvent(void); SCardAccessStartedEvent(void);
extern WINSCARDAPI void WINAPI extern WINSCARDAPI void WINAPI
SCardReleaseStartedEvent(void); SCardReleaseStartedEvent(void);
#endif // (NTDDI_VERSION >= NTDDI_WINXP) #endif // (NTDDI_VERSION >= NTDDI_WINXP)
// //
skipping to change at line 571 skipping to change at line 571
// set. // set.
#define SCARD_STATE_MUTE 0x00000200 // This implies that the card in the #define SCARD_STATE_MUTE 0x00000200 // This implies that the card in the
// reader is unresponsive or not // reader is unresponsive or not
// supported by the reader or // supported by the reader or
// software. // software.
#define SCARD_STATE_UNPOWERED 0x00000400 // This implies that the card in the #define SCARD_STATE_UNPOWERED 0x00000400 // This implies that the card in the
// reader has not been powered up. // reader has not been powered up.
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardLocateCardsA( SCardLocateCardsA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR mszCards, __in LPCSTR mszCards,
IN OUT LPSCARD_READERSTATEA rgReaderStates, __inout LPSCARD_READERSTATEA rgReaderStates,
IN DWORD cReaders); __in DWORD cReaders);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardLocateCardsW( SCardLocateCardsW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR mszCards, __in LPCWSTR mszCards,
IN OUT LPSCARD_READERSTATEW rgReaderStates, __inout LPSCARD_READERSTATEW rgReaderStates,
IN DWORD cReaders); __in DWORD cReaders);
#ifdef UNICODE #ifdef UNICODE
#define SCardLocateCards SCardLocateCardsW #define SCardLocateCards SCardLocateCardsW
#else #else
#define SCardLocateCards SCardLocateCardsA #define SCardLocateCards SCardLocateCardsA
#endif // !UNICODE #endif // !UNICODE
#if (NTDDI_VERSION >= NTDDI_WINXP) #if (NTDDI_VERSION >= NTDDI_WINXP)
typedef struct _SCARD_ATRMASK { typedef struct _SCARD_ATRMASK {
DWORD cbAtr; // Number of bytes in the ATR and the mask. DWORD cbAtr; // Number of bytes in the ATR and the mask.
BYTE rgbAtr[36]; // Atr of card (extra alignment bytes) BYTE rgbAtr[36]; // Atr of card (extra alignment bytes)
BYTE rgbMask[36]; // Mask for the Atr (extra alignment bytes) BYTE rgbMask[36]; // Mask for the Atr (extra alignment bytes)
} SCARD_ATRMASK, *PSCARD_ATRMASK, *LPSCARD_ATRMASK; } SCARD_ATRMASK, *PSCARD_ATRMASK, *LPSCARD_ATRMASK;
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardLocateCardsByATRA( SCardLocateCardsByATRA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPSCARD_ATRMASK rgAtrMasks, __in LPSCARD_ATRMASK rgAtrMasks,
IN DWORD cAtrs, __in DWORD cAtrs,
IN OUT LPSCARD_READERSTATEA rgReaderStates, __inout LPSCARD_READERSTATEA rgReaderStates,
IN DWORD cReaders); __in DWORD cReaders);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardLocateCardsByATRW( SCardLocateCardsByATRW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPSCARD_ATRMASK rgAtrMasks, __in LPSCARD_ATRMASK rgAtrMasks,
IN DWORD cAtrs, __in DWORD cAtrs,
IN OUT LPSCARD_READERSTATEW rgReaderStates, __inout LPSCARD_READERSTATEW rgReaderStates,
IN DWORD cReaders); __in DWORD cReaders);
#ifdef UNICODE #ifdef UNICODE
#define SCardLocateCardsByATR SCardLocateCardsByATRW #define SCardLocateCardsByATR SCardLocateCardsByATRW
#else #else
#define SCardLocateCardsByATR SCardLocateCardsByATRA #define SCardLocateCardsByATR SCardLocateCardsByATRA
#endif // !UNICODE #endif // !UNICODE
#endif // (NTDDI_VERSION >= NTDDI_WINXP) #endif // (NTDDI_VERSION >= NTDDI_WINXP)
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetStatusChangeA( SCardGetStatusChangeA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN DWORD dwTimeout, __in DWORD dwTimeout,
IN OUT LPSCARD_READERSTATEA rgReaderStates, __inout LPSCARD_READERSTATEA rgReaderStates,
IN DWORD cReaders); __in DWORD cReaders);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetStatusChangeW( SCardGetStatusChangeW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN DWORD dwTimeout, __in DWORD dwTimeout,
IN OUT LPSCARD_READERSTATEW rgReaderStates, __inout LPSCARD_READERSTATEW rgReaderStates,
IN DWORD cReaders); __in DWORD cReaders);
#ifdef UNICODE #ifdef UNICODE
#define SCardGetStatusChange SCardGetStatusChangeW #define SCardGetStatusChange SCardGetStatusChangeW
#else #else
#define SCardGetStatusChange SCardGetStatusChangeA #define SCardGetStatusChange SCardGetStatusChangeA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardCancel( SCardCancel(
IN SCARDCONTEXT hContext); __in SCARDCONTEXT hContext);
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// Card/Reader Communication Services // Card/Reader Communication Services
// //
// The following services provide means for communication with the card. // The following services provide means for communication with the card.
// //
#define SCARD_SHARE_EXCLUSIVE 1 // This application is not willing to share this #define SCARD_SHARE_EXCLUSIVE 1 // This application is not willing to share this
skipping to change at line 660 skipping to change at line 660
// the reader, so it is not available to other // the reader, so it is not available to other
// applications. // applications.
#define SCARD_LEAVE_CARD 0 // Don't do anything special on close #define SCARD_LEAVE_CARD 0 // Don't do anything special on close
#define SCARD_RESET_CARD 1 // Reset the card on close #define SCARD_RESET_CARD 1 // Reset the card on close
#define SCARD_UNPOWER_CARD 2 // Power down the card on close #define SCARD_UNPOWER_CARD 2 // Power down the card on close
#define SCARD_EJECT_CARD 3 // Eject the card on close #define SCARD_EJECT_CARD 3 // Eject the card on close
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardConnectA( SCardConnectA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCSTR szReader, __in LPCSTR szReader,
IN DWORD dwShareMode, __in DWORD dwShareMode,
IN DWORD dwPreferredProtocols, __in DWORD dwPreferredProtocols,
OUT LPSCARDHANDLE phCard, __out LPSCARDHANDLE phCard,
OUT LPDWORD pdwActiveProtocol); __out LPDWORD pdwActiveProtocol);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardConnectW( SCardConnectW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN LPCWSTR szReader, __in LPCWSTR szReader,
IN DWORD dwShareMode, __in DWORD dwShareMode,
IN DWORD dwPreferredProtocols, __in DWORD dwPreferredProtocols,
OUT LPSCARDHANDLE phCard, __out LPSCARDHANDLE phCard,
OUT LPDWORD pdwActiveProtocol); __out LPDWORD pdwActiveProtocol);
#ifdef UNICODE #ifdef UNICODE
#define SCardConnect SCardConnectW #define SCardConnect SCardConnectW
#else #else
#define SCardConnect SCardConnectA #define SCardConnect SCardConnectA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardReconnect( SCardReconnect(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN DWORD dwShareMode, __in DWORD dwShareMode,
IN DWORD dwPreferredProtocols, __in DWORD dwPreferredProtocols,
IN DWORD dwInitialization, __in DWORD dwInitialization,
OUT LPDWORD pdwActiveProtocol); __out_opt LPDWORD pdwActiveProtocol);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardDisconnect( SCardDisconnect(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN DWORD dwDisposition); __in DWORD dwDisposition);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardBeginTransaction( SCardBeginTransaction(
IN SCARDHANDLE hCard); __in SCARDHANDLE hCard);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardEndTransaction( SCardEndTransaction(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN DWORD dwDisposition); __in DWORD dwDisposition);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardCancelTransaction( SCardCancelTransaction(
IN SCARDHANDLE hCard); __in SCARDHANDLE hCard);
// //
// NOTE: This call corresponds to the PC/SC SCARDCOMM::Cancel routine, // NOTE: This call corresponds to the PC/SC SCARDCOMM::Cancel routine,
// terminating a blocked SCardBeginTransaction service. // terminating a blocked SCardBeginTransaction service.
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardState( SCardState(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
OUT LPDWORD pdwState, __out LPDWORD pdwState,
OUT LPDWORD pdwProtocol, __out LPDWORD pdwProtocol,
OUT LPBYTE pbAtr, __out_bcount(*pcbAtrLen) LPBYTE pbAtr,
IN OUT LPDWORD pcbAtrLen); __inout LPDWORD pcbAtrLen);
// //
// NOTE: SCardState is an obsolete routine. PC/SC has replaced it with // NOTE: SCardState is an obsolete routine. PC/SC has replaced it with
// SCardStatus. // SCardStatus.
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardStatusA( SCardStatusA(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
OUT LPSTR szReaderName, __nullnullterminated __out_ecount_opt(*pcchReaderLen) LPSTR mszReaderNames,
IN OUT LPDWORD pcchReaderLen, __inout_opt LPDWORD pcchReaderLen,
OUT LPDWORD pdwState, __out_opt LPDWORD pdwState,
OUT LPDWORD pdwProtocol, __out_opt LPDWORD pdwProtocol,
OUT LPBYTE pbAtr, __out_ecount_opt(*pcbAtrLen) LPBYTE pbAtr,
IN OUT LPDWORD pcbAtrLen); __inout_opt LPDWORD pcbAtrLen);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardStatusW( SCardStatusW(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
OUT LPWSTR szReaderName, __nullnullterminated __out_ecount_opt(*pcchReaderLen) LPWSTR mszReaderNames,
IN OUT LPDWORD pcchReaderLen, __inout_opt LPDWORD pcchReaderLen,
OUT LPDWORD pdwState, __out_opt LPDWORD pdwState,
OUT LPDWORD pdwProtocol, __out_opt LPDWORD pdwProtocol,
OUT LPBYTE pbAtr, __out_ecount_opt(*pcbAtrLen) LPBYTE pbAtr,
IN OUT LPDWORD pcbAtrLen); __inout_opt LPDWORD pcbAtrLen);
#ifdef UNICODE #ifdef UNICODE
#define SCardStatus SCardStatusW #define SCardStatus SCardStatusW
#else #else
#define SCardStatus SCardStatusA #define SCardStatus SCardStatusA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardTransmit( SCardTransmit(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN LPCSCARD_IO_REQUEST pioSendPci, __in LPCSCARD_IO_REQUEST pioSendPci,
IN LPCBYTE pbSendBuffer, __in_bcount(cbSendLength) LPCBYTE pbSendBuffer,
IN DWORD cbSendLength, __in DWORD cbSendLength,
IN OUT LPSCARD_IO_REQUEST pioRecvPci, __inout_opt LPSCARD_IO_REQUEST pioRecvPci,
OUT LPBYTE pbRecvBuffer, __out_bcount(*pcbRecvLength) LPBYTE pbRecvBuffer,
IN OUT LPDWORD pcbRecvLength); __inout LPDWORD pcbRecvLength);
#if (NTDDI_VERSION >= NTDDI_LONGHORN) #if (NTDDI_VERSION >= NTDDI_VISTA)
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetTransmitCount( SCardGetTransmitCount(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
OUT LPDWORD pcTransmitCount); __out LPDWORD pcTransmitCount);
#endif // (NTDDI_VERSION >= NTDDI_LONGHORN) #endif // (NTDDI_VERSION >= NTDDI_VISTA)
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// Reader Control Routines // Reader Control Routines
// //
// The following services provide for direct, low-level manipulation of the // The following services provide for direct, low-level manipulation of the
// reader by the calling application allowing it control over the // reader by the calling application allowing it control over the
// attributes of the communications with the card. // attributes of the communications with the card.
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardControl( SCardControl(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN DWORD dwControlCode, __in DWORD dwControlCode,
IN LPCVOID lpInBuffer, __in_bcount(cbInBufferSize) LPCVOID lpInBuffer,
IN DWORD nInBufferSize, __in DWORD cbInBufferSize,
OUT LPVOID lpOutBuffer, __out_bcount(cbOutBufferSize) LPVOID lpOutBuffer,
IN DWORD nOutBufferSize, __in DWORD cbOutBufferSize,
OUT LPDWORD lpBytesReturned); __out LPDWORD lpBytesReturned);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardGetAttrib( SCardGetAttrib(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN DWORD dwAttrId, __in DWORD dwAttrId,
OUT LPBYTE pbAttr, __out_bcount_opt(*pcbAttrLen) LPBYTE pbAttr,
IN OUT LPDWORD pcbAttrLen); __inout LPDWORD pcbAttrLen);
// //
// NOTE: The routine SCardGetAttrib's name differs from the PC/SC definition. // NOTE: The routine SCardGetAttrib's name differs from the PC/SC definition.
// It should be: // It should be:
// //
// extern WINSCARDAPI LONG WINAPI // extern WINSCARDAPI LONG WINAPI
// SCardGetReaderCapabilities( // SCardGetReaderCapabilities(
// IN SCARDHANDLE hCard, // __in SCARDHANDLE hCard,
// IN DWORD dwTag, // __in DWORD dwTag,
// OUT LPBYTE pbAttr, // __out LPBYTE pbAttr,
// IN OUT LPDWORD pcbAttrLen); // __inout LPDWORD pcbAttrLen);
// //
// Here's a work-around MACRO: // Here's a work-around MACRO:
#define SCardGetReaderCapabilities SCardGetAttrib #define SCardGetReaderCapabilities SCardGetAttrib
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardSetAttrib( SCardSetAttrib(
IN SCARDHANDLE hCard, __in SCARDHANDLE hCard,
IN DWORD dwAttrId, __in DWORD dwAttrId,
IN LPCBYTE pbAttr, __in_bcount(cbAttrLen) LPCBYTE pbAttr,
IN DWORD cbAttrLen); __in DWORD cbAttrLen);
// //
// NOTE: The routine SCardSetAttrib's name differs from the PC/SC definition. // NOTE: The routine SCardSetAttrib's name differs from the PC/SC definition.
// It should be: // It should be:
// //
// extern WINSCARDAPI LONG WINAPI // extern WINSCARDAPI LONG WINAPI
// SCardSetReaderCapabilities( // SCardSetReaderCapabilities(
// IN SCARDHANDLE hCard, // __in SCARDHANDLE hCard,
// IN DWORD dwTag, // __in DWORD dwTag,
// OUT LPBYTE pbAttr, // __in LPCBYTE pbAttr,
// IN OUT LPDWORD pcbAttrLen); // __in DWORD cbAttrLen);
// //
// Here's a work-around MACRO: // Here's a work-around MACRO:
#define SCardSetReaderCapabilities SCardSetAttrib #define SCardSetReaderCapabilities SCardSetAttrib
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// Smart Card Dialog definitions // Smart Card Dialog definitions
// //
// The following section contains structures and exported function // The following section contains structures and exported function
skipping to change at line 841 skipping to change at line 841
// Defined constants // Defined constants
// Flags // Flags
#define SC_DLG_MINIMAL_UI 0x01 #define SC_DLG_MINIMAL_UI 0x01
#define SC_DLG_NO_UI 0x02 #define SC_DLG_NO_UI 0x02
#define SC_DLG_FORCE_UI 0x04 #define SC_DLG_FORCE_UI 0x04
#define SCERR_NOCARDNAME 0x4000 #define SCERR_NOCARDNAME 0x4000
#define SCERR_NOGUIDS 0x8000 #define SCERR_NOGUIDS 0x8000
typedef SCARDHANDLE (WINAPI *LPOCNCONNPROCA) (IN SCARDCONTEXT, IN LPSTR, IN LPST typedef SCARDHANDLE (WINAPI *LPOCNCONNPROCA) (__in SCARDCONTEXT, __in LPSTR, __i
R, IN PVOID); n LPSTR, __in PVOID);
typedef SCARDHANDLE (WINAPI *LPOCNCONNPROCW) (IN SCARDCONTEXT, IN LPWSTR, IN LPW typedef SCARDHANDLE (WINAPI *LPOCNCONNPROCW) (__in SCARDCONTEXT, __in LPWSTR, __
STR, IN PVOID); in LPWSTR, __in PVOID);
#ifdef UNICODE #ifdef UNICODE
#define LPOCNCONNPROC LPOCNCONNPROCW #define LPOCNCONNPROC LPOCNCONNPROCW
#else #else
#define LPOCNCONNPROC LPOCNCONNPROCA #define LPOCNCONNPROC LPOCNCONNPROCA
#endif // !UNICODE #endif // !UNICODE
typedef BOOL (WINAPI *LPOCNCHKPROC) (IN SCARDCONTEXT, IN SCARDHANDLE, IN PVOID); typedef BOOL (WINAPI *LPOCNCHKPROC) (__in SCARDCONTEXT, __in SCARDHANDLE, __in P
typedef void (WINAPI *LPOCNDSCPROC) (IN SCARDCONTEXT, IN SCARDHANDLE, IN PVOID); VOID);
typedef void (WINAPI *LPOCNDSCPROC) (__in SCARDCONTEXT, __in SCARDHANDLE, __in P
VOID);
// //
// OPENCARD_SEARCH_CRITERIA: In order to specify a user-extended search, // OPENCARD_SEARCH_CRITERIA: In order to specify a user-extended search,
// lpfnCheck must not be NULL. Moreover, the connection to be made to the // lpfnCheck must not be NULL. Moreover, the connection to be made to the
// card before performing the callback must be indicated by either providing // card before performing the callback must be indicated by either providing
// lpfnConnect and lpfnDisconnect OR by setting dwShareMode. // lpfnConnect and lpfnDisconnect OR by setting dwShareMode.
// If both the connection callbacks and dwShareMode are non-NULL, the callbacks // If both the connection callbacks and dwShareMode are non-NULL, the callbacks
// will be used. // will be used.
// //
skipping to change at line 1069 skipping to change at line 1069
LPOPENCARDNAMEW); LPOPENCARDNAMEW);
#ifdef UNICODE #ifdef UNICODE
#define GetOpenCardName GetOpenCardNameW #define GetOpenCardName GetOpenCardNameW
#else #else
#define GetOpenCardName GetOpenCardNameA #define GetOpenCardName GetOpenCardNameA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardDlgExtendedError (void); SCardDlgExtendedError (void);
#if (NTDDI_VERSION >= NTDDI_LONGHORN) #if (NTDDI_VERSION >= NTDDI_VISTA)
// //
// Smartcard Caching API // Smartcard Caching API
// //
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardReadCacheA( SCardReadCacheA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN UUID *CardIdentifier, __in UUID *CardIdentifier,
IN DWORD FreshnessCounter, __in DWORD FreshnessCounter,
IN LPSTR LookupName, __in LPSTR LookupName,
OUT PBYTE Data, __out_bcount(*DataLen) PBYTE Data,
OUT DWORD *DataLen); __out DWORD *DataLen);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardReadCacheW( SCardReadCacheW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN UUID *CardIdentifier, __in UUID *CardIdentifier,
IN DWORD FreshnessCounter, __in DWORD FreshnessCounter,
IN LPWSTR LookupName, __in LPWSTR LookupName,
OUT PBYTE Data, __out_bcount(*DataLen) PBYTE Data,
OUT DWORD *DataLen); __out DWORD *DataLen);
#ifdef UNICODE #ifdef UNICODE
#define SCardReadCache SCardReadCacheW #define SCardReadCache SCardReadCacheW
#else #else
#define SCardReadCache SCardReadCacheA #define SCardReadCache SCardReadCacheA
#endif // !UNICODE #endif // !UNICODE
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardWriteCacheA( SCardWriteCacheA(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN UUID *CardIdentifier, __in UUID *CardIdentifier,
IN DWORD FreshnessCounter, __in DWORD FreshnessCounter,
IN LPSTR LookupName, __in LPSTR LookupName,
IN PBYTE Data, __in_bcount(DataLen) PBYTE Data,
IN DWORD DataLen); __in DWORD DataLen);
extern WINSCARDAPI LONG WINAPI extern WINSCARDAPI LONG WINAPI
SCardWriteCacheW( SCardWriteCacheW(
IN SCARDCONTEXT hContext, __in SCARDCONTEXT hContext,
IN UUID *CardIdentifier, __in UUID *CardIdentifier,
IN DWORD FreshnessCounter, __in DWORD FreshnessCounter,
IN LPWSTR LookupName, __in LPWSTR LookupName,
IN PBYTE Data, __in_bcount(DataLen) PBYTE Data,
IN DWORD DataLen); __in DWORD DataLen);
#ifdef UNICODE #ifdef UNICODE
#define SCardWriteCache SCardWriteCacheW #define SCardWriteCache SCardWriteCacheW
#else #else
#define SCardWriteCache SCardWriteCacheA #define SCardWriteCache SCardWriteCacheA
#endif // !UNICODE #endif // !UNICODE
#endif // (NTDDI_VERSION >= NTDDI_LONGHORN) #endif // (NTDDI_VERSION >= NTDDI_VISTA)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // _WINSCARD_H_ #endif // _WINSCARD_H_
 End of changes. 69 change blocks. 
265 lines changed or deleted 267 lines changed or added

This html diff was produced by rfcdiff 1.41.