IOCTL_NFCSE_HCE_REMOTE_RECV IOCTL (nfcsedev.h)
Mengembalikan buffer data berikutnya yang tersedia, atau jika tidak ada lagi data yang di-buffer, permintaan akan tetap tertunda hingga buffer APDU tersedia untuk dibaca. Buffer data kemudian akan dikembalikan ke pemanggil. Perhatikan bahwa pemanggil harus mengalokasikan buffer output yang cukup besar untuk menahan APDU terbesar yang telah diterima + overhead 4 byte.
Kode utama
Buffer input
Tidak ada
Panjang buffer input
Tidak ada
Buffer output
DWORD yang menunjukkan ukuran struktur SECURE_ELEMENT_HCE_DATA_PACKET ditambah payload-nya, segera diikuti oleh struktur SECURE_ELEMENT_HCE_DATA_PACKET itu sendiri.
Blok status
Irp->IoStatus.Status diatur ke STATUS_SUCCESS jika permintaan berhasil. Kemungkinan kode kesalahan adalah:
Kode Pengembalian | Deskripsi |
---|---|
STATUS_BUFFER_OVERFLOW | Buffer yang disediakan terlalu kecil untuk menerima pemberitahuan, DWORD pertama akan berisi ukuran buffer yang diharapkan. |
STATUS_INVALID_PARAMETER | Jika buffer input bukan nol. |
STATUS_INVALID_DEVICE_STATE | Jika IOCTL dikirim pada handel selain dengan nama relatif 'SEManage'. |
Keterangan
Berikut ini adalah persyaratan yang harus dipatuhi pengemudi.
- IOCTL ini dikirim pada koneksi yang ada setelah peristiwa HCE Diaktifkan dipicu.
- Driver harus mendukung CancelIo pada IOCTL yang tertunda ini.
- Driver harus mempertahankan antrean "Diterima" dari APDU yang diterima untuk koneksi saat ini.
- Ketika IOCTL ini diterima di driver:
- Jika antrean "Diterima" kosong, maka driver HARUS menunggu IOCTL untuk penyelesaian nanti.
- Jika antrean "Diterima" tidak kosong, maka driver HARUS menghapus antrean satu APDU, menyalin buffer APDU ke buffer output IOCTL, dan menyelesaikan IOCTL dengan STATUS_SUCCESS segera.
- Jika driver menyelesaikan IOCTL ini dengan STATUS_SUCCESS, DWORD pertama [4 byte] dari buffer output HARUS berisi ukuran struktur SECURE_ELEMENT_HCE_DATA_PACKET ditambah payload-nya.
- Jika data APDU yang diterima terlalu besar untuk disalin ke dalam buffer output IOCTL ini, driver HARUS menyalin ukuran buffer yang diperlukan ke dalam 4 byte pertama dari buffer output, atur bidang informasi IOCTL ke sizeof (DWORD), dan lengkapi IOCTL dengan STATUS_BUFFER_OVERFLOW. Data APDU harus ditinggalkan dalam antrean "Diterima".
Persyaratan
Persyaratan | Nilai |
---|---|
Header | nfcsedev.h |
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