IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)

Kode kontrol IOCTL_NFCSE_GET_NEXT_EVENT mengembalikan peristiwa berikutnya yang tersedia di buffer, atau jika tidak ada lagi peristiwa buffer yang tetap tertunda hingga peristiwa elemen aman tersedia. Detail peristiwa kemudian harus dikembalikan ke pemanggil.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Tidak ada

Panjang buffer input

Tidak ada

Buffer output

DWORD yang menunjukkan ukuran struktur SECURE_ELEMENT_EVENT_INFO ditambah payload-nya, segera diikuti oleh struktur SECURE_ELEMENT_EVENT_INFO itu sendiri.

Blok status

Irp->IoStatus.Status diatur ke STATUS_SUCCESS jika permintaan berhasil. Kode kesalahan yang mungkin adalah:

Kode Pengembalian Deskripsi
STATUS_INVALID_DEVICE_STATE Kode ini dikembalikan ketika IOCTL ini dipanggil pada handel perangkat yang memiliki nama file selain SEEvents, atau ketika sudah ada permintaan tertunda lain yang belum selesai.
STATUS_INVALID_PARAMETER Kode ini dikembalikan ketika buffer output bukan nol, atau ketika GUID elemen aman tidak cocok dengan ID yang dijumlahkan.

Keterangan

Berikut ini adalah persyaratan yang harus dipatuhi pengemudi.

  • IOCTL ini harus dipanggil pada handel yang memiliki nama file relatif SEEvents ; jika tidak, driver mengembalikan STATUS_INVALID_DEVICE_STATE
  • Driver ini harus mendukung CancelIO untuk IOCTL yang tertunda ini.
  • Driver ini harus mempertahankan antrean yang diterima dari peristiwa elemen aman yang diterima yang cocok dengan jenis langganan.
  • Kondisi berikut harus dipenuhi ketika IOCTL ini diterima di driver:
    • Jika antrean yang diterima kosong, maka driver harus menunggu IOCTL untuk penyelesaian nanti.
    • Jika antrean yang diterima tidak kosong, maka driver harus membatalkan antrean satu peristiwa, menyalin buffer pesan 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_EVENT_INFO ditambah payload-nya.
  • Jika info peristiwa elemen aman yang diterima terlalu besar untuk disalin ke dalam buffer IOCTL ini, driver harus menyalin ukuran buffer yang diperlukan ke dalam 4 byte pertama buffer output, atur bidang informasi IOCTL ke sizeof (DWORD), dan lengkapi IOCTL dengan STATUS_BUFFER_OVERFLOW. Acara kemudian harus dibiarkan dalam antrean yang diterima.

Persyaratan

Persyaratan Nilai
Header nfcsedev.h