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