From 04e5feea8b62e866520b2d24b6d2fa076bf2b286 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 29 Oct 2013 09:07:05 +0900 Subject: [PATCH] scd: pinpad fix for PC/SC on Windows. * scd/apdu.c (SCARD_CTL_CODE): Fix for Windows. -- cherry picked from master. --- scd/apdu.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scd/apdu.c b/scd/apdu.c index a51e1810b..dc186b5bd 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -227,7 +227,13 @@ static char (* DLSTDCALL CT_close) (unsigned short ctn); /* Fix pcsc-lite ABI incompatibilty. */ #ifndef SCARD_CTL_CODE -# define SCARD_CTL_CODE(code) (0x42000000 + (code)) +#ifdef _WIN32 +#include +#define SCARD_CTL_CODE(code) CTL_CODE(FILE_DEVICE_SMARTCARD, (code), \ + METHOD_BUFFERED, FILE_ANY_ACCESS) +#else +#define SCARD_CTL_CODE(code) (0x42000000 + (code)) +#endif #endif #define CM_IOCTL_GET_FEATURE_REQUEST SCARD_CTL_CODE(3400) @@ -330,6 +336,7 @@ long (* DLSTDCALL pcsc_control) (long card, /* Prototypes. */ +static int pcsc_vendor_specific_init (int slot); static int pcsc_get_status (int slot, unsigned int *status); static int reset_pcsc_reader (int slot); static int apdu_get_status_internal (int slot, int hang, int no_atr_reset,