Partager via


structure GNSS_EVENT (driver.h)

La structure GNSS_EVENT définit les informations requises pour un événement IIS.

Syntaxe

typedef struct {
  ULONG           Size;
  ULONG           Version;
  GNSS_EVENT_TYPE EventType;
  ULONG           EventDataSize;
  BYTE            Unused[512];
  union {
    GNSS_FIXDATA                       FixData;
    GNSS_AGNSS_REQUEST_PARAM           AgnssRequest;
    GNSS_NI_REQUEST_PARAM              NiRequest;
    GNSS_ERRORINFO                     ErrorInformation;
    GNSS_NMEA_DATA                     NmeaData;
    GNSS_GEOFENCE_ALERT_DATA           GeofenceAlertData;
    GNSS_BREADCRUMBING_ALERT_DATA      BreadcrumbAlertData;
    GNSS_GEOFENCES_TRACKINGSTATUS_DATA GeofencesTrackingStatus;
    GNSS_DRIVER_REQUEST_DATA           DriverRequestData;
    BYTE                               CustomData[ANYSIZE_ARRAY];
  };
} GNSS_EVENT, *PGNSS_EVENT;

Membres

Size

Taille de la structure.

Version

Numéro de version.

EventType

Type d’événement.

Selon le type d’événement, un élément de données spécifique de l’union est rempli.

EventDataSize

Taille de l’union de données d’événement contenue dans cet événement.

Le pilote SEE doit remplir la taille appropriée pour éviter une copie excessive des données entre les couches. L’adaptateur IZER accède uniquement aux octets initiaux des données d’événement, comme spécifié par cet élément.

Unused[512]

Remplissage de la mémoire tampon réservée pour une utilisation ultérieure.

FixData

Cette structure est remplie si EventType est GNSS_Fix_Available.

AgnssRequest

Cette structure est remplie si EventType est GNSS_Require_Agnss.

NiRequest

Cette structure est remplie si EventType est GNSS_Event_Ni.

ErrorInformation

Cette structure est remplie si EventType est GNSS_Error.

NmeaData

Cette structure est remplie si EventType est GNSS_Event_NmeaData.

GeofenceAlertData

Cette structure est remplie si EventType est GNSS_Event_GeofenceAlertData.

BreadcrumbAlertData

Cette structure contient des informations d’alerte lorsque la mémoire tampon de navigation a atteint un niveau où les opérations de lecture du système d’exploitation doivent être effectuées.

GeofencesTrackingStatus

Cette structure est remplie si EventType est GNSS_Event_GeofencesTrackingStatus.

DriverRequestData

Cette structure est remplie si EventType est GNSS_Event_DriverRequest.

CustomData[ANYSIZE_ARRAY]

Champ de données personnalisé.

Remarques

Le pilote PSEC envoie des notifications sollicitées et non sollicitées à l’adaptateur PSEC. Cela s’effectue via un protocole d’événement commun entre le pilote et l’adaptateur PSEC. L’adaptateur s’inscrit pour un ou plusieurs types d’événements, ce qui garantit qu’une ou plusieurs demandes d’E/S sont toujours en attente pour que le pilote envoie la notification à l’adaptateur. Le pilote termine la demande d’E/S sur l’IRP en attente, ce qui entraîne le flux de notification jusqu’à l’adaptateur. L’adaptateur crée une ou plusieurs demandes d’E/S pour écouter d’autres notifications.

Il est recommandé (mais pas obligatoire) que le pilote utilise des files d’attente distinctes pour gérer différents types d’événements. La séparation des files d’attente permet au pilote de traiter certains types d’événements en parallèle.

Le modèle de notification permet d’ajouter des événements personnalisés ou spécifiques au fournisseur à l’avenir qui peuvent éventuellement être traités par un composant d’assistance SEE personnalisé. L’adaptateur PSEC peut agir en tant que répartiteur entre le pilote et le composant d’assistance et garantit que les commandes et les données sont marshalées entre ces deux composants.

Chaque type d’événement a associé des données spécifiques aux événements que l’adaptateur DEF utilise pour déterminer comment traiter l’événement spécifique. Par exemple, pour les exigences d’assistance (ASQL), l’adaptateur injecte les données d’assistance nécessaires. Pour l’événement de type de récupération de données, l’adaptateur traite et envoie les données à une couche supérieure. Par la suite, l’adaptateur s’inscrit à nouveau pour le même événement auprès du pilote via des IOCTL bien définis. Tous les événements suivent la même structure globale de données.

Les événements peuvent être de différents types. Certains événements se produisent à la suite d’une demande précédente lancée par le pilote (par exemple, une demande de correctif de démarrage). Certains événements sont déclenchés à des fins d’information. Les événements d’assistance sont déclenchés lorsque le pilote exige que l’adaptateur injecte des données d’assistance spécifiques.

Exigences

Exigence Valeur
d’en-tête driver.h (include Messagedriver.h)