22#ifndef WINPR_SMARTCARD_PCSC_PRIVATE_H
23#define WINPR_SMARTCARD_PCSC_PRIVATE_H
27#include <winpr/platform.h>
28#include <winpr/smartcard.h>
49typedef uint8_t PCSC_BYTE;
51typedef uint8_t PCSC_UCHAR;
52typedef PCSC_UCHAR* PCSC_PUCHAR;
53typedef uint16_t PCSC_USHORT;
55#ifndef __COREFOUNDATION_CFPLUGINCOM__
56typedef uint32_t PCSC_ULONG;
57typedef void* PCSC_LPVOID;
58typedef int16_t PCSC_BOOL;
61typedef PCSC_ULONG* PCSC_PULONG;
62typedef const void* PCSC_LPCVOID;
63typedef uint32_t PCSC_DWORD;
64typedef PCSC_DWORD* PCSC_PDWORD;
65typedef uint16_t PCSC_WORD;
66typedef int32_t PCSC_LONG;
67typedef const char* PCSC_LPCSTR;
68typedef const PCSC_BYTE* PCSC_LPCBYTE;
69typedef PCSC_BYTE* PCSC_LPBYTE;
70typedef PCSC_DWORD* PCSC_LPDWORD;
71typedef char* PCSC_LPSTR;
76typedef unsigned char PCSC_BYTE;
78typedef unsigned char PCSC_UCHAR;
79typedef PCSC_UCHAR* PCSC_PUCHAR;
80typedef unsigned short PCSC_USHORT;
82#ifndef __COREFOUNDATION_CFPLUGINCOM__
83typedef unsigned long PCSC_ULONG;
84typedef void* PCSC_LPVOID;
87typedef const void* PCSC_LPCVOID;
88typedef unsigned long PCSC_DWORD;
89typedef PCSC_DWORD* PCSC_PDWORD;
90typedef long PCSC_LONG;
91typedef const char* PCSC_LPCSTR;
92typedef const PCSC_BYTE* PCSC_LPCBYTE;
93typedef PCSC_BYTE* PCSC_LPBYTE;
94typedef PCSC_DWORD* PCSC_LPDWORD;
95typedef char* PCSC_LPSTR;
99typedef PCSC_LPSTR PCSC_LPTSTR;
100typedef PCSC_LPCSTR PCSC_LPCTSTR;
103typedef short PCSC_BOOL;
104typedef unsigned short PCSC_WORD;
105typedef PCSC_ULONG* PCSC_PULONG;
109#define PCSC_SCARD_UNKNOWN 0x0001
110#define PCSC_SCARD_ABSENT 0x0002
111#define PCSC_SCARD_PRESENT 0x0004
112#define PCSC_SCARD_SWALLOWED 0x0008
113#define PCSC_SCARD_POWERED 0x0010
114#define PCSC_SCARD_NEGOTIABLE 0x0020
115#define PCSC_SCARD_SPECIFIC 0x0040
117#define PCSC_SCARD_PROTOCOL_RAW 0x00000004u
118#define PCSC_SCARD_PROTOCOL_T15 0x00000008u
120#define PCSC_MAX_BUFFER_SIZE 264
121#define PCSC_MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1 << 16) + 3 + 2)
123#define PCSC_MAX_ATR_SIZE 33
125#define PCSC_SCARD_AUTOALLOCATE (PCSC_DWORD)(-1)
127#define PCSC_SCARD_CTL_CODE(code) (0x42000000 + (code))
128#define PCSC_CM_IOCTL_GET_FEATURE_REQUEST PCSC_SCARD_CTL_CODE(3400)
143 PCSC_DWORD dwCurrentState;
144 PCSC_DWORD dwEventState;
146 BYTE rgbAtr[PCSC_MAX_ATR_SIZE];
151 PCSC_DWORD dwProtocol;
152 PCSC_DWORD cbPciLength;
170int PCSC_InitializeSCardApi(
void);