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
***************************************************************

Reply via email to