Blame winpr/include/winpr/smartcard.h

Packit Service fa4841
/**
Packit Service fa4841
 * WinPR: Windows Portable Runtime
Packit Service fa4841
 * Smart Card API
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit Service fa4841
 * Copyright 2020 Armin Novak <armin.novak@thincast.com>
Packit Service fa4841
 * Copyright 2020 Thincast Technologies GmbH
Packit Service fa4841
 *
Packit Service fa4841
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
 * you may not use this file except in compliance with the License.
Packit Service fa4841
 * You may obtain a copy of the License at
Packit Service fa4841
 *
Packit Service fa4841
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
 *
Packit Service fa4841
 * Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
 * See the License for the specific language governing permissions and
Packit Service fa4841
 * limitations under the License.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#ifndef WINPR_SMARTCARD_H
Packit Service fa4841
#define WINPR_SMARTCARD_H
Packit Service fa4841
Packit Service fa4841
#include <winpr/winpr.h>
Packit Service fa4841
#include <winpr/wtypes.h>
Packit Service fa4841
Packit Service fa4841
#include <winpr/io.h>
Packit Service fa4841
#include <winpr/error.h>
Packit Service fa4841
Packit Service fa4841
#ifndef _WINSCARD_H_
Packit Service fa4841
#define _WINSCARD_H_ /* do not include winscard.h */
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#ifndef SCARD_S_SUCCESS
Packit Service fa4841
Packit Service fa4841
#define SCARD_S_SUCCESS NO_ERROR
Packit Service fa4841
Packit Service fa4841
#define SCARD_F_INTERNAL_ERROR (HRESULT)(0x80100001L)
Packit Service fa4841
#define SCARD_E_CANCELLED (HRESULT)(0x80100002L)
Packit Service fa4841
#define SCARD_E_INVALID_HANDLE (HRESULT)(0x80100003L)
Packit Service fa4841
#define SCARD_E_INVALID_PARAMETER (HRESULT)(0x80100004L)
Packit Service fa4841
#define SCARD_E_INVALID_TARGET (HRESULT)(0x80100005L)
Packit Service fa4841
#define SCARD_E_NO_MEMORY (HRESULT)(0x80100006L)
Packit Service fa4841
#define SCARD_F_WAITED_TOO_LONG (HRESULT)(0x80100007L)
Packit Service fa4841
#define SCARD_E_INSUFFICIENT_BUFFER (HRESULT)(0x80100008L)
Packit Service fa4841
#define SCARD_E_UNKNOWN_READER (HRESULT)(0x80100009L)
Packit Service fa4841
#define SCARD_E_TIMEOUT (HRESULT)(0x8010000AL)
Packit Service fa4841
#define SCARD_E_SHARING_VIOLATION (HRESULT)(0x8010000BL)
Packit Service fa4841
#define SCARD_E_NO_SMARTCARD (HRESULT)(0x8010000CL)
Packit Service fa4841
#define SCARD_E_UNKNOWN_CARD (HRESULT)(0x8010000DL)
Packit Service fa4841
#define SCARD_E_CANT_DISPOSE (HRESULT)(0x8010000EL)
Packit Service fa4841
#define SCARD_E_PROTO_MISMATCH (HRESULT)(0x8010000FL)
Packit Service fa4841
#define SCARD_E_NOT_READY (HRESULT)(0x80100010L)
Packit Service fa4841
#define SCARD_E_INVALID_VALUE (HRESULT)(0x80100011L)
Packit Service fa4841
#define SCARD_E_SYSTEM_CANCELLED (HRESULT)(0x80100012L)
Packit Service fa4841
#define SCARD_F_COMM_ERROR (HRESULT)(0x80100013L)
Packit Service fa4841
#define SCARD_F_UNKNOWN_ERROR (HRESULT)(0x80100014L)
Packit Service fa4841
#define SCARD_E_INVALID_ATR (HRESULT)(0x80100015L)
Packit Service fa4841
#define SCARD_E_NOT_TRANSACTED (HRESULT)(0x80100016L)
Packit Service fa4841
#define SCARD_E_READER_UNAVAILABLE (HRESULT)(0x80100017L)
Packit Service fa4841
#define SCARD_P_SHUTDOWN (HRESULT)(0x80100018L)
Packit Service fa4841
#define SCARD_E_PCI_TOO_SMALL (HRESULT)(0x80100019L)
Packit Service fa4841
#define SCARD_E_READER_UNSUPPORTED (HRESULT)(0x8010001AL)
Packit Service fa4841
#define SCARD_E_DUPLICATE_READER (HRESULT)(0x8010001BL)
Packit Service fa4841
#define SCARD_E_CARD_UNSUPPORTED (HRESULT)(0x8010001CL)
Packit Service fa4841
#define SCARD_E_NO_SERVICE (HRESULT)(0x8010001DL)
Packit Service fa4841
#define SCARD_E_SERVICE_STOPPED (HRESULT)(0x8010001EL)
Packit Service fa4841
#define SCARD_E_UNEXPECTED (HRESULT)(0x8010001FL)
Packit Service fa4841
#define SCARD_E_ICC_INSTALLATION (HRESULT)(0x80100020L)
Packit Service fa4841
#define SCARD_E_ICC_CREATEORDER (HRESULT)(0x80100021L)
Packit Service fa4841
#define SCARD_E_UNSUPPORTED_FEATURE (HRESULT)(0x80100022L)
Packit Service fa4841
#define SCARD_E_DIR_NOT_FOUND (HRESULT)(0x80100023L)
Packit Service fa4841
#define SCARD_E_FILE_NOT_FOUND (HRESULT)(0x80100024L)
Packit Service fa4841
#define SCARD_E_NO_DIR (HRESULT)(0x80100025L)
Packit Service fa4841
#define SCARD_E_NO_FILE (HRESULT)(0x80100026L)
Packit Service fa4841
#define SCARD_E_NO_ACCESS (HRESULT)(0x80100027L)
Packit Service fa4841
#define SCARD_E_WRITE_TOO_MANY (HRESULT)(0x80100028L)
Packit Service fa4841
#define SCARD_E_BAD_SEEK (HRESULT)(0x80100029L)
Packit Service fa4841
#define SCARD_E_INVALID_CHV (HRESULT)(0x8010002AL)
Packit Service fa4841
#define SCARD_E_UNKNOWN_RES_MNG (HRESULT)(0x8010002BL)
Packit Service fa4841
#define SCARD_E_NO_SUCH_CERTIFICATE (HRESULT)(0x8010002CL)
Packit Service fa4841
#define SCARD_E_CERTIFICATE_UNAVAILABLE (HRESULT)(0x8010002DL)
Packit Service fa4841
#define SCARD_E_NO_READERS_AVAILABLE (HRESULT)(0x8010002EL)
Packit Service fa4841
#define SCARD_E_COMM_DATA_LOST (HRESULT)(0x8010002FL)
Packit Service fa4841
#define SCARD_E_NO_KEY_CONTAINER (HRESULT)(0x80100030L)
Packit Service fa4841
#define SCARD_E_SERVER_TOO_BUSY (HRESULT)(0x80100031L)
Packit Service fa4841
#define SCARD_E_PIN_CACHE_EXPIRED (HRESULT)(0x80100032L)
Packit Service fa4841
#define SCARD_E_NO_PIN_CACHE (HRESULT)(0x80100033L)
Packit Service fa4841
#define SCARD_E_READ_ONLY_CARD (HRESULT)(0x80100034L)
Packit Service fa4841
Packit Service fa4841
#define SCARD_W_UNSUPPORTED_CARD (HRESULT)(0x80100065L)
Packit Service fa4841
#define SCARD_W_UNRESPONSIVE_CARD (HRESULT)(0x80100066L)
Packit Service fa4841
#define SCARD_W_UNPOWERED_CARD (HRESULT)(0x80100067L)
Packit Service fa4841
#define SCARD_W_RESET_CARD (HRESULT)(0x80100068L)
Packit Service fa4841
#define SCARD_W_REMOVED_CARD (HRESULT)(0x80100069L)
Packit Service fa4841
#define SCARD_W_SECURITY_VIOLATION (HRESULT)(0x8010006AL)
Packit Service fa4841
#define SCARD_W_WRONG_CHV (HRESULT)(0x8010006BL)
Packit Service fa4841
#define SCARD_W_CHV_BLOCKED (HRESULT)(0x8010006CL)
Packit Service fa4841
#define SCARD_W_EOF (HRESULT)(0x8010006DL)
Packit Service fa4841
#define SCARD_W_CANCELLED_BY_USER (HRESULT)(0x8010006EL)
Packit Service fa4841
#define SCARD_W_CARD_NOT_AUTHENTICATED (HRESULT)(0x8010006FL)
Packit Service fa4841
#define SCARD_W_CACHE_ITEM_NOT_FOUND (HRESULT)(0x80100070L)
Packit Service fa4841
#define SCARD_W_CACHE_ITEM_STALE (HRESULT)(0x80100071L)
Packit Service fa4841
#define SCARD_W_CACHE_ITEM_TOO_BIG (HRESULT)(0x80100072L)
Packit Service fa4841
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATR_LENGTH 33
Packit Service fa4841
Packit Service fa4841
#define SCARD_PROTOCOL_UNDEFINED 0x00000000u
Packit Service fa4841
#define SCARD_PROTOCOL_T0 0x00000001u
Packit Service fa4841
#define SCARD_PROTOCOL_T1 0x00000002u
Packit Service fa4841
#define SCARD_PROTOCOL_RAW 0x00010000u
Packit Service fa4841
Packit Service fa4841
#define SCARD_PROTOCOL_Tx (SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
Packit Service fa4841
#define SCARD_PROTOCOL_DEFAULT 0x80000000u
Packit Service fa4841
#define SCARD_PROTOCOL_OPTIMAL 0x00000000u
Packit Service fa4841
Packit Service fa4841
#define SCARD_POWER_DOWN 0
Packit Service fa4841
#define SCARD_COLD_RESET 1
Packit Service fa4841
#define SCARD_WARM_RESET 2
Packit Service fa4841
Packit Service fa4841
#define SCARD_CTL_CODE(code) \
Packit Service fa4841
	CTL_CODE(FILE_DEVICE_SMARTCARD, (code), METHOD_BUFFERED, FILE_ANY_ACCESS)
Packit Service fa4841
Packit Service fa4841
#define IOCTL_SMARTCARD_POWER SCARD_CTL_CODE(1)
Packit Service fa4841
#define IOCTL_SMARTCARD_GET_ATTRIBUTE SCARD_CTL_CODE(2)
Packit Service fa4841
#define IOCTL_SMARTCARD_SET_ATTRIBUTE SCARD_CTL_CODE(3)
Packit Service fa4841
#define IOCTL_SMARTCARD_CONFISCATE SCARD_CTL_CODE(4)
Packit Service fa4841
#define IOCTL_SMARTCARD_TRANSMIT SCARD_CTL_CODE(5)
Packit Service fa4841
#define IOCTL_SMARTCARD_EJECT SCARD_CTL_CODE(6)
Packit Service fa4841
#define IOCTL_SMARTCARD_SWALLOW SCARD_CTL_CODE(7)
Packit Service fa4841
#define IOCTL_SMARTCARD_IS_PRESENT SCARD_CTL_CODE(10)
Packit Service fa4841
#define IOCTL_SMARTCARD_IS_ABSENT SCARD_CTL_CODE(11)
Packit Service fa4841
#define IOCTL_SMARTCARD_SET_PROTOCOL SCARD_CTL_CODE(12)
Packit Service fa4841
#define IOCTL_SMARTCARD_GET_STATE SCARD_CTL_CODE(14)
Packit Service fa4841
#define IOCTL_SMARTCARD_GET_LAST_ERROR SCARD_CTL_CODE(15)
Packit Service fa4841
#define IOCTL_SMARTCARD_GET_PERF_CNTR SCARD_CTL_CODE(16)
Packit Service fa4841
Packit Service fa4841
#define IOCTL_SMARTCARD_GET_FEATURE_REQUEST SCARD_CTL_CODE(3400)
Packit Service fa4841
Packit Service fa4841
#define MAXIMUM_ATTR_STRING_LENGTH 32
Packit Service fa4841
#define MAXIMUM_SMARTCARD_READERS 10
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATTR_VALUE(Class, Tag) ((((ULONG)(Class)) << 16) | ((ULONG)(Tag)))
Packit Service fa4841
Packit Service fa4841
#define SCARD_CLASS_VENDOR_INFO 1
Packit Service fa4841
#define SCARD_CLASS_COMMUNICATIONS 2
Packit Service fa4841
#define SCARD_CLASS_PROTOCOL 3
Packit Service fa4841
#define SCARD_CLASS_POWER_MGMT 4
Packit Service fa4841
#define SCARD_CLASS_SECURITY 5
Packit Service fa4841
#define SCARD_CLASS_MECHANICAL 6
Packit Service fa4841
#define SCARD_CLASS_VENDOR_DEFINED 7
Packit Service fa4841
#define SCARD_CLASS_IFD_PROTOCOL 8
Packit Service fa4841
#define SCARD_CLASS_ICC_STATE 9
Packit Service fa4841
#define SCARD_CLASS_PERF 0x7FFE
Packit Service fa4841
#define SCARD_CLASS_SYSTEM 0x7FFF
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATTR_VENDOR_NAME SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100)
Packit Service fa4841
#define SCARD_ATTR_VENDOR_IFD_TYPE SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101)
Packit Service fa4841
#define SCARD_ATTR_VENDOR_IFD_VERSION SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102)
Packit Service fa4841
#define SCARD_ATTR_VENDOR_IFD_SERIAL_NO SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103)
Packit Service fa4841
#define SCARD_ATTR_CHANNEL_ID SCARD_ATTR_VALUE(SCARD_CLASS_COMMUNICATIONS, 0x0110)
Packit Service fa4841
#define SCARD_ATTR_PROTOCOL_TYPES SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0120)
Packit Service fa4841
#define SCARD_ATTR_DEFAULT_CLK SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121)
Packit Service fa4841
#define SCARD_ATTR_MAX_CLK SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122)
Packit Service fa4841
#define SCARD_ATTR_DEFAULT_DATA_RATE SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123)
Packit Service fa4841
#define SCARD_ATTR_MAX_DATA_RATE SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124)
Packit Service fa4841
#define SCARD_ATTR_MAX_IFSD SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125)
Packit Service fa4841
#define SCARD_ATTR_POWER_MGMT_SUPPORT SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131)
Packit Service fa4841
#define SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0140)
Packit Service fa4841
#define SCARD_ATTR_USER_AUTH_INPUT_DEVICE SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0142)
Packit Service fa4841
#define SCARD_ATTR_CHARACTERISTICS SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150)
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATTR_CURRENT_PROTOCOL_TYPE SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0201)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_CLK SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_F SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_D SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_N SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_W SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_IFSC SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_IFSD SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_BWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_CWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_EBC_ENCODING SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b)
Packit Service fa4841
#define SCARD_ATTR_EXTENDED_BWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020c)
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATTR_ICC_PRESENCE SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0300)
Packit Service fa4841
#define SCARD_ATTR_ICC_INTERFACE_STATUS SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301)
Packit Service fa4841
#define SCARD_ATTR_CURRENT_IO_STATE SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0302)
Packit Service fa4841
#define SCARD_ATTR_ATR_STRING SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303)
Packit Service fa4841
#define SCARD_ATTR_ICC_TYPE_PER_ATR SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0304)
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATTR_ESC_RESET SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA000)
Packit Service fa4841
#define SCARD_ATTR_ESC_CANCEL SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA003)
Packit Service fa4841
#define SCARD_ATTR_ESC_AUTHREQUEST SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA005)
Packit Service fa4841
#define SCARD_ATTR_MAXINPUT SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA007)
Packit Service fa4841
Packit Service fa4841
#define SCARD_ATTR_DEVICE_UNIT SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001)
Packit Service fa4841
#define SCARD_ATTR_DEVICE_IN_USE SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002)
Packit Service fa4841
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_A SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0003)
Packit Service fa4841
#define SCARD_ATTR_DEVICE_SYSTEM_NAME_A SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0004)
Packit Service fa4841
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_W SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0005)
Packit Service fa4841
#define SCARD_ATTR_DEVICE_SYSTEM_NAME_W SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0006)
Packit Service fa4841
#define SCARD_ATTR_SUPRESS_T1_IFS_REQUEST SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0007)
Packit Service fa4841
Packit Service fa4841
#define SCARD_PERF_NUM_TRANSMISSIONS SCARD_ATTR_VALUE(SCARD_CLASS_PERF, 0x0001)
Packit Service fa4841
#define SCARD_PERF_BYTES_TRANSMITTED SCARD_ATTR_VALUE(SCARD_CLASS_PERF, 0x0002)
Packit Service fa4841
#define SCARD_PERF_TRANSMISSION_TIME SCARD_ATTR_VALUE(SCARD_CLASS_PERF, 0x0003)
Packit Service fa4841
Packit Service fa4841
#ifdef UNICODE
Packit Service fa4841
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME SCARD_ATTR_DEVICE_FRIENDLY_NAME_W
Packit Service fa4841
#define SCARD_ATTR_DEVICE_SYSTEM_NAME SCARD_ATTR_DEVICE_SYSTEM_NAME_W
Packit Service fa4841
#else
Packit Service fa4841
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME SCARD_ATTR_DEVICE_FRIENDLY_NAME_A
Packit Service fa4841
#define SCARD_ATTR_DEVICE_SYSTEM_NAME SCARD_ATTR_DEVICE_SYSTEM_NAME_A
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#define SCARD_T0_HEADER_LENGTH 7
Packit Service fa4841
#define SCARD_T0_CMD_LENGTH 5
Packit Service fa4841
Packit Service fa4841
#define SCARD_T1_PROLOGUE_LENGTH 3
Packit Service fa4841
#define SCARD_T1_EPILOGUE_LENGTH 2
Packit Service fa4841
#define SCARD_T1_MAX_IFS 254
Packit Service fa4841
Packit Service fa4841
#define SCARD_UNKNOWN 0
Packit Service fa4841
#define SCARD_ABSENT 1
Packit Service fa4841
#define SCARD_PRESENT 2
Packit Service fa4841
#define SCARD_SWALLOWED 3
Packit Service fa4841
#define SCARD_POWERED 4
Packit Service fa4841
#define SCARD_NEGOTIABLE 5
Packit Service fa4841
#define SCARD_SPECIFIC 6
Packit Service fa4841
Packit Service fa4841
#pragma pack(push, 1)
Packit Service fa4841
Packit Service fa4841
typedef struct _SCARD_IO_REQUEST
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwProtocol;
Packit Service fa4841
	DWORD cbPciLength;
Packit Service fa4841
} SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *LPSCARD_IO_REQUEST;
Packit Service fa4841
typedef const SCARD_IO_REQUEST* LPCSCARD_IO_REQUEST;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	BYTE bCla, bIns, bP1, bP2, bP3;
Packit Service fa4841
} SCARD_T0_COMMAND, *LPSCARD_T0_COMMAND;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	SCARD_IO_REQUEST ioRequest;
Packit Service fa4841
	BYTE bSw1, bSw2;
Packit Service fa4841
	union {
Packit Service fa4841
		SCARD_T0_COMMAND CmdBytes;
Packit Service fa4841
		BYTE rgbHeader[5];
Packit Service fa4841
	} DUMMYUNIONNAME;
Packit Service fa4841
} SCARD_T0_REQUEST;
Packit Service fa4841
Packit Service fa4841
typedef SCARD_T0_REQUEST *PSCARD_T0_REQUEST, *LPSCARD_T0_REQUEST;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	SCARD_IO_REQUEST ioRequest;
Packit Service fa4841
} SCARD_T1_REQUEST;
Packit Service fa4841
typedef SCARD_T1_REQUEST *PSCARD_T1_REQUEST, *LPSCARD_T1_REQUEST;
Packit Service fa4841
Packit Service fa4841
#define SCARD_READER_SWALLOWS 0x00000001
Packit Service fa4841
#define SCARD_READER_EJECTS 0x00000002
Packit Service fa4841
#define SCARD_READER_CONFISCATES 0x00000004
Packit Service fa4841
Packit Service fa4841
#define SCARD_READER_TYPE_SERIAL 0x01
Packit Service fa4841
#define SCARD_READER_TYPE_PARALELL 0x02
Packit Service fa4841
#define SCARD_READER_TYPE_KEYBOARD 0x04
Packit Service fa4841
#define SCARD_READER_TYPE_SCSI 0x08
Packit Service fa4841
#define SCARD_READER_TYPE_IDE 0x10
Packit Service fa4841
#define SCARD_READER_TYPE_USB 0x20
Packit Service fa4841
#define SCARD_READER_TYPE_PCMCIA 0x40
Packit Service fa4841
#define SCARD_READER_TYPE_TPM 0x80
Packit Service fa4841
#define SCARD_READER_TYPE_NFC 0x100
Packit Service fa4841
#define SCARD_READER_TYPE_UICC 0x200
Packit Service fa4841
#define SCARD_READER_TYPE_VENDOR 0xF0
Packit Service fa4841
Packit Service fa4841
#ifndef WINSCARDAPI
Packit Service fa4841
#define WINSCARDAPI WINPR_API
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
typedef ULONG_PTR SCARDCONTEXT;
Packit Service fa4841
typedef SCARDCONTEXT *PSCARDCONTEXT, *LPSCARDCONTEXT;
Packit Service fa4841
Packit Service fa4841
typedef ULONG_PTR SCARDHANDLE;
Packit Service fa4841
typedef SCARDHANDLE *PSCARDHANDLE, *LPSCARDHANDLE;
Packit Service fa4841
Packit Service fa4841
#define SCARD_AUTOALLOCATE (DWORD)(-1)
Packit Service fa4841
Packit Service fa4841
#define SCARD_SCOPE_USER 0
Packit Service fa4841
#define SCARD_SCOPE_TERMINAL 1
Packit Service fa4841
#define SCARD_SCOPE_SYSTEM 2
Packit Service fa4841
Packit Service fa4841
#define SCARD_STATE_UNAWARE 0x00000000
Packit Service fa4841
#define SCARD_STATE_IGNORE 0x00000001
Packit Service fa4841
#define SCARD_STATE_CHANGED 0x00000002
Packit Service fa4841
#define SCARD_STATE_UNKNOWN 0x00000004
Packit Service fa4841
#define SCARD_STATE_UNAVAILABLE 0x00000008
Packit Service fa4841
#define SCARD_STATE_EMPTY 0x00000010
Packit Service fa4841
#define SCARD_STATE_PRESENT 0x00000020
Packit Service fa4841
#define SCARD_STATE_ATRMATCH 0x00000040
Packit Service fa4841
#define SCARD_STATE_EXCLUSIVE 0x00000080
Packit Service fa4841
#define SCARD_STATE_INUSE 0x00000100
Packit Service fa4841
#define SCARD_STATE_MUTE 0x00000200
Packit Service fa4841
#define SCARD_STATE_UNPOWERED 0x00000400
Packit Service fa4841
Packit Service fa4841
#define SCARD_SHARE_EXCLUSIVE 1
Packit Service fa4841
#define SCARD_SHARE_SHARED 2
Packit Service fa4841
#define SCARD_SHARE_DIRECT 3
Packit Service fa4841
Packit Service fa4841
#define SCARD_LEAVE_CARD 0
Packit Service fa4841
#define SCARD_RESET_CARD 1
Packit Service fa4841
#define SCARD_UNPOWER_CARD 2
Packit Service fa4841
#define SCARD_EJECT_CARD 3
Packit Service fa4841
Packit Service fa4841
#define SC_DLG_MINIMAL_UI 0x01
Packit Service fa4841
#define SC_DLG_NO_UI 0x02
Packit Service fa4841
#define SC_DLG_FORCE_UI 0x04
Packit Service fa4841
Packit Service fa4841
#define SCERR_NOCARDNAME 0x4000
Packit Service fa4841
#define SCERR_NOGUIDS 0x8000
Packit Service fa4841
Packit Service fa4841
typedef SCARDHANDLE(WINAPI* LPOCNCONNPROCA)(SCARDCONTEXT hSCardContext, LPSTR szReader,
Packit Service fa4841
                                            LPSTR mszCards, PVOID pvUserData);
Packit Service fa4841
typedef SCARDHANDLE(WINAPI* LPOCNCONNPROCW)(SCARDCONTEXT hSCardContext, LPWSTR szReader,
Packit Service fa4841
                                            LPWSTR mszCards, PVOID pvUserData);
Packit Service fa4841
Packit Service fa4841
typedef BOOL(WINAPI* LPOCNCHKPROC)(SCARDCONTEXT hSCardContext, SCARDHANDLE hCard, PVOID pvUserData);
Packit Service fa4841
typedef void(WINAPI* LPOCNDSCPROC)(SCARDCONTEXT hSCardContext, SCARDHANDLE hCard, PVOID pvUserData);
Packit Service fa4841
Packit Service fa4841
#define SCARD_READER_SEL_AUTH_PACKAGE ((DWORD)-629)
Packit Service fa4841
Packit Service fa4841
#define SCARD_AUDIT_CHV_FAILURE 0x0
Packit Service fa4841
#define SCARD_AUDIT_CHV_SUCCESS 0x1
Packit Service fa4841
Packit Service fa4841
#define SCardListCardTypes SCardListCards
Packit Service fa4841
Packit Service fa4841
#define PCSCardIntroduceCardType(hContext, szCardName, pbAtr, pbAtrMask, cbAtrLen,         \
Packit Service fa4841
                                 pguidPrimaryProvider, rgguidInterfaces, dwInterfaceCount) \
Packit Service fa4841
	SCardIntroduceCardType(hContext, szCardName, pguidPrimaryProvider, rgguidInterfaces,   \
Packit Service fa4841
	                       dwInterfaceCount, pbAtr, pbAtrMask, cbAtrLen)
Packit Service fa4841
Packit Service fa4841
#define SCardGetReaderCapabilities SCardGetAttrib
Packit Service fa4841
#define SCardSetReaderCapabilities SCardSetAttrib
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	LPSTR szReader;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwCurrentState;
Packit Service fa4841
	DWORD dwEventState;
Packit Service fa4841
	DWORD cbAtr;
Packit Service fa4841
	BYTE rgbAtr[36];
Packit Service fa4841
} SCARD_READERSTATEA, *PSCARD_READERSTATEA, *LPSCARD_READERSTATEA;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	LPWSTR szReader;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwCurrentState;
Packit Service fa4841
	DWORD dwEventState;
Packit Service fa4841
	DWORD cbAtr;
Packit Service fa4841
	BYTE rgbAtr[36];
Packit Service fa4841
} SCARD_READERSTATEW, *PSCARD_READERSTATEW, *LPSCARD_READERSTATEW;
Packit Service fa4841
Packit Service fa4841
typedef struct _SCARD_ATRMASK
Packit Service fa4841
{
Packit Service fa4841
	DWORD cbAtr;
Packit Service fa4841
	BYTE rgbAtr[36];
Packit Service fa4841
	BYTE rgbMask[36];
Packit Service fa4841
} SCARD_ATRMASK, *PSCARD_ATRMASK, *LPSCARD_ATRMASK;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwStructSize;
Packit Service fa4841
	LPSTR lpstrGroupNames;
Packit Service fa4841
	DWORD nMaxGroupNames;
Packit Service fa4841
	LPCGUID rgguidInterfaces;
Packit Service fa4841
	DWORD cguidInterfaces;
Packit Service fa4841
	LPSTR lpstrCardNames;
Packit Service fa4841
	DWORD nMaxCardNames;
Packit Service fa4841
	LPOCNCHKPROC lpfnCheck;
Packit Service fa4841
	LPOCNCONNPROCA lpfnConnect;
Packit Service fa4841
	LPOCNDSCPROC lpfnDisconnect;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
} OPENCARD_SEARCH_CRITERIAA, *POPENCARD_SEARCH_CRITERIAA, *LPOPENCARD_SEARCH_CRITERIAA;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwStructSize;
Packit Service fa4841
	LPWSTR lpstrGroupNames;
Packit Service fa4841
	DWORD nMaxGroupNames;
Packit Service fa4841
	LPCGUID rgguidInterfaces;
Packit Service fa4841
	DWORD cguidInterfaces;
Packit Service fa4841
	LPWSTR lpstrCardNames;
Packit Service fa4841
	DWORD nMaxCardNames;
Packit Service fa4841
	LPOCNCHKPROC lpfnCheck;
Packit Service fa4841
	LPOCNCONNPROCW lpfnConnect;
Packit Service fa4841
	LPOCNDSCPROC lpfnDisconnect;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
} OPENCARD_SEARCH_CRITERIAW, *POPENCARD_SEARCH_CRITERIAW, *LPOPENCARD_SEARCH_CRITERIAW;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwStructSize;
Packit Service fa4841
	SCARDCONTEXT hSCardContext;
Packit Service fa4841
	HWND hwndOwner;
Packit Service fa4841
	DWORD dwFlags;
Packit Service fa4841
	LPCSTR lpstrTitle;
Packit Service fa4841
	LPCSTR lpstrSearchDesc;
Packit Service fa4841
	HICON hIcon;
Packit Service fa4841
	POPENCARD_SEARCH_CRITERIAA pOpenCardSearchCriteria;
Packit Service fa4841
	LPOCNCONNPROCA lpfnConnect;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
	LPSTR lpstrRdr;
Packit Service fa4841
	DWORD nMaxRdr;
Packit Service fa4841
	LPSTR lpstrCard;
Packit Service fa4841
	DWORD nMaxCard;
Packit Service fa4841
	DWORD dwActiveProtocol;
Packit Service fa4841
	SCARDHANDLE hCardHandle;
Packit Service fa4841
} OPENCARDNAME_EXA, *POPENCARDNAME_EXA, *LPOPENCARDNAME_EXA;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwStructSize;
Packit Service fa4841
	SCARDCONTEXT hSCardContext;
Packit Service fa4841
	HWND hwndOwner;
Packit Service fa4841
	DWORD dwFlags;
Packit Service fa4841
	LPCWSTR lpstrTitle;
Packit Service fa4841
	LPCWSTR lpstrSearchDesc;
Packit Service fa4841
	HICON hIcon;
Packit Service fa4841
	POPENCARD_SEARCH_CRITERIAW pOpenCardSearchCriteria;
Packit Service fa4841
	LPOCNCONNPROCW lpfnConnect;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
	LPWSTR lpstrRdr;
Packit Service fa4841
	DWORD nMaxRdr;
Packit Service fa4841
	LPWSTR lpstrCard;
Packit Service fa4841
	DWORD nMaxCard;
Packit Service fa4841
	DWORD dwActiveProtocol;
Packit Service fa4841
	SCARDHANDLE hCardHandle;
Packit Service fa4841
} OPENCARDNAME_EXW, *POPENCARDNAME_EXW, *LPOPENCARDNAME_EXW;
Packit Service fa4841
Packit Service fa4841
#define OPENCARDNAMEA_EX OPENCARDNAME_EXA
Packit Service fa4841
#define OPENCARDNAMEW_EX OPENCARDNAME_EXW
Packit Service fa4841
#define POPENCARDNAMEA_EX POPENCARDNAME_EXA
Packit Service fa4841
#define POPENCARDNAMEW_EX POPENCARDNAME_EXW
Packit Service fa4841
#define LPOPENCARDNAMEA_EX LPOPENCARDNAME_EXA
Packit Service fa4841
#define LPOPENCARDNAMEW_EX LPOPENCARDNAME_EXW
Packit Service fa4841
Packit Service fa4841
typedef enum
Packit Service fa4841
{
Packit Service fa4841
	RSR_MATCH_TYPE_READER_AND_CONTAINER = 1,
Packit Service fa4841
	RSR_MATCH_TYPE_SERIAL_NUMBER,
Packit Service fa4841
	RSR_MATCH_TYPE_ALL_CARDS
Packit Service fa4841
} READER_SEL_REQUEST_MATCH_TYPE;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
	READER_SEL_REQUEST_MATCH_TYPE MatchType;
Packit Service fa4841
	union {
Packit Service fa4841
		struct
Packit Service fa4841
		{
Packit Service fa4841
			DWORD cbReaderNameOffset;
Packit Service fa4841
			DWORD cchReaderNameLength;
Packit Service fa4841
			DWORD cbContainerNameOffset;
Packit Service fa4841
			DWORD cchContainerNameLength;
Packit Service fa4841
			DWORD dwDesiredCardModuleVersion;
Packit Service fa4841
			DWORD dwCspFlags;
Packit Service fa4841
		} ReaderAndContainerParameter;
Packit Service fa4841
		struct
Packit Service fa4841
		{
Packit Service fa4841
			DWORD cbSerialNumberOffset;
Packit Service fa4841
			DWORD cbSerialNumberLength;
Packit Service fa4841
			DWORD dwDesiredCardModuleVersion;
Packit Service fa4841
		} SerialNumberParameter;
Packit Service fa4841
	};
Packit Service fa4841
} READER_SEL_REQUEST, *PREADER_SEL_REQUEST;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD cbReaderNameOffset;
Packit Service fa4841
	DWORD cchReaderNameLength;
Packit Service fa4841
	DWORD cbCardNameOffset;
Packit Service fa4841
	DWORD cchCardNameLength;
Packit Service fa4841
} READER_SEL_RESPONSE, *PREADER_SEL_RESPONSE;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwStructSize;
Packit Service fa4841
	HWND hwndOwner;
Packit Service fa4841
	SCARDCONTEXT hSCardContext;
Packit Service fa4841
	LPSTR lpstrGroupNames;
Packit Service fa4841
	DWORD nMaxGroupNames;
Packit Service fa4841
	LPSTR lpstrCardNames;
Packit Service fa4841
	DWORD nMaxCardNames;
Packit Service fa4841
	LPCGUID rgguidInterfaces;
Packit Service fa4841
	DWORD cguidInterfaces;
Packit Service fa4841
	LPSTR lpstrRdr;
Packit Service fa4841
	DWORD nMaxRdr;
Packit Service fa4841
	LPSTR lpstrCard;
Packit Service fa4841
	DWORD nMaxCard;
Packit Service fa4841
	LPCSTR lpstrTitle;
Packit Service fa4841
	DWORD dwFlags;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
	DWORD dwActiveProtocol;
Packit Service fa4841
	LPOCNCONNPROCA lpfnConnect;
Packit Service fa4841
	LPOCNCHKPROC lpfnCheck;
Packit Service fa4841
	LPOCNDSCPROC lpfnDisconnect;
Packit Service fa4841
	SCARDHANDLE hCardHandle;
Packit Service fa4841
} OPENCARDNAMEA, *POPENCARDNAMEA, *LPOPENCARDNAMEA;
Packit Service fa4841
Packit Service fa4841
typedef struct
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwStructSize;
Packit Service fa4841
	HWND hwndOwner;
Packit Service fa4841
	SCARDCONTEXT hSCardContext;
Packit Service fa4841
	LPWSTR lpstrGroupNames;
Packit Service fa4841
	DWORD nMaxGroupNames;
Packit Service fa4841
	LPWSTR lpstrCardNames;
Packit Service fa4841
	DWORD nMaxCardNames;
Packit Service fa4841
	LPCGUID rgguidInterfaces;
Packit Service fa4841
	DWORD cguidInterfaces;
Packit Service fa4841
	LPWSTR lpstrRdr;
Packit Service fa4841
	DWORD nMaxRdr;
Packit Service fa4841
	LPWSTR lpstrCard;
Packit Service fa4841
	DWORD nMaxCard;
Packit Service fa4841
	LPCWSTR lpstrTitle;
Packit Service fa4841
	DWORD dwFlags;
Packit Service fa4841
	LPVOID pvUserData;
Packit Service fa4841
	DWORD dwShareMode;
Packit Service fa4841
	DWORD dwPreferredProtocols;
Packit Service fa4841
	DWORD dwActiveProtocol;
Packit Service fa4841
	LPOCNCONNPROCW lpfnConnect;
Packit Service fa4841
	LPOCNCHKPROC lpfnCheck;
Packit Service fa4841
	LPOCNDSCPROC lpfnDisconnect;
Packit Service fa4841
	SCARDHANDLE hCardHandle;
Packit Service fa4841
} OPENCARDNAMEW, *POPENCARDNAMEW, *LPOPENCARDNAMEW;
Packit Service fa4841
Packit Service fa4841
#pragma pack(pop)
Packit Service fa4841
Packit Service fa4841
#ifdef UNICODE
Packit Service fa4841
#define LPOCNCONNPROC LPOCNCONNPROCW
Packit Service fa4841
#define SCARD_READERSTATE SCARD_READERSTATEW
Packit Service fa4841
#define PSCARD_READERSTATE PSCARD_READERSTATEW
Packit Service fa4841
#define LPSCARD_READERSTATE LPSCARD_READERSTATEW
Packit Service fa4841
#define OPENCARD_SEARCH_CRITERIA OPENCARD_SEARCH_CRITERIAW
Packit Service fa4841
#define LOPENCARD_SEARCH_CRITERIA LOPENCARD_SEARCH_CRITERIAW
Packit Service fa4841
#define LPOPENCARD_SEARCH_CRITERIA LPOPENCARD_SEARCH_CRITERIAW
Packit Service fa4841
#define OPENCARDNAME_EX OPENCARDNAME_EXW
Packit Service fa4841
#define LOPENCARDNAME_EX LOPENCARDNAME_EXW
Packit Service fa4841
#define LPOPENCARDNAME_EX LPOPENCARDNAME_EXW
Packit Service fa4841
#define OPENCARDNAME OPENCARDNAMEW
Packit Service fa4841
#define LOPENCARDNAME LOPENCARDNAMEW
Packit Service fa4841
#define LPOPENCARDNAME LPOPENCARDNAMEW
Packit Service fa4841
#else
Packit Service fa4841
#define LPOCNCONNPROC LPOCNCONNPROCA
Packit Service fa4841
#define SCARD_READERSTATE SCARD_READERSTATEA
Packit Service fa4841
#define PSCARD_READERSTATE PSCARD_READERSTATEA
Packit Service fa4841
#define LPSCARD_READERSTATE LPSCARD_READERSTATEA
Packit Service fa4841
#define OPENCARD_SEARCH_CRITERIA OPENCARD_SEARCH_CRITERIAA
Packit Service fa4841
#define LOPENCARD_SEARCH_CRITERIA LOPENCARD_SEARCH_CRITERIAA
Packit Service fa4841
#define LPOPENCARD_SEARCH_CRITERIA LPOPENCARD_SEARCH_CRITERIAA
Packit Service fa4841
#define OPENCARDNAME_EX OPENCARDNAME_EXA
Packit Service fa4841
#define LOPENCARDNAME_EX LOPENCARDNAME_EXA
Packit Service fa4841
#define LPOPENCARDNAME_EX LPOPENCARDNAME_EXA
Packit Service fa4841
#define OPENCARDNAME OPENCARDNAMEA
Packit Service fa4841
#define LOPENCARDNAME LOPENCARDNAMEA
Packit Service fa4841
#define LPOPENCARDNAME LPOPENCARDNAMEA
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
extern "C"
Packit Service fa4841
{
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
	extern const SCARD_IO_REQUEST g_rgSCardT0Pci;
Packit Service fa4841
	extern const SCARD_IO_REQUEST g_rgSCardT1Pci;
Packit Service fa4841
	extern const SCARD_IO_REQUEST g_rgSCardRawPci;
Packit Service fa4841
Packit Service fa4841
#define SCARD_PCI_T0 (&g_rgSCardT0Pci)
Packit Service fa4841
#define SCARD_PCI_T1 (&g_rgSCardT1Pci)
Packit Service fa4841
#define SCARD_PCI_RAW (&g_rgSCardRawPci)
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1,
Packit Service fa4841
	                                              LPCVOID pvReserved2, LPSCARDCONTEXT phContext);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardReleaseContext(SCARDCONTEXT hContext);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIsValidContext(SCARDCONTEXT hContext);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListReaderGroupsA(SCARDCONTEXT hContext, LPSTR mszGroups,
Packit Service fa4841
	                                               LPDWORD pcchGroups);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListReaderGroupsW(SCARDCONTEXT hContext, LPWSTR mszGroups,
Packit Service fa4841
	                                               LPDWORD pcchGroups);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListReadersA(SCARDCONTEXT hContext, LPCSTR mszGroups,
Packit Service fa4841
	                                          LPSTR mszReaders, LPDWORD pcchReaders);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListReadersW(SCARDCONTEXT hContext, LPCWSTR mszGroups,
Packit Service fa4841
	                                          LPWSTR mszReaders, LPDWORD pcchReaders);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListCardsA(SCARDCONTEXT hContext, LPCBYTE pbAtr,
Packit Service fa4841
	                                        LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
Packit Service fa4841
	                                        CHAR* mszCards, LPDWORD pcchCards);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListCardsW(SCARDCONTEXT hContext, LPCBYTE pbAtr,
Packit Service fa4841
	                                        LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
Packit Service fa4841
	                                        WCHAR* mszCards, LPDWORD pcchCards);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListInterfacesA(SCARDCONTEXT hContext, LPCSTR szCard,
Packit Service fa4841
	                                             LPGUID pguidInterfaces, LPDWORD pcguidInterfaces);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListInterfacesW(SCARDCONTEXT hContext, LPCWSTR szCard,
Packit Service fa4841
	                                             LPGUID pguidInterfaces, LPDWORD pcguidInterfaces);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetProviderIdA(SCARDCONTEXT hContext, LPCSTR szCard,
Packit Service fa4841
	                                            LPGUID pguidProviderId);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetProviderIdW(SCARDCONTEXT hContext, LPCWSTR szCard,
Packit Service fa4841
	                                            LPGUID pguidProviderId);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service fa4841
	                                                      DWORD dwProviderId, CHAR* szProvider,
Packit Service fa4841
	                                                      LPDWORD pcchProvider);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service fa4841
	                                                      DWORD dwProviderId, WCHAR* szProvider,
Packit Service fa4841
	                                                      LPDWORD pcchProvider);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIntroduceReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIntroduceReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardForgetReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardForgetReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIntroduceReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
	                                              LPCSTR szDeviceName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIntroduceReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
	                                              LPCWSTR szDeviceName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardForgetReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardForgetReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardAddReaderToGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
	                                               LPCSTR szGroupName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardAddReaderToGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
	                                               LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardRemoveReaderFromGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
	                                                    LPCSTR szGroupName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardRemoveReaderFromGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
	                                                    LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIntroduceCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service fa4841
	                                                LPCGUID pguidPrimaryProvider,
Packit Service fa4841
	                                                LPCGUID rgguidInterfaces,
Packit Service fa4841
	                                                DWORD dwInterfaceCount, LPCBYTE pbAtr,
Packit Service fa4841
	                                                LPCBYTE pbAtrMask, DWORD cbAtrLen);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardIntroduceCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service fa4841
	                                                LPCGUID pguidPrimaryProvider,
Packit Service fa4841
	                                                LPCGUID rgguidInterfaces,
Packit Service fa4841
	                                                DWORD dwInterfaceCount, LPCBYTE pbAtr,
Packit Service fa4841
	                                                LPCBYTE pbAtrMask, DWORD cbAtrLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardSetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service fa4841
	                                                      DWORD dwProviderId, LPCSTR szProvider);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardSetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service fa4841
	                                                      DWORD dwProviderId, LPCWSTR szProvider);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardForgetCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardForgetCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardFreeMemory(SCARDCONTEXT hContext, LPVOID pvMem);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI HANDLE WINAPI SCardAccessStartedEvent(void);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI void WINAPI SCardReleaseStartedEvent(void);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardLocateCardsA(SCARDCONTEXT hContext, LPCSTR mszCards,
Packit Service fa4841
	                                          LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardLocateCardsW(SCARDCONTEXT hContext, LPCWSTR mszCards,
Packit Service fa4841
	                                          LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardLocateCardsByATRA(SCARDCONTEXT hContext,
Packit Service fa4841
	                                               LPSCARD_ATRMASK rgAtrMasks, DWORD cAtrs,
Packit Service fa4841
	                                               LPSCARD_READERSTATEA rgReaderStates,
Packit Service fa4841
	                                               DWORD cReaders);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardLocateCardsByATRW(SCARDCONTEXT hContext,
Packit Service fa4841
	                                               LPSCARD_ATRMASK rgAtrMasks, DWORD cAtrs,
Packit Service fa4841
	                                               LPSCARD_READERSTATEW rgReaderStates,
Packit Service fa4841
	                                               DWORD cReaders);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetStatusChangeA(SCARDCONTEXT hContext, DWORD dwTimeout,
Packit Service fa4841
	                                              LPSCARD_READERSTATEA rgReaderStates,
Packit Service fa4841
	                                              DWORD cReaders);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetStatusChangeW(SCARDCONTEXT hContext, DWORD dwTimeout,
Packit Service fa4841
	                                              LPSCARD_READERSTATEW rgReaderStates,
Packit Service fa4841
	                                              DWORD cReaders);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardCancel(SCARDCONTEXT hContext);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardConnectA(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode,
Packit Service fa4841
	                                      DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
Packit Service fa4841
	                                      LPDWORD pdwActiveProtocol);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardConnectW(SCARDCONTEXT hContext, LPCWSTR szReader,
Packit Service fa4841
	                                      DWORD dwShareMode, DWORD dwPreferredProtocols,
Packit Service fa4841
	                                      LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardReconnect(SCARDHANDLE hCard, DWORD dwShareMode,
Packit Service fa4841
	                                       DWORD dwPreferredProtocols, DWORD dwInitialization,
Packit Service fa4841
	                                       LPDWORD pdwActiveProtocol);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardBeginTransaction(SCARDHANDLE hCard);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardCancelTransaction(SCARDHANDLE hCard);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardState(SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol,
Packit Service fa4841
	                                   LPBYTE pbAtr, LPDWORD pcbAtrLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardStatusA(SCARDHANDLE hCard, LPSTR mszReaderNames,
Packit Service fa4841
	                                     LPDWORD pcchReaderLen, LPDWORD pdwState,
Packit Service fa4841
	                                     LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardStatusW(SCARDHANDLE hCard, LPWSTR mszReaderNames,
Packit Service fa4841
	                                     LPDWORD pcchReaderLen, LPDWORD pdwState,
Packit Service fa4841
	                                     LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardTransmit(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,
Packit Service fa4841
	                                      LPCBYTE pbSendBuffer, DWORD cbSendLength,
Packit Service fa4841
	                                      LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer,
Packit Service fa4841
	                                      LPDWORD pcbRecvLength);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetTransmitCount(SCARDHANDLE hCard, LPDWORD pcTransmitCount);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer,
Packit Service fa4841
	                                     DWORD cbInBufferSize, LPVOID lpOutBuffer,
Packit Service fa4841
	                                     DWORD cbOutBufferSize, LPDWORD lpBytesReturned);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
Packit Service fa4841
	                                       LPDWORD pcbAttrLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
Packit Service fa4841
	                                       DWORD cbAttrLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardUIDlgSelectCardA(LPOPENCARDNAMEA_EX pDlgStruc);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardUIDlgSelectCardW(LPOPENCARDNAMEW_EX pDlgStruc);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI GetOpenCardNameA(LPOPENCARDNAMEA pDlgStruc);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI GetOpenCardNameW(LPOPENCARDNAMEW pDlgStruc);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardDlgExtendedError(void);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardReadCacheA(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
	                                        DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
Packit Service fa4841
	                                        DWORD* DataLen);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardReadCacheW(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
	                                        DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
Packit Service fa4841
	                                        DWORD* DataLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardWriteCacheA(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
	                                         DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
Packit Service fa4841
	                                         DWORD DataLen);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardWriteCacheW(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
	                                         DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
Packit Service fa4841
	                                         DWORD DataLen);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetReaderIconA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
	                                            LPBYTE pbIcon, LPDWORD pcbIcon);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetReaderIconW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
	                                            LPBYTE pbIcon, LPDWORD pcbIcon);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetDeviceTypeIdA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
	                                              LPDWORD pdwDeviceTypeId);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetDeviceTypeIdW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
	                                              LPDWORD pdwDeviceTypeId);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetReaderDeviceInstanceIdA(SCARDCONTEXT hContext,
Packit Service fa4841
	                                                        LPCSTR szReaderName,
Packit Service fa4841
	                                                        LPSTR szDeviceInstanceId,
Packit Service fa4841
	                                                        LPDWORD pcchDeviceInstanceId);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardGetReaderDeviceInstanceIdW(SCARDCONTEXT hContext,
Packit Service fa4841
	                                                        LPCWSTR szReaderName,
Packit Service fa4841
	                                                        LPWSTR szDeviceInstanceId,
Packit Service fa4841
	                                                        LPDWORD pcchDeviceInstanceId);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListReadersWithDeviceInstanceIdA(SCARDCONTEXT hContext,
Packit Service fa4841
	                                                              LPCSTR szDeviceInstanceId,
Packit Service fa4841
	                                                              LPSTR mszReaders,
Packit Service fa4841
	                                                              LPDWORD pcchReaders);
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardListReadersWithDeviceInstanceIdW(SCARDCONTEXT hContext,
Packit Service fa4841
	                                                              LPCWSTR szDeviceInstanceId,
Packit Service fa4841
	                                                              LPWSTR mszReaders,
Packit Service fa4841
	                                                              LPDWORD pcchReaders);
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI LONG WINAPI SCardAudit(SCARDCONTEXT hContext, DWORD dwEvent);
Packit Service fa4841
Packit Service fa4841
#ifdef UNICODE
Packit Service fa4841
#define SCardListReaderGroups SCardListReaderGroupsW
Packit Service fa4841
#define SCardListReaders SCardListReadersW
Packit Service fa4841
#define SCardListCards SCardListCardsW
Packit Service fa4841
#define SCardListInterfaces SCardListInterfacesW
Packit Service fa4841
#define SCardGetProviderId SCardGetProviderIdW
Packit Service fa4841
#define SCardGetCardTypeProviderName SCardGetCardTypeProviderNameW
Packit Service fa4841
#define SCardIntroduceReaderGroup SCardIntroduceReaderGroupW
Packit Service fa4841
#define SCardForgetReaderGroup SCardForgetReaderGroupW
Packit Service fa4841
#define SCardIntroduceReader SCardIntroduceReaderW
Packit Service fa4841
#define SCardForgetReader SCardForgetReaderW
Packit Service fa4841
#define SCardAddReaderToGroup SCardAddReaderToGroupW
Packit Service fa4841
#define SCardRemoveReaderFromGroup SCardRemoveReaderFromGroupW
Packit Service fa4841
#define SCardIntroduceCardType SCardIntroduceCardTypeW
Packit Service fa4841
#define SCardSetCardTypeProviderName SCardSetCardTypeProviderNameW
Packit Service fa4841
#define SCardForgetCardType SCardForgetCardTypeW
Packit Service fa4841
#define SCardLocateCards SCardLocateCardsW
Packit Service fa4841
#define SCardLocateCardsByATR SCardLocateCardsByATRW
Packit Service fa4841
#define SCardGetStatusChange SCardGetStatusChangeW
Packit Service fa4841
#define SCardConnect SCardConnectW
Packit Service fa4841
#define SCardStatus SCardStatusW
Packit Service fa4841
#define SCardUIDlgSelectCard SCardUIDlgSelectCardW
Packit Service fa4841
#define GetOpenCardName GetOpenCardNameW
Packit Service fa4841
#define SCardReadCache SCardReadCacheW
Packit Service fa4841
#define SCardWriteCache SCardWriteCacheW
Packit Service fa4841
#define SCardGetReaderIcon SCardGetReaderIconW
Packit Service fa4841
#define SCardGetDeviceTypeId SCardGetDeviceTypeIdW
Packit Service fa4841
#define SCardGetReaderDeviceInstanceId SCardGetReaderDeviceInstanceIdW
Packit Service fa4841
#define SCardListReadersWithDeviceInstanceId SCardListReadersWithDeviceInstanceIdW
Packit Service fa4841
#else
Packit Service fa4841
#define SCardListReaderGroups SCardListReaderGroupsA
Packit Service fa4841
#define SCardListReaders SCardListReadersA
Packit Service fa4841
#define SCardListCards SCardListCardsA
Packit Service fa4841
#define SCardListInterfaces SCardListInterfacesA
Packit Service fa4841
#define SCardGetProviderId SCardGetProviderIdA
Packit Service fa4841
#define SCardGetCardTypeProviderName SCardGetCardTypeProviderNameA
Packit Service fa4841
#define SCardIntroduceReaderGroup SCardIntroduceReaderGroupA
Packit Service fa4841
#define SCardForgetReaderGroup SCardForgetReaderGroupA
Packit Service fa4841
#define SCardIntroduceReader SCardIntroduceReaderA
Packit Service fa4841
#define SCardForgetReader SCardForgetReaderA
Packit Service fa4841
#define SCardAddReaderToGroup SCardAddReaderToGroupA
Packit Service fa4841
#define SCardRemoveReaderFromGroup SCardRemoveReaderFromGroupA
Packit Service fa4841
#define SCardIntroduceCardType SCardIntroduceCardTypeA
Packit Service fa4841
#define SCardSetCardTypeProviderName SCardSetCardTypeProviderNameA
Packit Service fa4841
#define SCardForgetCardType SCardForgetCardTypeA
Packit Service fa4841
#define SCardLocateCards SCardLocateCardsA
Packit Service fa4841
#define SCardLocateCardsByATR SCardLocateCardsByATRA
Packit Service fa4841
#define SCardGetStatusChange SCardGetStatusChangeA
Packit Service fa4841
#define SCardConnect SCardConnectA
Packit Service fa4841
#define SCardStatus SCardStatusA
Packit Service fa4841
#define SCardUIDlgSelectCard SCardUIDlgSelectCardA
Packit Service fa4841
#define GetOpenCardName GetOpenCardNameA
Packit Service fa4841
#define SCardReadCache SCardReadCacheA
Packit Service fa4841
#define SCardWriteCache SCardWriteCacheA
Packit Service fa4841
#define SCardGetReaderIcon SCardGetReaderIconA
Packit Service fa4841
#define SCardGetDeviceTypeId SCardGetDeviceTypeIdA
Packit Service fa4841
#define SCardGetReaderDeviceInstanceId SCardGetReaderDeviceInstanceIdA
Packit Service fa4841
#define SCardListReadersWithDeviceInstanceId SCardListReadersWithDeviceInstanceIdA
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
}
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
/**
Packit Service fa4841
 * Extended API
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardEstablishContext)(DWORD dwScope, LPCVOID pvReserved1,
Packit Service fa4841
                                              LPCVOID pvReserved2, LPSCARDCONTEXT phContext);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardReleaseContext)(SCARDCONTEXT hContext);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIsValidContext)(SCARDCONTEXT hContext);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListReaderGroupsA)(SCARDCONTEXT hContext, LPSTR mszGroups,
Packit Service fa4841
                                               LPDWORD pcchGroups);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListReaderGroupsW)(SCARDCONTEXT hContext, LPWSTR mszGroups,
Packit Service fa4841
                                               LPDWORD pcchGroups);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListReadersA)(SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders,
Packit Service fa4841
                                          LPDWORD pcchReaders);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListReadersW)(SCARDCONTEXT hContext, LPCWSTR mszGroups,
Packit Service fa4841
                                          LPWSTR mszReaders, LPDWORD pcchReaders);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListCardsA)(SCARDCONTEXT hContext, LPCBYTE pbAtr,
Packit Service fa4841
                                        LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
Packit Service fa4841
                                        CHAR* mszCards, LPDWORD pcchCards);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListCardsW)(SCARDCONTEXT hContext, LPCBYTE pbAtr,
Packit Service fa4841
                                        LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
Packit Service fa4841
                                        WCHAR* mszCards, LPDWORD pcchCards);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListInterfacesA)(SCARDCONTEXT hContext, LPCSTR szCard,
Packit Service fa4841
                                             LPGUID pguidInterfaces, LPDWORD pcguidInterfaces);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListInterfacesW)(SCARDCONTEXT hContext, LPCWSTR szCard,
Packit Service fa4841
                                             LPGUID pguidInterfaces, LPDWORD pcguidInterfaces);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetProviderIdA)(SCARDCONTEXT hContext, LPCSTR szCard,
Packit Service fa4841
                                            LPGUID pguidProviderId);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetProviderIdW)(SCARDCONTEXT hContext, LPCWSTR szCard,
Packit Service fa4841
                                            LPGUID pguidProviderId);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetCardTypeProviderNameA)(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service fa4841
                                                      DWORD dwProviderId, CHAR* szProvider,
Packit Service fa4841
                                                      LPDWORD pcchProvider);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetCardTypeProviderNameW)(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service fa4841
                                                      DWORD dwProviderId, WCHAR* szProvider,
Packit Service fa4841
                                                      LPDWORD pcchProvider);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIntroduceReaderGroupA)(SCARDCONTEXT hContext, LPCSTR szGroupName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIntroduceReaderGroupW)(SCARDCONTEXT hContext, LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardForgetReaderGroupA)(SCARDCONTEXT hContext, LPCSTR szGroupName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardForgetReaderGroupW)(SCARDCONTEXT hContext, LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIntroduceReaderA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
                                              LPCSTR szDeviceName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIntroduceReaderW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
                                              LPCWSTR szDeviceName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardForgetReaderA)(SCARDCONTEXT hContext, LPCSTR szReaderName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardForgetReaderW)(SCARDCONTEXT hContext, LPCWSTR szReaderName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardAddReaderToGroupA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
                                               LPCSTR szGroupName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardAddReaderToGroupW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
                                               LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardRemoveReaderFromGroupA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
                                                    LPCSTR szGroupName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardRemoveReaderFromGroupW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
                                                    LPCWSTR szGroupName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIntroduceCardTypeA)(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service fa4841
                                                LPCGUID pguidPrimaryProvider,
Packit Service fa4841
                                                LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
Packit Service fa4841
                                                LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardIntroduceCardTypeW)(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service fa4841
                                                LPCGUID pguidPrimaryProvider,
Packit Service fa4841
                                                LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
Packit Service fa4841
                                                LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardSetCardTypeProviderNameA)(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service fa4841
                                                      DWORD dwProviderId, LPCSTR szProvider);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardSetCardTypeProviderNameW)(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service fa4841
                                                      DWORD dwProviderId, LPCWSTR szProvider);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardForgetCardTypeA)(SCARDCONTEXT hContext, LPCSTR szCardName);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardForgetCardTypeW)(SCARDCONTEXT hContext, LPCWSTR szCardName);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardFreeMemory)(SCARDCONTEXT hContext, LPVOID pvMem);
Packit Service fa4841
Packit Service fa4841
typedef HANDLE(WINAPI* fnSCardAccessStartedEvent)(void);
Packit Service fa4841
Packit Service fa4841
typedef void(WINAPI* fnSCardReleaseStartedEvent)(void);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardLocateCardsA)(SCARDCONTEXT hContext, LPCSTR mszCards,
Packit Service fa4841
                                          LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardLocateCardsW)(SCARDCONTEXT hContext, LPCWSTR mszCards,
Packit Service fa4841
                                          LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardLocateCardsByATRA)(SCARDCONTEXT hContext, LPSCARD_ATRMASK rgAtrMasks,
Packit Service fa4841
                                               DWORD cAtrs, LPSCARD_READERSTATEA rgReaderStates,
Packit Service fa4841
                                               DWORD cReaders);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardLocateCardsByATRW)(SCARDCONTEXT hContext, LPSCARD_ATRMASK rgAtrMasks,
Packit Service fa4841
                                               DWORD cAtrs, LPSCARD_READERSTATEW rgReaderStates,
Packit Service fa4841
                                               DWORD cReaders);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetStatusChangeA)(SCARDCONTEXT hContext, DWORD dwTimeout,
Packit Service fa4841
                                              LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetStatusChangeW)(SCARDCONTEXT hContext, DWORD dwTimeout,
Packit Service fa4841
                                              LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardCancel)(SCARDCONTEXT hContext);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardConnectA)(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode,
Packit Service fa4841
                                      DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
Packit Service fa4841
                                      LPDWORD pdwActiveProtocol);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardConnectW)(SCARDCONTEXT hContext, LPCWSTR szReader, DWORD dwShareMode,
Packit Service fa4841
                                      DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
Packit Service fa4841
                                      LPDWORD pdwActiveProtocol);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardReconnect)(SCARDHANDLE hCard, DWORD dwShareMode,
Packit Service fa4841
                                       DWORD dwPreferredProtocols, DWORD dwInitialization,
Packit Service fa4841
                                       LPDWORD pdwActiveProtocol);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardDisconnect)(SCARDHANDLE hCard, DWORD dwDisposition);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardBeginTransaction)(SCARDHANDLE hCard);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardEndTransaction)(SCARDHANDLE hCard, DWORD dwDisposition);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardCancelTransaction)(SCARDHANDLE hCard);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardState)(SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol,
Packit Service fa4841
                                   LPBYTE pbAtr, LPDWORD pcbAtrLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardStatusA)(SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen,
Packit Service fa4841
                                     LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr,
Packit Service fa4841
                                     LPDWORD pcbAtrLen);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardStatusW)(SCARDHANDLE hCard, LPWSTR mszReaderNames,
Packit Service fa4841
                                     LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol,
Packit Service fa4841
                                     LPBYTE pbAtr, LPDWORD pcbAtrLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardTransmit)(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,
Packit Service fa4841
                                      LPCBYTE pbSendBuffer, DWORD cbSendLength,
Packit Service fa4841
                                      LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer,
Packit Service fa4841
                                      LPDWORD pcbRecvLength);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetTransmitCount)(SCARDHANDLE hCard, LPDWORD pcTransmitCount);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardControl)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer,
Packit Service fa4841
                                     DWORD cbInBufferSize, LPVOID lpOutBuffer,
Packit Service fa4841
                                     DWORD cbOutBufferSize, LPDWORD lpBytesReturned);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetAttrib)(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
Packit Service fa4841
                                       LPDWORD pcbAttrLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardSetAttrib)(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
Packit Service fa4841
                                       DWORD cbAttrLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardUIDlgSelectCardA)(LPOPENCARDNAMEA_EX pDlgStruc);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardUIDlgSelectCardW)(LPOPENCARDNAMEW_EX pDlgStruc);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnGetOpenCardNameA)(LPOPENCARDNAMEA pDlgStruc);
Packit Service fa4841
typedef LONG(WINAPI* fnGetOpenCardNameW)(LPOPENCARDNAMEW pDlgStruc);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardDlgExtendedError)(void);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardReadCacheA)(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
                                        DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
Packit Service fa4841
                                        DWORD* DataLen);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardReadCacheW)(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
                                        DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
Packit Service fa4841
                                        DWORD* DataLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardWriteCacheA)(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
                                         DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
Packit Service fa4841
                                         DWORD DataLen);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardWriteCacheW)(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service fa4841
                                         DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
Packit Service fa4841
                                         DWORD DataLen);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetReaderIconA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
                                            LPBYTE pbIcon, LPDWORD pcbIcon);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetReaderIconW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
                                            LPBYTE pbIcon, LPDWORD pcbIcon);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetDeviceTypeIdA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
                                              LPDWORD pdwDeviceTypeId);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetDeviceTypeIdW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
                                              LPDWORD pdwDeviceTypeId);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetReaderDeviceInstanceIdA)(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service fa4841
                                                        LPSTR szDeviceInstanceId,
Packit Service fa4841
                                                        LPDWORD pcchDeviceInstanceId);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardGetReaderDeviceInstanceIdW)(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service fa4841
                                                        LPWSTR szDeviceInstanceId,
Packit Service fa4841
                                                        LPDWORD pcchDeviceInstanceId);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListReadersWithDeviceInstanceIdA)(SCARDCONTEXT hContext,
Packit Service fa4841
                                                              LPCSTR szDeviceInstanceId,
Packit Service fa4841
                                                              LPSTR mszReaders,
Packit Service fa4841
                                                              LPDWORD pcchReaders);
Packit Service fa4841
typedef LONG(WINAPI* fnSCardListReadersWithDeviceInstanceIdW)(SCARDCONTEXT hContext,
Packit Service fa4841
                                                              LPCWSTR szDeviceInstanceId,
Packit Service fa4841
                                                              LPWSTR mszReaders,
Packit Service fa4841
                                                              LPDWORD pcchReaders);
Packit Service fa4841
Packit Service fa4841
typedef LONG(WINAPI* fnSCardAudit)(SCARDCONTEXT hContext, DWORD dwEvent);
Packit Service fa4841
Packit Service fa4841
struct _SCardApiFunctionTable
Packit Service fa4841
{
Packit Service fa4841
	DWORD dwVersion;
Packit Service fa4841
	DWORD dwFlags;
Packit Service fa4841
Packit Service fa4841
	fnSCardEstablishContext pfnSCardEstablishContext;
Packit Service fa4841
	fnSCardReleaseContext pfnSCardReleaseContext;
Packit Service fa4841
	fnSCardIsValidContext pfnSCardIsValidContext;
Packit Service fa4841
	fnSCardListReaderGroupsA pfnSCardListReaderGroupsA;
Packit Service fa4841
	fnSCardListReaderGroupsW pfnSCardListReaderGroupsW;
Packit Service fa4841
	fnSCardListReadersA pfnSCardListReadersA;
Packit Service fa4841
	fnSCardListReadersW pfnSCardListReadersW;
Packit Service fa4841
	fnSCardListCardsA pfnSCardListCardsA;
Packit Service fa4841
	fnSCardListCardsW pfnSCardListCardsW;
Packit Service fa4841
	fnSCardListInterfacesA pfnSCardListInterfacesA;
Packit Service fa4841
	fnSCardListInterfacesW pfnSCardListInterfacesW;
Packit Service fa4841
	fnSCardGetProviderIdA pfnSCardGetProviderIdA;
Packit Service fa4841
	fnSCardGetProviderIdW pfnSCardGetProviderIdW;
Packit Service fa4841
	fnSCardGetCardTypeProviderNameA pfnSCardGetCardTypeProviderNameA;
Packit Service fa4841
	fnSCardGetCardTypeProviderNameW pfnSCardGetCardTypeProviderNameW;
Packit Service fa4841
	fnSCardIntroduceReaderGroupA pfnSCardIntroduceReaderGroupA;
Packit Service fa4841
	fnSCardIntroduceReaderGroupW pfnSCardIntroduceReaderGroupW;
Packit Service fa4841
	fnSCardForgetReaderGroupA pfnSCardForgetReaderGroupA;
Packit Service fa4841
	fnSCardForgetReaderGroupW pfnSCardForgetReaderGroupW;
Packit Service fa4841
	fnSCardIntroduceReaderA pfnSCardIntroduceReaderA;
Packit Service fa4841
	fnSCardIntroduceReaderW pfnSCardIntroduceReaderW;
Packit Service fa4841
	fnSCardForgetReaderA pfnSCardForgetReaderA;
Packit Service fa4841
	fnSCardForgetReaderW pfnSCardForgetReaderW;
Packit Service fa4841
	fnSCardAddReaderToGroupA pfnSCardAddReaderToGroupA;
Packit Service fa4841
	fnSCardAddReaderToGroupW pfnSCardAddReaderToGroupW;
Packit Service fa4841
	fnSCardRemoveReaderFromGroupA pfnSCardRemoveReaderFromGroupA;
Packit Service fa4841
	fnSCardRemoveReaderFromGroupW pfnSCardRemoveReaderFromGroupW;
Packit Service fa4841
	fnSCardIntroduceCardTypeA pfnSCardIntroduceCardTypeA;
Packit Service fa4841
	fnSCardIntroduceCardTypeW pfnSCardIntroduceCardTypeW;
Packit Service fa4841
	fnSCardSetCardTypeProviderNameA pfnSCardSetCardTypeProviderNameA;
Packit Service fa4841
	fnSCardSetCardTypeProviderNameW pfnSCardSetCardTypeProviderNameW;
Packit Service fa4841
	fnSCardForgetCardTypeA pfnSCardForgetCardTypeA;
Packit Service fa4841
	fnSCardForgetCardTypeW pfnSCardForgetCardTypeW;
Packit Service fa4841
	fnSCardFreeMemory pfnSCardFreeMemory;
Packit Service fa4841
	fnSCardAccessStartedEvent pfnSCardAccessStartedEvent;
Packit Service fa4841
	fnSCardReleaseStartedEvent pfnSCardReleaseStartedEvent;
Packit Service fa4841
	fnSCardLocateCardsA pfnSCardLocateCardsA;
Packit Service fa4841
	fnSCardLocateCardsW pfnSCardLocateCardsW;
Packit Service fa4841
	fnSCardLocateCardsByATRA pfnSCardLocateCardsByATRA;
Packit Service fa4841
	fnSCardLocateCardsByATRW pfnSCardLocateCardsByATRW;
Packit Service fa4841
	fnSCardGetStatusChangeA pfnSCardGetStatusChangeA;
Packit Service fa4841
	fnSCardGetStatusChangeW pfnSCardGetStatusChangeW;
Packit Service fa4841
	fnSCardCancel pfnSCardCancel;
Packit Service fa4841
	fnSCardConnectA pfnSCardConnectA;
Packit Service fa4841
	fnSCardConnectW pfnSCardConnectW;
Packit Service fa4841
	fnSCardReconnect pfnSCardReconnect;
Packit Service fa4841
	fnSCardDisconnect pfnSCardDisconnect;
Packit Service fa4841
	fnSCardBeginTransaction pfnSCardBeginTransaction;
Packit Service fa4841
	fnSCardEndTransaction pfnSCardEndTransaction;
Packit Service fa4841
	fnSCardCancelTransaction pfnSCardCancelTransaction;
Packit Service fa4841
	fnSCardState pfnSCardState;
Packit Service fa4841
	fnSCardStatusA pfnSCardStatusA;
Packit Service fa4841
	fnSCardStatusW pfnSCardStatusW;
Packit Service fa4841
	fnSCardTransmit pfnSCardTransmit;
Packit Service fa4841
	fnSCardGetTransmitCount pfnSCardGetTransmitCount;
Packit Service fa4841
	fnSCardControl pfnSCardControl;
Packit Service fa4841
	fnSCardGetAttrib pfnSCardGetAttrib;
Packit Service fa4841
	fnSCardSetAttrib pfnSCardSetAttrib;
Packit Service fa4841
	fnSCardUIDlgSelectCardA pfnSCardUIDlgSelectCardA;
Packit Service fa4841
	fnSCardUIDlgSelectCardW pfnSCardUIDlgSelectCardW;
Packit Service fa4841
	fnGetOpenCardNameA pfnGetOpenCardNameA;
Packit Service fa4841
	fnGetOpenCardNameW pfnGetOpenCardNameW;
Packit Service fa4841
	fnSCardDlgExtendedError pfnSCardDlgExtendedError;
Packit Service fa4841
	fnSCardReadCacheA pfnSCardReadCacheA;
Packit Service fa4841
	fnSCardReadCacheW pfnSCardReadCacheW;
Packit Service fa4841
	fnSCardWriteCacheA pfnSCardWriteCacheA;
Packit Service fa4841
	fnSCardWriteCacheW pfnSCardWriteCacheW;
Packit Service fa4841
	fnSCardGetReaderIconA pfnSCardGetReaderIconA;
Packit Service fa4841
	fnSCardGetReaderIconW pfnSCardGetReaderIconW;
Packit Service fa4841
	fnSCardGetDeviceTypeIdA pfnSCardGetDeviceTypeIdA;
Packit Service fa4841
	fnSCardGetDeviceTypeIdW pfnSCardGetDeviceTypeIdW;
Packit Service fa4841
	fnSCardGetReaderDeviceInstanceIdA pfnSCardGetReaderDeviceInstanceIdA;
Packit Service fa4841
	fnSCardGetReaderDeviceInstanceIdW pfnSCardGetReaderDeviceInstanceIdW;
Packit Service fa4841
	fnSCardListReadersWithDeviceInstanceIdA pfnSCardListReadersWithDeviceInstanceIdA;
Packit Service fa4841
	fnSCardListReadersWithDeviceInstanceIdW pfnSCardListReadersWithDeviceInstanceIdW;
Packit Service fa4841
	fnSCardAudit pfnSCardAudit;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
typedef struct _SCardApiFunctionTable SCardApiFunctionTable;
Packit Service fa4841
typedef SCardApiFunctionTable* PSCardApiFunctionTable;
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
extern "C"
Packit Service fa4841
{
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetErrorString(LONG errorCode);
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetAttributeString(DWORD dwAttrId);
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetProtocolString(DWORD dwProtocols);
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetShareModeString(DWORD dwShareMode);
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetDispositionString(DWORD dwDisposition);
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetScopeString(DWORD dwScope);
Packit Service fa4841
	WINSCARDAPI const char* WINAPI SCardGetCardStateString(DWORD dwCardState);
Packit Service fa4841
	WINSCARDAPI char* WINAPI SCardGetReaderStateString(DWORD dwReaderState);
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
}
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#endif /* WINPR_SMARTCARD_H */