IOCTL_GNSS_LISTEN_GEOFENCE_ALERT IOCTL (gnssdriver.h)

Der IOCTL_GNSS_LISTEN_GEOFENCE_ALERT-Steuerelementcode wird verwendet, um geofence-Warnungen vom Treiber zu lauschen.

Gilt für GNSS DDI Version 2 und höher.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Auf NULL festgelegt.

Eingabepufferlänge

Auf 0 festlegen.

Ausgabepuffer

Ein Zeiger auf eine GNSS_EVENT-Struktur .

Der EventType muss auf GNSS_Event_GeofenceAlertData festgelegt werden, und das GeofenceAlertData-Element muss ausgefüllt werden.

Länge des Ausgabepuffers

Legen Sie auf sizeof(GNSS_EVENT) fest.

Statusblock

Irp->IoStatus.Status ist auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Andernfalls wird status für die entsprechende Fehlerbedingung als NTSTATUS-Code verwendet.

Hinweise

Hinweise zu GNSS-Adaptern

Der GNSS-Adapter behält ständig eine ausstehende Anforderung bei.

Wenn der Treiber den E/A-Aufruf abschließt, gibt der Adapter eine weitere IOCTL aus, um die nächste Geofencewarnung zu erhalten.

Der GNSS-Adapter kann diese IOCTL auch dann ausstehend lassen, wenn keine Geofences vorhanden sind oder wenn der Geofence-Tracking-Vorgang über den Befehl GNSS_ResetGeofencesTracking Treiber neu initialisiert wurde. Der GNSS-Treiber darf dies nicht als Fehlerbedingung behandeln.

Hinweise zu GNSS-Treibern

Wenn der GNSS-Treiber eine Geofencewarnungsbenachrichtigung von der GNSS-Engine erhält, schließt er den E/A-Vorgang ab.

Wenn der GNSS-Adapter gerade eine vorherige Warnung verarbeitet und noch keine ausstehende IOCTL ausgegeben hat, stellt der GNSS-Treiber die Warnung lokal in die Warteschlange und löst sie aus, wenn der Adapter diese IOCTL sendet.

Wenn ein Geofence zum ersten Mal hinzugefügt wird, wird der Anfangszustand (wie von HLOS gesehen) als Parameter übergeben. Die GNSS-Engine sollte die erste Warnung nur auslösen, wenn sich der Zustand vom ursprünglichen Zustand ändert. Dies muss nativ von der GNSS-Engine selbst behandelt werden, im Gegensatz dazu, dass der GNSS-Treiber redundante Warnungen auf Treiberebene herausfiltert, wodurch der Zweck der nicht benötigten Anwendungsprozessoraktivierung bei der Initialisierung verworren wird.

Diese E/A-Anforderung bleibt ausstehend, bis eine Warnung von der GNSS-Engine empfangen wird. Wenn der Treiber den E/A-Aufruf abschließt, gibt der GNSS-Adapter eine andere IOCTL aus, um die nächste Geofencewarnung zu empfangen. Diese IOCTL bleibt ausstehend, auch wenn keine Geofences vorhanden sind oder der Nachverfolgungsvorgang durch den Befehl GNSS_ResetGeofencesTracking neu initialisiert wurde. Wenn eine neue ausstehende IOCTL nicht ausgestellt wurde und eine weitere Geofencewarnung empfangen wird, wird sie lokal in die Warteschlange gestellt, bis die nächste ausstehende E/A-Anforderung empfangen wird.

Anforderungen

Anforderung Wert
Header gnssdriver.h (einschließlich GNSSdriver.h)

Weitere Informationen

Erstellen von IOCTL-Anforderungen in Treibern

WdfIoTargetSendInternalIoctlOthersSynchronly

WdfIoTargetSendInternalIoctlSynchronly

WdfIoTargetSendIoctlSynchronly