Blame winpr/libwinpr/smartcard/test/TestSmartCardListReaders.c
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/crt.h>
|
|
Packit |
1fb8d4 |
#include <winpr/smartcard.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
int TestSmartCardListReaders(int argc, char* argv[])
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
LONG lStatus;
|
|
Packit |
1fb8d4 |
LPSTR pReader;
|
|
Packit |
1fb8d4 |
SCARDCONTEXT hSC;
|
|
Packit |
1fb8d4 |
LPSTR mszReaders = NULL;
|
|
Packit |
1fb8d4 |
DWORD cchReaders = SCARD_AUTOALLOCATE;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
lStatus = SCardEstablishContext(SCARD_SCOPE_USER, NULL, NULL, &hSC);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (lStatus != SCARD_S_SUCCESS)
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
printf("SCardEstablishContext failure: %s (0x%08" PRIX32 ")\n",
|
|
Packit Service |
5a9772 |
SCardGetErrorString(lStatus), lStatus);
|
|
Packit |
1fb8d4 |
return 0;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
lStatus = SCardListReadersA(hSC, NULL, (LPSTR)&mszReaders, &cchReaders);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (lStatus != SCARD_S_SUCCESS)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
if (lStatus == SCARD_E_NO_READERS_AVAILABLE)
|
|
Packit |
1fb8d4 |
printf("SCARD_E_NO_READERS_AVAILABLE\n");
|
|
Packit |
1fb8d4 |
else
|
|
Packit |
1fb8d4 |
return -1;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
else
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
pReader = mszReaders;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
while (*pReader)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
printf("Reader: %s\n", pReader);
|
|
Packit Service |
5a9772 |
pReader = pReader + strlen((CHAR*)pReader) + 1;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
lStatus = SCardFreeMemory(hSC, mszReaders);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (lStatus != SCARD_S_SUCCESS)
|
|
Packit |
1fb8d4 |
printf("Failed SCardFreeMemory\n");
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
SCardReleaseContext(hSC);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
return 0;
|
|
Packit |
1fb8d4 |
}
|