Freigeben über


IOCTL_GNSS_START_FIXSESSION IOCTL (gnssdriver.h)

Der IOCTL_GNSS_START_FIXSESSION Steuercode wird vom GNSS-Adapter verwendet, um eine Fixsitzung zu starten.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Ein Zeiger auf eine GNSS_FIXSESSION_PARAM-Struktur .

Länge des Eingabepuffers

Auf sizeof(GNSS_FIXSESSION_PARAM) festgelegt.

Ausgabepuffer

Auf NULL festgelegt.

Länge des Ausgabepuffers

Auf 0 festlegen.

Statusblock

Irp->IoStatus.Status wird auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Andernfalls wird Status zur entsprechenden Fehlerbedingung als NTSTATUS-Code verwendet.

Hinweise

Der Treiber legt einen NTSTATUS-Wert fest, um eines der folgenden Ergebnisse anzugeben.

  • Die Fixsitzung wurde erfolgreich gestartet.
  • Eine Fixsitzung desselben Typs ist bereits aktiv, und der Treiber unterstützt nicht mehrere Sitzungen.

Hinweise zum GNSS-Adapter

Wenn keine Unterstützung für mehrere Sitzungen vorhanden ist, stellt der GNSS-Adapter sicher, dass mehrere Sitzungen desselben Fixtyps ordnungsgemäß multiplext werden, sodass der GNSS-Treiber nur eine Sitzung eines bestimmten Fixtyps sieht. Der GNSS-Adapter kann die Fixsitzungsparameter einer aktiven Fixsitzung über den IOCTL_GNSS_MODIFY_FIXSESSION-Aufruf ändern.

Der GNSS-Adapter startet keine Get Fix-Anforderung, es sei denn, der Treiber schließt diesen Aufruf ab und gibt einen erfolgreichen status in der Ausgabe zurück.

Hinweise zu GNSS-Treibern

Wenn die Unterstützung für mehrere Sitzungen nicht vorhanden ist und der GNSS-Adapter eine weitere Startkorrekturanforderung für einen bereits aktiven Fixtyp sendet, muss der GNSS-Treiber die neue Sitzungsanforderung fehlschlagen. Der Treiber sollte die vorherige Sitzung nicht durch die neuen Korrektursitzungsdetails ersetzen.

Mehrere Fixsitzungen mit unterschiedlichen Fixtypen werden immer vom GNSS-Treiber unterstützt.

Sobald der GNSS-Treiber die Fixsitzungsparameter akzeptiert, überprüft und die GNSS-Engine startet, schließt er die E/A sofort mit einem Erfolgsrückgabecode ab. Es sei denn, die Sitzung zum Starten der Korrektur wird mit einem Erfolgscode zurückgegeben, der GNSS-Adapter gibt keine Anforderung zum Beheben von Korrekturen aus. Alle für diese spezifische Fixsitzung empfangenen Fixes müssen an den GNSS-Adapter für einen nachfolgenden ausstehenden Fixaufruf vom GNSS-Adapter mit derselben Sitzungs-ID übermittelt werden. Wenn ein Fix verfügbar wird und kein ausstehender Get Fix-Aufruf vom Adapter erstellt wird, muss der GNSS-Treiber die Korrektur bis zu einem implementierungsspezifischen Timeoutwert in die Warteschlange stellen, bis eine ausstehende E/A erstellt wird, die die Sitzungs-ID darstellt.

Nachdem eine Fixsitzung gestartet wurde, bleibt sie aktiv, es sei denn, die Fixsitzung wird explizit vom GNSS-Adapter beendet. Dies gilt für alle Korrekturtypen.

Anforderungen

Anforderung Wert
Header gnssdriver.h

Weitere Informationen

Erstellen von IOCTL-Anforderungen in Treibern

WdfIoTargetSendInternalIoctlOthersSynchronly

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously