0N/A/*
2362N/A * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
2362N/A * published by the Free Software Foundation. Oracle designates this
0N/A * particular file as subject to the "Classpath" exception as provided
2362N/A * by Oracle in the LICENSE file that accompanied this code.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/A
0N/Atypedef LONG (*FPTR_SCardEstablishContext)(ULONG dwScope,
0N/A const void *pvReserved1,
0N/A const void *pvReserved2,
0N/A LONG *phContext);
0N/A
0N/Atypedef LONG (*FPTR_SCardConnect)(LONG hContext,
0N/A const char *szReader,
0N/A ULONG dwShareMode,
0N/A ULONG dwPreferredProtocols,
0N/A LONG *phCard, ULONG *pdwActiveProtocol);
0N/A
0N/Atypedef LONG (*FPTR_SCardDisconnect)(LONG hCard, ULONG dwDisposition);
0N/A
0N/Atypedef LONG (*FPTR_SCardStatus)(LONG hCard,
0N/A char *mszReaderNames,
0N/A ULONG *pcchReaderLen,
0N/A ULONG *pdwState,
0N/A ULONG *pdwProtocol,
0N/A unsigned char *pbAtr, ULONG *pcbAtrLen);
0N/A
0N/Atypedef LONG (*FPTR_SCardGetStatusChange)(LONG hContext,
0N/A ULONG dwTimeout,
0N/A LPSCARD_READERSTATE_A rgReaderStates, ULONG cReaders);
0N/A
0N/Atypedef LONG (*FPTR_SCardTransmit)(LONG hCard,
0N/A LPCSCARD_IO_REQUEST pioSendPci,
0N/A const unsigned char *pbSendBuffer,
0N/A ULONG cbSendLength,
0N/A LPSCARD_IO_REQUEST pioRecvPci,
0N/A unsigned char *pbRecvBuffer, ULONG *pcbRecvLength);
0N/A
0N/Atypedef LONG (*FPTR_SCardListReaders)(LONG hContext,
0N/A const char *mszGroups,
0N/A char *mszReaders, ULONG *pcchReaders);
0N/A
0N/Atypedef LONG (*FPTR_SCardBeginTransaction)(LONG hCard);
0N/A
0N/Atypedef LONG (*FPTR_SCardEndTransaction)(LONG hCard, ULONG dwDisposition);
0N/A
0N/Atypedef LONG (*FPTR_SCardControl)(LONG hCard, ULONG dwControlCode,
0N/A const void* pbSendBuffer, ULONG cbSendLength, const void* pbRecvBuffer,
0N/A ULONG pcbRecvLength, ULONG *lpBytesReturned);
0N/A
0N/A#define CALL_SCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext) \
0N/A ((scardEstablishContext)(dwScope, pvReserved1, pvReserved2, phContext))
0N/A
0N/A#define CALL_SCardConnect(hContext, szReader, dwSharedMode, dwPreferredProtocols, phCard, pdwActiveProtocols) \
0N/A ((scardConnect)(hContext, szReader, dwSharedMode, dwPreferredProtocols, phCard, pdwActiveProtocols))
0N/A
0N/A#define CALL_SCardDisconnect(hCard, dwDisposition) \
0N/A ((scardDisconnect)(hCard, dwDisposition))
0N/A
0N/A#define CALL_SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen) \
0N/A ((scardStatus)(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen))
0N/A
0N/A#define CALL_SCardGetStatusChange(hContext, dwTimeout, rgReaderStates, cReaders) \
0N/A ((scardGetStatusChange)(hContext, dwTimeout, rgReaderStates, cReaders))
0N/A
0N/A#define CALL_SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
0N/A pioRecvPci, pbRecvBuffer, pcbRecvLength) \
0N/A ((scardTransmit)(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
0N/A pioRecvPci, pbRecvBuffer, pcbRecvLength))
0N/A
0N/A#define CALL_SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders) \
0N/A ((scardListReaders)(hContext, mszGroups, mszReaders, pcchReaders))
0N/A
0N/A#define CALL_SCardBeginTransaction(hCard) \
0N/A ((scardBeginTransaction)(hCard))
0N/A
0N/A#define CALL_SCardEndTransaction(hCard, dwDisposition) \
0N/A ((scardEndTransaction)(hCard, dwDisposition))
0N/A
0N/A#define CALL_SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
0N/A pbRecvBuffer, pcbRecvLength, lpBytesReturned) \
0N/A ((scardControl)(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
0N/A pbRecvBuffer, pcbRecvLength, lpBytesReturned))
0N/A
0N/Aextern FPTR_SCardEstablishContext scardEstablishContext;
0N/Aextern FPTR_SCardConnect scardConnect;
0N/Aextern FPTR_SCardDisconnect scardDisconnect;
0N/Aextern FPTR_SCardStatus scardStatus;
0N/Aextern FPTR_SCardGetStatusChange scardGetStatusChange;
0N/Aextern FPTR_SCardTransmit scardTransmit;
0N/Aextern FPTR_SCardListReaders scardListReaders;
0N/Aextern FPTR_SCardBeginTransaction scardBeginTransaction;
0N/Aextern FPTR_SCardEndTransaction scardEndTransaction;
0N/Aextern FPTR_SCardControl scardControl;