Fungsi SCardListReadersA (winscard.h)
Fungsi SCardListReaders menyediakan daftar pembaca dalam sekumpulan grup pembaca bernama, menghilangkan duplikat.
Pemanggil menyediakan daftar grup pembaca, dan menerima daftar pembaca dalam grup bernama. Nama grup yang tidak dikenal diabaikan. Fungsi ini hanya mengembalikan pembaca dalam grup bernama yang saat ini dilampirkan ke sistem dan tersedia untuk digunakan.
Sintaks
LONG SCardListReadersA(
[in] SCARDCONTEXT hContext,
[in, optional] LPCSTR mszGroups,
[out] LPSTR mszReaders,
[in, out] LPDWORD pcchReaders
);
Parameter
[in] hContext
Menangani yang mengidentifikasi konteks resource manager untuk kueri. Konteks resource manager dapat diatur oleh panggilan sebelumnya ke SCardEstablishContext.
Jika parameter ini diatur ke NULL, pencarian pembaca tidak terbatas pada konteks apa pun.
[in, optional] mszGroups
Nama grup pembaca yang ditentukan ke sistem, sebagai multi-string. Gunakan nilai NULL untuk mencantumkan semua pembaca dalam sistem (yaitu, grup SCard$AllReaders).
[out] mszReaders
Multi-string yang mencantumkan pembaca kartu dalam grup pembaca yang disediakan. Jika nilai ini NULL, SCardListReaders mengabaikan panjang buffer yang disediakan dalam pcchReaders, menulis panjang buffer yang akan dikembalikan jika parameter ini belum NULL ke pcchReaders, dan mengembalikan kode sukses.
[in, out] pcchReaders
Panjang buffer mszReaders dalam karakter. Parameter ini menerima panjang aktual struktur multi-string, termasuk semua karakter null berikutnya. Jika panjang buffer ditentukan sebagai SCARD_AUTOALLOCATE, maka mszReaders dikonversi ke penunjuk ke penunjuk byte, dan menerima alamat blok memori yang berisi struktur multi-string. Blok memori ini harus dialokasikan dengan SCardFreeMemory.
Nilai kembali
Fungsi ini mengembalikan nilai yang berbeda tergantung pada apakah berhasil atau gagal.
Mengembalikan kode/nilai | Deskripsi |
---|---|
|
SCARD_S_SUCCESS |
|
SCARD_E_NO_READERS_AVAILABLE |
|
SCARD_E_READER_UNAVAILABLE |
|
Kode kesalahan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar. |
Keterangan
Fungsi SCardListReaders adalah fungsi kueri database. Untuk informasi selengkapnya tentang fungsi kueri database lainnya, lihat Fungsi Kueri Database Kartu Pintar.
Contoh
Contoh berikut menunjukkan daftar pembaca.
LPTSTR pmszReaders = NULL;
LPTSTR pReader;
LONG lReturn, lReturn2;
DWORD cch = SCARD_AUTOALLOCATE;
// Retrieve the list the readers.
// hSC was set by a previous call to SCardEstablishContext.
lReturn = SCardListReaders(hSC,
NULL,
(LPTSTR)&pmszReaders,
&cch );
switch( lReturn )
{
case SCARD_E_NO_READERS_AVAILABLE:
printf("Reader is not in groups.\n");
// Take appropriate action.
// ...
break;
case SCARD_S_SUCCESS:
// Do something with the multi string of readers.
// Output the values.
// A double-null terminates the list of values.
pReader = pmszReaders;
while ( '\0' != *pReader )
{
// Display the value.
printf("Reader: %S\n", pReader );
// Advance to the next value.
pReader = pReader + wcslen((wchar_t *)pReader) + 1;
}
// Free the memory.
lReturn2 = SCardFreeMemory( hSC,
pmszReaders );
if ( SCARD_S_SUCCESS != lReturn2 )
printf("Failed SCardFreeMemory\n");
break;
default:
printf("Failed SCardListReaders\n");
// Take appropriate action.
// ...
break;
}
Catatan
Header winscard.h mendefinisikan SCardListReaders sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winscard.h |
Pustaka | Winscard.lib |
DLL | Winscard.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk