IOCTL_SMARTCARD_TRANSMIT IOCTL (winsmcrd.h)
Permintaan IOCTL_SMARTCARD_TRANSMIT mengirimkan data ke, dan menerima data dari, kartu pintar yang disisipkan.
Kode utama
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
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