Fungsi SCardListCardsA (winscard.h)
Fungsi SCardListCards mencari database kartu pintar dan menyediakan daftar kartu bernama yang sebelumnya diperkenalkan ke sistem oleh pengguna.
Pemanggil menentukan string ATR , sekumpulan pengidentifikasi antarmuka (GUID), atau keduanya. Jika string ATR dan array pengidentifikasi disediakan, kartu yang dikembalikan akan cocok dengan string ATR yang disediakan dan mendukung antarmuka yang ditentukan.
Sintaksis
LONG SCardListCardsA(
[in] SCARDCONTEXT hContext,
[in, optional] LPCBYTE pbAtr,
[in] LPCGUID rgquidInterfaces,
[in] DWORD cguidInterfaceCount,
[out] CHAR *mszCards,
[in, out] LPDWORD pcchCards
);
Parameter
[in] hContext
Tangani yang mengidentifikasi konteks resource manager untuk kueri. Konteks resource manager dapat diatur oleh panggilan sebelumnya ke SCardEstablishContext.
Jika parameter ini diatur ke NULL, pencarian kartu tidak terbatas pada konteks apa pun.
[in, optional] pbAtr
Alamat string ATR untuk dibandingkan dengan kartu yang diketahui, atau null jika tidak ada pencocokan ATR yang akan dilakukan.
[in] rgquidInterfaces
Array pengidentifikasi (GUID), atau NULL jika tidak ada pencocokan antarmuka yang akan dilakukan. Ketika array disediakan, nama kartu akan dikembalikan hanya jika semua pengidentifikasi yang ditentukan didukung oleh kartu.
[in] cguidInterfaceCount
Jumlah entri dalam array rgguidInterfaces. Jika rgguidInterfacesNULL, maka nilai ini diabaikan.
[out] mszCards
Multi-string yang mencantumkan kartu pintar ditemukan. Jika nilai ini null, SCardListCards mengabaikan panjang buffer yang disediakan dalam pcchCards, mengembalikan panjang buffer yang akan dikembalikan jika parameter ini belum NULL ke pcchCards dan kode sukses.
[in, out] pcchCards
Panjang mszCards buffer dalam karakter. Menerima panjang aktual struktur multi-string, termasuk semua karakter null
Mengembalikan nilai
Fungsi ini mengembalikan nilai yang berbeda tergantung pada apakah berhasil atau gagal.
Mengembalikan kode | Deskripsi |
---|---|
|
SCARD_S_SUCCESS. |
|
Kode kesalahan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar. |
Komentar
Fungsi ini tidak dialihkan, tetapi memanggil fungsi ketika berada di dalam sesi Desktop Jauh tidak akan mengakibatkan kesalahan. Ini hanya berarti bahwa hasilnya akan berasal dari komputer jarak jauh alih-alih komputer lokal.
Untuk mengembalikan semua kartu pintar yang diperkenalkan ke subsistem, atur pbAtr dan rgguidInterfaces ke NULL.
Fungsi SCardListCards
Memanggil fungsi ini harus dilakukan di luar transaksi. Jika aplikasi memulai transaksi dengan fungsi
Windows Server 2008 R2 dan Windows 7: Memanggil fungsi ini dalam transaksi dapat mengakibatkan komputer Anda menjadi tidak responsif.
Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Tidak berlaku.
Contoh
Contoh berikut menunjukkan daftar kartu pintar.
LPTSTR pmszCards = NULL;
LPTSTR pCard;
LONG lReturn;
DWORD cch = SCARD_AUTOALLOCATE;
// Retrieve the list of cards.
lReturn = SCardListCards(NULL,
NULL,
NULL,
NULL,
(LPTSTR)&pmszCards,
&cch );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardListCards\n");
exit(1); // Or other appropriate error action
}
// Do something with the multi string of cards.
// Output the values.
// A double-null terminates the list of values.
pCard = pmszCards;
while ( '\0' != *pCard )
{
// Display the value.
printf("%S\n", pCard );
// Advance to the next value.
pCard = pCard + wcslen(pCard) + 1;
}
// Remember to free pmszCards (by calling SCardFreeMemory).
// ...
Nota
Header winscard.h mendefinisikan SCardListCards sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winscard.h |
Pustaka |
Winscard.lib |
DLL |
Winscard.dll |
Lihat juga
SCardListReaders