Fungsi SCardStatusA (winscard.h)
Fungsi SCardStatus menyediakan status kartu pintar saat ini dalam pembaca. Anda dapat memanggilnya kapan saja setelah panggilan berhasil ke SCardConnect dan sebelum panggilan berhasil ke SCardDisconnect. Ini tidak mempengaruhi statuspembaca atau driver pembaca.
Sintaks
LONG SCardStatusA(
[in] SCARDHANDLE hCard,
[out] LPSTR mszReaderNames,
[in, out, optional] LPDWORD pcchReaderLen,
[out, optional] LPDWORD pdwState,
[out, optional] LPDWORD pdwProtocol,
[out] LPBYTE pbAtr,
[in, out, optional] LPDWORD pcbAtrLen
);
Parameter
[in] hCard
Nilai referensi yang dikembalikan dari SCardConnect.
[out] mszReaderNames
Daftar nama tampilan (beberapa string) yang diketahui pembaca yang saat ini tersambung.
[in, out, optional] pcchReaderLen
Pada input, memasok panjang buffer szReaderName .
Pada output, menerima panjang aktual (dalam karakter) dari daftar nama pembaca, termasuk karakter NULL berikutnya. Jika panjang buffer ini ditentukan sebagai SCARD_AUTOALLOCATE, maka szReaderName dikonversi ke penunjuk ke penunjuk byte, dan menerima alamat blok memori yang berisi struktur multi-string.
[out, optional] pdwState
Status kartu pintar saat ini di pembaca. Setelah berhasil, ia menerima salah satu indikator status berikut.
Nilai | Makna |
---|---|
|
Tidak ada kartu di pembaca. |
|
Ada kartu di pembaca, tetapi belum dipindahkan ke posisi untuk digunakan. |
|
Ada kartu di pembaca dalam posisi untuk digunakan. Kartu tidak bertenaga. |
|
Daya sedang diberikan ke kartu, tetapi driver pembaca tidak menyadari mode kartu. |
|
Kartu telah direset dan sedang menunggu negosiasi PTS. |
|
Kartu telah direset dan protokol komunikasi tertentu telah dibuat. |
[out, optional] pdwProtocol
Protokol saat ini, jika ada. Nilai yang dikembalikan hanya bermakna jika nilai pdwState yang dikembalikan SCARD_SPECIFICMODE.
Nilai | Makna |
---|---|
|
Protokol Transfer Mentah sedang digunakan. |
|
Protokol ISO 7816/3 T=0 sedang digunakan. |
|
Protokol ISO 7816/3 T=1 sedang digunakan. |
[out] pbAtr
Arahkan ke buffer 32 byte yang menerima string ATR dari kartu yang saat ini dimasukkan, jika tersedia.
[in, out, optional] pcbAtrLen
Pada input, memasok panjang buffer pbAtr . Pada output, menerima jumlah byte dalam string ATR (maksimum 32 byte). Jika panjang buffer ini ditentukan sebagai SCARD_AUTOALLOCATE, maka pbAtr dikonversi ke penunjuk ke penunjuk byte, dan menerima alamat blok memori yang berisi struktur multi-string.
Nilai kembali
Jika fungsi berhasil memberikan status kartu pintar saat ini dalam pembaca, nilai yang dikembalikan SCARD_S_SUCCESS.
Jika fungsi gagal, fungsi akan mengembalikan kode kesalahan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar.
Keterangan
Fungsi SCardStatus adalah kartu pintar dan fungsi akses pembaca . Untuk informasi tentang fungsi akses lainnya, lihat Kartu Pintar dan Fungsi Akses Pembaca.
Contoh
Contoh berikut menunjukkan cara menentukan status kartu pintar.
WCHAR szReader[200];
DWORD cch = 200;
BYTE bAttr[32];
DWORD cByte = 32;
DWORD dwState, dwProtocol;
LONG lReturn;
// Determine the status.
// hCardHandle was set by an earlier call to SCardConnect.
lReturn = SCardStatus(hCardHandle,
szReader,
&cch,
&dwState,
&dwProtocol,
(LPBYTE)&bAttr,
&cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardStatus\n");
exit(1); // or other appropriate action
}
// Examine retrieved status elements.
// Look at the reader name and card state.
printf("%S\n", szReader );
switch ( dwState )
{
case SCARD_ABSENT:
printf("Card absent.\n");
break;
case SCARD_PRESENT:
printf("Card present.\n");
break;
case SCARD_SWALLOWED:
printf("Card swallowed.\n");
break;
case SCARD_POWERED:
printf("Card has power.\n");
break;
case SCARD_NEGOTIABLE:
printf("Card reset and waiting PTS negotiation.\n");
break;
case SCARD_SPECIFIC:
printf("Card has specific communication protocols set.\n");
break;
default:
printf("Unknown or unexpected card state.\n");
break;
}
Catatan
Header winscard.h mendefinisikan SCardStatus 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