From 806a6b397caf6ec68712c4e784e2f22c1161e849 Mon Sep 17 00:00:00 2001 From: Florian Ramillien Date: Fri, 28 Aug 2015 14:26:16 +0200 Subject: [PATCH] src: set pioRecvPci in SCardTransmit to NULL - It fixes an error on SCardTransmit for windows: RPC_X_BAD_STUB_DATA / 0x06F7 and does not affect other platforms. PR-URL: https://github.com/santigimeno/node-pcsclite/pull/38 Reviewed-By: Ludovic Rousseau Reviewed-By: Santiago Gimeno --- src/cardreader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cardreader.cpp b/src/cardreader.cpp index 3623ddd..2a6d98d 100644 --- a/src/cardreader.cpp +++ b/src/cardreader.cpp @@ -532,7 +532,6 @@ void CardReader::DoTransmit(uv_work_t* req) { TransmitInput *ti = static_cast(baton->input); CardReader* obj = baton->reader; - SCARD_IO_REQUEST io_request; TransmitResult *tr = new TransmitResult(); tr->data = new unsigned char[ti->out_len]; tr->len = ti->out_len; @@ -541,10 +540,11 @@ void CardReader::DoTransmit(uv_work_t* req) { /* Lock mutex */ uv_mutex_lock(&obj->m_mutex); /* Connected? */ + // Under windows, SCARD_IO_REQUEST param must be NULL. Else error RPC_X_BAD_STUB_DATA / 0x06F7 on each call. if (obj->m_card_handle) { SCARD_IO_REQUEST send_pci = { ti->card_protocol, sizeof(SCARD_IO_REQUEST) }; result = SCardTransmit(obj->m_card_handle, &send_pci, ti->in_data, ti->in_len, - &io_request, tr->data, &tr->len); + NULL, tr->data, &tr->len); } /* Unlock the mutex */