Hello, Here is the new C-style API that will be provided with the new release upcoming early next week. It is identical to that on the Microsoft system and all you have to do is #include <winscard.h> and link to libpcsc. LONG SCardEstablishContext( DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext ); LONG SCardReleaseContext( SCARDCONTEXT hContext ); LONG SCardListReaderGroupsA( SCARDCONTEXT hContext, LPSTR mszGroups, LPDWORD pcchGroups ); LONG SCardListReaders( SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders, LPDWORD pcchReaders ); LONG SCardListCards( SCARDCONTEXT hContext, LPCBYTE pbAtr, LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount, LPSTR mszCards, LPDWORD pcchCards ); LONG SCardListInterfaces( SCARDCONTEXT hContext, LPCSTR szCard, LPGUID pguidInterfaces, LPDWORD pcguidInterfaces ); LONG SCardGetProviderId( SCARDCONTEXT hContext, LPCSTR szCard, LPGUID pguidProviderId ); LONG SCardGetCardTypeProviderName( SCARDCONTEXT hContext, LPCSTR szCardName, DWORD dwProviderId, LPSTR szProvider, LPDWORD pcchProvider ); LONG SCardIntroduceReaderGroup( SCARDCONTEXT hContext, LPCSTR szGroupName ); LONG SCardForgetReaderGroup( SCARDCONTEXT hContext, LPCSTR szGroupName ); LONG SCardIntroduceReader( SCARDCONTEXT hContext, LPCSTR szReaderName, LPCSTR szDeviceName ); LONG SCardForgetReader( SCARDCONTEXT hContext, LPCSTR szReaderName ); LONG SCardAddReaderToGroup( SCARDCONTEXT hContext, LPCSTR szReaderName, LPCSTR szGroupName ); LONG SCardRemoveReaderFromGroup( SCARDCONTEXT hContext, LPCSTR szReaderName, LPCSTR szGroupName ); LONG SCardIntroduceCardType( SCARDCONTEXT hContext, LPCSTR szCardName, LPCGUID pguidPrimaryProvider, LPCGUID rgguidInterfaces, DWORD dwInterfaceCount, LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen ); LONG SCardSetCardTypeProviderName( SCARDCONTEXT hContext, LPCSTR szCardName, DWORD dwProviderId, LPCSTR szProvider ); LONG SCardForgetCardType( SCARDCONTEXT hContext, LPCSTR szCardName ); LONG SCardFreeMemory( SCARDCONTEXT hContext, LPVOID pvMem ); LONG SCardLocateCards( SCARDCONTEXT hContext, LPCSTR mszCards, LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders ); LONG SCardGetStatusChange( SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders ); LONG SCardCancel( SCARDCONTEXT hContext ); LONG SCardConnect( SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol ); LONG SCardReconnect( SCARDHANDLE hCard, DWORD dwShareMode, DWORD dwPreferredProtocols, DWORD dwInitialization, LPDWORD pdwActiveProtocol ); LONG SCardDisconnect( SCARDHANDLE hCard, DWORD dwDisposition ); LONG SCardBeginTransaction( SCARDHANDLE hCard ); LONG SCardEndTransaction( SCARDHANDLE hCard, DWORD dwDisposition ); LONG SCardCancelTransaction( SCARDHANDLE hCard ); LONG SCardState( SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen ); LONG SCardStatus( SCARDHANDLE hCard, LPSTR szReaderName, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen ); LONG SCardTransmit( SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, LPCBYTE pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength ); LONG SCardControl( SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned ); LONG SCardGetAttrib( SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr, LPDWORD pcbAttrLen ); LONG SCardSetAttrib( SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr, DWORD cbAttrLen ); ************************************************************* David Corcoran Internet Security/Smartcards Home: Purdue University 2252 US Highway 52 West Department of Computer Science West Lafayette, IN 47906 CERIAS/COAST Laboratory Home: (765) 463-2455 Cell: (317) 514-4797 http://www.linuxnet.com ************************************************************* *************************************************************** Linux Smart Card Developers - M.U.S.C.L.E. (Movement for the Use of Smart Cards in a Linux Environment) http://www.linuxnet.com/smartcard/index.html ***************************************************************