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
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 |