Fungsi SCardGetReaderDeviceInstanceIdA (winscard.h)

Fungsi SCardGetReaderDeviceInstanceId mendapatkan pengidentifikasi instans perangkat pembaca kartu untuk nama pembaca yang diberikan. Fungsi ini tidak memengaruhi status pembaca.

Sintaks

LONG SCardGetReaderDeviceInstanceIdA(
  [in]            SCARDCONTEXT hContext,
  [in]            LPCSTR       szReaderName,
  [out, optional] LPSTR        szDeviceInstanceId,
  [in, out]       LPDWORD      pcchDeviceInstanceId
);

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] szReaderName

Nama pembaca. Anda bisa mendapatkan nilai ini dengan memanggil fungsi SCardListReaders .

[out, optional] szDeviceInstanceId

Buffer yang menerima ID instans perangkat pembaca. Jika nilai ini adalah NULL, fungsi mengabaikan panjang buffer yang disediakan dalam parameter cchDeviceInstanceId , menulis panjang buffer yang akan dikembalikan jika parameter ini belum NULL ke cchDeviceInstanceId, dan mengembalikan kode keberhasilan.

[in, out] pcchDeviceInstanceId

Panjang, dalam karakter, dari buffer szDeviceInstanceId , termasuk terminator NULL . Jika panjang buffer ditentukan sebagai SCARD_AUTOALLOCATE, maka parameter szDeviceInstanceId dikonversi ke penunjuk ke penunjuk byte, dan menerima alamat blok memori yang berisi id instans. Blok memori ini harus dialokasikan dengan fungsi SCardFreeMemory .

Nilai kembali

Fungsi ini mengembalikan nilai yang berbeda tergantung pada apakah berhasil atau gagal.

Menampilkan kode Deskripsi
Berhasil
SCARD_S_SUCCESS.
Kegagalan
Kode kesalahan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar.

Keterangan

Fungsi ini tidak dialihkan. Memanggil fungsi SCardGetReaderDeviceInstanceId saat di dalam sesi Desktop Jauh gagal dengan kode kesalahan SCARD_E_READER_UNAVAILABLE.

Contoh


LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";
WCHAR    szDeviceInstanceId[256];
DWORD    cchDeviceInstanceId = 256;

// Retrieve the reader's device instance ID.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderDeviceInstanceId (hContext,
                         szReaderName,
                         szDeviceInstanceId,
                         &cchDeviceInstanceId);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderDeviceInstanceId - %x\n", lReturn);
    // Take appropriate action.
}



Catatan

Header winscard.h mendefinisikan SCardGetReaderDeviceInstanceId sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprocessor 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