Fungsi SCardConnectA (winscard.h)

Fungsi SCardConnect membuat koneksi (menggunakan konteks manajer sumber daya tertentu) antara aplikasi panggilan dan kartu pintar yang dimuat oleh pembaca tertentu. Jika tidak ada kartu di pembaca yang ditentukan, kesalahan akan dikembalikan.

Sintaks

LONG SCardConnectA(
  [in]  SCARDCONTEXT  hContext,
  [in]  LPCSTR        szReader,
  [in]  DWORD         dwShareMode,
  [in]  DWORD         dwPreferredProtocols,
  [out] LPSCARDHANDLE phCard,
  [out] LPDWORD       pdwActiveProtocol
);

Parameter

[in] hContext

Handel yang mengidentifikasi konteks resource manager. Konteks manajer sumber daya diatur oleh panggilan sebelumnya ke SCardEstablishContext.

[in] szReader

Nama pembaca yang berisi kartu target.

[in] dwShareMode

Bendera yang menunjukkan apakah aplikasi lain dapat membentuk koneksi ke kartu.

Nilai Makna
SCARD_SHARE_SHARED
Aplikasi ini bersedia berbagi kartu dengan aplikasi lain.
SCARD_SHARE_EXCLUSIVE
Aplikasi ini tidak bersedia berbagi kartu dengan aplikasi lain.
SCARD_SHARE_DIRECT
Aplikasi ini mengalokasikan pembaca untuk penggunaan privatnya, dan akan mengontrolnya secara langsung. Tidak ada aplikasi lain yang diizinkan mengaksesnya.

[in] dwPreferredProtocols

Bitmask protokol yang dapat diterima untuk koneksi. Nilai yang mungkin digabungkan dengan operasi OR .

Nilai Makna
SCARD_PROTOCOL_T0
T=0 adalah protokol yang dapat diterima.
SCARD_PROTOCOL_T1
T=1 adalah protokol yang dapat diterima.
0
Parameter ini mungkin nol hanya jika dwShareMode diatur ke SCARD_SHARE_DIRECT. Dalam hal ini, tidak ada negosiasi protokol yang akan dilakukan oleh driver sampai direktif kontrol IOCTL_SMARTCARD_SET_PROTOCOL dikirim dengan SCardControl.

[out] phCard

Handel yang mengidentifikasi koneksi ke kartu pintar di pembaca yang ditunjuk.

[out] pdwActiveProtocol

Bendera yang menunjukkan protokol aktif yang ditetapkan.

Nilai Makna
SCARD_PROTOCOL_T0
T=0 adalah protokol aktif.
SCARD_PROTOCOL_T1
T=1 adalah protokol aktif.
SCARD_PROTOCOL_UNDEFINED
SCARD_SHARE_DIRECT telah ditentukan, sehingga tidak ada negosiasi protokol yang terjadi. Ada kemungkinan bahwa tidak ada kartu di pembaca.

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.
SCARD_E_NOT_READY
Pembaca tak bisa tersambung ke kartu.

Keterangan

Fungsi SCardConnect adalah kartu pintar dan fungsi akses pembaca . Untuk informasi selengkapnya tentang fungsi akses lainnya, lihat Fungsi Akses Kartu Pintar dan Pembaca.

Contoh

Contoh berikut membuat koneksi ke pembaca. Contoh mengasumsikan bahwa hContext adalah handel yang valid dari jenis SCARDCONTEXT yang diterima dari panggilan sebelumnya ke SCardEstablishContext.

SCARDHANDLE     hCardHandle;
LONG            lReturn;
DWORD           dwAP;

lReturn = SCardConnect( hContext, 
                        (LPCTSTR)"Rainbow Technologies SCR3531 0",
                        SCARD_SHARE_SHARED,
                        SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
                        &hCardHandle,
                        &dwAP );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardConnect\n");
    exit(1);  // Or other appropriate action.
}

// Use the connection.
// Display the active protocol.
switch ( dwAP )
{
    case SCARD_PROTOCOL_T0:
        printf("Active protocol T0\n"); 
        break;

    case SCARD_PROTOCOL_T1:
        printf("Active protocol T1\n"); 
        break;

    case SCARD_PROTOCOL_UNDEFINED:
    default:
        printf("Active protocol unnegotiated or unknown\n"); 
        break;
}

// Remember to disconnect (by calling SCardDisconnect).
// ...

Catatan

Header winscard.h mendefinisikan SCardConnect 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

SCardControl

SCardDisconnect

SCardEstablishContext

SCardReconnect