IOCTL_SMARTCARD_TRANSMIT IOCTL (winsmcrd.h)

Permintaan IOCTL_SMARTCARD_TRANSMIT mengirimkan data ke, dan menerima data dari, kartu pintar yang disisipkan.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

  • Irp->AssociatedIrp.SystemBuffer Penunjuk ke struktur SCARD_IO_REQUEST diikuti oleh data untuk dikirimkan ke kartu pintar yang disisipkan.

Panjang buffer input

  • Parameters.DeviceIoControl.InputBufferLength Berisi ukuran struktur ditambah panjang byte data berikutnya (jika ada). Anggota dwProtocol harus diatur ke protokol yang sebelumnya dipilih, dan anggota cbPciLength harus diatur ke ukuran struktur SCARD_IO_REQUEST itu sendiri (biasanya delapan byte). Struktur digunakan untuk protokol di masa mendatang. Data yang akan dikirimkan ke kartu harus segera mengikuti struktur ini.

Buffer output

Buffer byte berisi hasil transmisi. Buffer menunjuk ke struktur SCARD_IO_REQUEST segera diikuti oleh data yang diterima.

  • Irp->AssociatedIrp.SystemBuffer Menerima hasil transmisi. Buffer ini juga harus dimulai dengan struktur SCARD_IO_REQUEST . Setiap data yang diterima dari kartu harus disimpan segera setelah struktur.

Panjang buffer output

  • Parameters.DeviceIoControl.OutputBufferLength Berisi panjang buffer output.

Blok status

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

Nilai Makna
STATUS_SUCCESS Transmisi berhasil.
STATUS_NO_MEDIA Tidak ada kartu pintar yang terdeteksi di pembaca.
STATUS_IO_TIMEOUT Waktu operasi habis.
STATUS_INVALID_DEVICE_STATE Protokol dalam file header tidak cocok dengan protokol kartu pintar yang sebelumnya dipilih.
STATUS_BUFFER_TOO_SMALL Buffer output terlalu kecil untuk data yang dikembalikan.
STATUS_DEVICE_POWERED_OFF Kontrol radio kedekatan mati.

Keterangan

IOCTL_SMARTCARD_TRANSMIT mengirimkan data dari klien ke kartu pintar yang terdeteksi di APDU yang mematuhi ISO7816-4. APDU ini ditafsirkan sehubungan dengan spesifikasi PC/SC (Bagian 4.3.7 memiliki persyaratan yang lebih rinci tentang dukungan untuk format tag nirsentuh NFC yang berbeda). Karena fitur NFP berbagi driver yang sama dengan kartu pintar, kartu harus terhubung tepat setelah penemuan, tidak diperlukan koneksi eksplisit untuk 'Transmisi'.

Karena buffer input dan buffer output menunjuk ke area memori yang sama, driver harus menghindari penimpaan data input. Gunakan pustaka driver kartu pintar untuk memastikan bahwa data input tidak ditimpa.

Persyaratan

Persyaratan Nilai
Header winsmcrd.h

Lihat juga

Panduan desain komunikasi bidang dekat (NFC)

Panduan desain kartu pintar