IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)

Permintaan IOCTL_SMARTCARD_SET_PROTOCOL menetapkan protokol yang akan digunakan driver untuk berkomunikasi dengan kartu pintar setelah kartu terdeteksi (dimasukkan).

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

  • Irp->AssociatedIrp.SystemBuffer Berisi masker protokol yang dapat diterima untuk transmisi berikut. Masker bisa menjadi bitwise ATAU dari nilai berikut:

    • SCARD_PROTOCOL_RAW
    • SCARD_PROTOCOL_T0
    • SCARD_PROTOCOL_T1
    • SCARD_PROTOCOL_DEFAULT
    • SCARD_PROTOCOL_OPTIMAL

    Dua nilai terakhir adalah definisi bit tambahan yang menunjukkan bahwa driver harus secara eksplisit melakukan pemilihan jenis protokol (PTS) dengan parameter komunikasi terbaik (SCARD_PROTOCOL_OPTIMAL) atau menggunakan protokol implisit kartu dengan parameter standar (SCARD_PROTOCOL_DEFAULT). Jika kartu hanya mendukung satu protokol dengan satu set parameter komunikasi, bit diabaikan.

  • Parameters.DeviceIoControl.InputBufferLength Harus diatur ke sizeof(ULONG). Driver memutuskan protokol mana dari masker yang akan digunakan dengan kartu yang dimasukkan.

Buffer output

  • Irp->AssociatedIrp.SystemBuffer Driver menyimpan protokol yang dipilih di sini (misalnya, SCARD_PROTOCOL_T1). Hanya satu bit keluar dari masker yang dapat diatur.

Panjang buffer output

  • Parameters.DeviceIoControl.OutputBufferLength Harus sizeof(ULONG).

Blok status

Irp->IoStatus.Information harus diatur ke sizeof(ULONG).

Irp->IoStatus.Status diatur ke salah satu nilai berikut.

Nilai Makna
STATUS_SUCCESS Protokol berhasil dipilih.
STATUS_NO_MEDIA Tidak ada kartu pintar yang terdeteksi di pembaca.
STATUS_IO_TIMEOUT Waktu operasi habis.
STATUS_NOT_SUPPORTED Kartu pintar tidak mendukung protokol apa pun yang diminta.
STATUS_INVALID_DEVICE_REQUEST Masker tidak berisi protokol yang diketahui.

Untuk informasi selengkapnya, lihat Nilai NTSTATUS.

Persyaratan

Persyaratan Nilai
Header winsmcrd.h

Lihat juga

Panduan desain komunikasi bidang dekat (NFC)

Panduan desain kartu pintar