Fungsi SCardListReadersWithDeviceInstanceIdA (winscard.h)
Fungsi SCardListReadersWithDeviceInstanceId mendapatkan daftar pembaca yang telah menyediakan pengidentifikasi instans perangkat. Fungsi ini tidak memengaruhi status pembaca.
Sintaks
LONG SCardListReadersWithDeviceInstanceIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szDeviceInstanceId,
[out, optional] LPSTR mszReaders,
[in, out] LPDWORD pcchReaders
);
Parameter
[in] hContext
Menangani yang mengidentifikasi konteks resource manager untuk kueri. Anda dapat mengatur konteks resource manager dengan panggilan sebelumnya ke fungsi SCardEstablishContext . Parameter ini tidak boleh NULL.
[in] szDeviceInstanceId
ID instans perangkat pembaca. Anda bisa mendapatkan nilai ini dengan memanggil fungsi SCardGetReaderDeviceInstanceId dengan nama pembaca atau dengan memanggil fungsi SetupDiGetDeviceInstanceId dari DDK.
[out, optional] mszReaders
Multi-string yang berisi pembaca kartu pintar dalam pengidentifikasi instans perangkat yang disediakan. Jika nilai ini NULL, maka fungsi mengabaikan panjang buffer yang disediakan dalam parameter pcchReaders , menulis panjang buffer yang akan dikembalikan jika parameter ini belum NULL ke pcchReaders, dan mengembalikan kode sukses.
[in, out] pcchReaders
Panjangnya, dalam karakter, dari buffer mszReaders . Parameter ini menerima panjang aktual struktur multi-string, termasuk semua karakter null yang mengakhiri. 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. Setelah Anda selesai menggunakan memori ini, batalkan alokasinya dengan menggunakan fungsi SCardFreeMemory .
Nilai kembali
Fungsi ini mengembalikan nilai yang berbeda tergantung pada apakah berhasil atau gagal.
Menampilkan kode | Deskripsi |
---|---|
|
SCARD_S_SUCCESS. |
|
Kode kesalahan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar. |
Keterangan
Fungsi ini tidak dialihkan. Memanggil fungsi SCardListReadersWithDeviceInstanceId saat di dalam sesi Desktop Jauh gagal dengan kode kesalahan SCARD_E_READER_UNAVAILABLE.
Contoh
szDeviceInstanceIdcchReaderNameLONG lReturn, lReturn2;
LPTSTR pmszReaders = NULL;
LPTSTR pReader = NULL;WCHAR
DWORD cchReaderName = SCARD_AUTOALLOCATE;
// Retrieve the reader’s name from it’s device instance ID
// hContext was set by a previous call to SCardEstablishContext.
// szDeviceInstanceId was obtained by calling SetupDiGetDeviceInstanceId
lReturn = SCardListReadersWithDeviceInstanceId (hContext,
szDeviceInstanceId,
(LPTSTR)&pmszReaders,
&cchReaderName);
switch( lReturn )
{
case SCARD_E_NO_READERS_AVAILABLE:
printf("No readers have the provided device instance ID.\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( hContext,
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 SCardListReadersWithDeviceInstanceId sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur 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
Klien minimum yang didukung | Windows 8 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winscard.h |
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