Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/solaris/native/sun/security/smartcardio/MUSCLE/winscard.h
32303 views
/*1* MUSCLE SmartCard Development ( https://pcsclite.apdu.fr/ )2*3* Copyright (C) 1999-20034* David Corcoran <[email protected]>5* Copyright (C) 2002-20096* Ludovic Rousseau <[email protected]>7*8Redistribution and use in source and binary forms, with or without9modification, are permitted provided that the following conditions10are met:11121. Redistributions of source code must retain the above copyright13notice, this list of conditions and the following disclaimer.142. Redistributions in binary form must reproduce the above copyright15notice, this list of conditions and the following disclaimer in the16documentation and/or other materials provided with the distribution.173. The name of the author may not be used to endorse or promote products18derived from this software without specific prior written permission.1920THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR21IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES22OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.23IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,24INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT25NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,26DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY27THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT28(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF29THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.30*/3132/**33* @file34* @brief This handles smart card reader communications.35*/3637#ifndef __winscard_h__38#define __winscard_h__3940#include <pcsclite.h>4142#ifdef __cplusplus43extern "C"44{45#endif4647#ifndef PCSC_API48#define PCSC_API49#endif5051PCSC_API LONG SCardEstablishContext(DWORD dwScope,52/*@null@*/ LPCVOID pvReserved1, /*@null@*/ LPCVOID pvReserved2,53/*@out@*/ LPSCARDCONTEXT phContext);5455PCSC_API LONG SCardReleaseContext(SCARDCONTEXT hContext);5657PCSC_API LONG SCardIsValidContext(SCARDCONTEXT hContext);5859PCSC_API LONG SCardConnect(SCARDCONTEXT hContext,60LPCSTR szReader,61DWORD dwShareMode,62DWORD dwPreferredProtocols,63/*@out@*/ LPSCARDHANDLE phCard, /*@out@*/ LPDWORD pdwActiveProtocol);6465PCSC_API LONG SCardReconnect(SCARDHANDLE hCard,66DWORD dwShareMode,67DWORD dwPreferredProtocols,68DWORD dwInitialization, /*@out@*/ LPDWORD pdwActiveProtocol);6970PCSC_API LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);7172PCSC_API LONG SCardBeginTransaction(SCARDHANDLE hCard);7374PCSC_API LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);7576PCSC_API LONG SCardStatus(SCARDHANDLE hCard,77/*@null@*/ /*@out@*/ LPSTR mszReaderName,78/*@null@*/ /*@out@*/ LPDWORD pcchReaderLen,79/*@null@*/ /*@out@*/ LPDWORD pdwState,80/*@null@*/ /*@out@*/ LPDWORD pdwProtocol,81/*@null@*/ /*@out@*/ LPBYTE pbAtr,82/*@null@*/ /*@out@*/ LPDWORD pcbAtrLen);8384PCSC_API LONG SCardGetStatusChange(SCARDCONTEXT hContext,85DWORD dwTimeout,86SCARD_READERSTATE *rgReaderStates, DWORD cReaders);8788PCSC_API LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode,89LPCVOID pbSendBuffer, DWORD cbSendLength,90/*@out@*/ LPVOID pbRecvBuffer, DWORD cbRecvLength,91LPDWORD lpBytesReturned);9293PCSC_API LONG SCardTransmit(SCARDHANDLE hCard,94const SCARD_IO_REQUEST *pioSendPci,95LPCBYTE pbSendBuffer, DWORD cbSendLength,96/*@out@*/ SCARD_IO_REQUEST *pioRecvPci,97/*@out@*/ LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);9899PCSC_API LONG SCardListReaderGroups(SCARDCONTEXT hContext,100/*@out@*/ LPSTR mszGroups, LPDWORD pcchGroups);101102PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext,103/*@null@*/ /*@out@*/ LPCSTR mszGroups,104/*@null@*/ /*@out@*/ LPSTR mszReaders,105/*@out@*/ LPDWORD pcchReaders);106107PCSC_API LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem);108109PCSC_API LONG SCardCancel(SCARDCONTEXT hContext);110111PCSC_API LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,112/*@out@*/ LPBYTE pbAttr, LPDWORD pcbAttrLen);113114PCSC_API LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,115LPCBYTE pbAttr, DWORD cbAttrLen);116117#ifdef __cplusplus118}119#endif120121#endif122123124125