IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)

Der IOCTL_NFCSE_GET_NEXT_EVENT-Steuerelementcode gibt das nächste im Puffer verfügbare Ereignis zurück, oder wenn keine gepufferten Ereignisse mehr vorhanden sind, bleibt aus, bis ein Sicheres Elementereignis verfügbar ist. Die Ereignisdetails müssen dann an den Aufrufer zurückgegeben werden.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Keine

Länge des Eingabepuffers

Keine

Ausgabepuffer

Ein DWORD , das die Größe der SECURE_ELEMENT_EVENT_INFO-Struktur plus ihrer Nutzlast angibt, unmittelbar gefolgt von der SECURE_ELEMENT_EVENT_INFO-Struktur selbst.

Statusblock

Irp->IoStatus.Status ist auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Mögliche Fehlercodes sind:

Rückgabecode BESCHREIBUNG
STATUS_INVALID_DEVICE_STATE Dieser Code wird zurückgegeben, wenn diese IOCTL für ein Gerätehandle aufgerufen wird, das über einen anderen Dateinamen als SEEvents verfügt, oder wenn bereits eine andere ausstehende Anforderung vorhanden ist, die noch nicht abgeschlossen ist.
STATUS_INVALID_PARAMETER Dieser Code wird zurückgegeben, wenn der Ausgabepuffer ungleich 0 (null) ist oder wenn die GUID des secure-Elements keiner der aufgezählten IDs entspricht.

Hinweise

Im Folgenden sind Die Anforderungen aufgeführt, die der Treiber erfüllen muss.

  • Diese IOCTL muss für ein Handle aufgerufen werden, das über einen relativen SeEvents-Dateinamen verfügt. Andernfalls gibt der Treiber STATUS_INVALID_DEVICE_STATE
  • Dieser Treiber muss CancelIO für diese ausstehende IOCTL unterstützen.
  • Dieser Treiber muss eine empfangene Warteschlange mit den empfangenen Ereignissen des sicheren Elements verwalten, die dem Abonnementtyp entsprechen.
  • Die folgenden Bedingungen müssen erfüllt sein, wenn diese IOCTL im Treiber empfangen wird:
    • Wenn die empfangene Warteschlange leer ist, muss der Treiber die IOCTL für den späteren Abschluss verwenden.
    • Wenn die empfangene Warteschlange nicht leer ist, muss der Treiber die Warteschlange für ein Ereignis aufheben, den Nachrichtenpuffer in den Ausgabepuffer der IOCTL kopieren und die IOCTL mit STATUS_SUCCESS sofort abschließen.
  • Wenn der Treiber diese IOCTL mit STATUS_SUCCESS abschließt, muss das erste DWORD [4 Byte] des Ausgabepuffers die Größe der SECURE_ELEMENT_EVENT_INFO-Struktur plus ihrer Nutzlast enthalten.
  • Wenn eine empfangene Ereignisinformation für sichere Elemente zu groß ist, um in den Puffer dieser IOCTL kopiert zu werden, muss der Treiber die erforderliche Puffergröße in die ersten 4 Byte des Ausgabepuffers kopieren, das Informationsfeld der IOCTL auf sizeof (DWORD) festlegen und die IOCTL mit STATUS_BUFFER_OVERFLOW abschließen. Das Ereignis muss dann in der empfangenen Warteschlange verbleiben.

Anforderungen

Anforderung Wert
Header nfcsedev.h