Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура GNSS_EVENT определяет сведения, необходимые для события GNSS.
Синтаксис
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;
Члены
Size
Размер структуры.
Version
Номер версии.
EventType
Тип события.
В зависимости от типа события будет заполнен определенный элемент данных объединения.
EventDataSize
Размер объединения данных события, содержащегося в этом событии.
Драйвер GNSS должен заполнить соответствующий размер, чтобы избежать чрезмерного копирования данных между слоями. Адаптер GNSS получит доступ только к начальным байтам данных события, как указано в этом элементе.
Unused[512]
Буфер заполнения зарезервирован для будущего использования.
FixData
Эта структура заполняется, если EventType GNSS_Fix_Available.
AgnssRequest
Эта структура заполняется, если EventType GNSS_Require_Agnss.
NiRequest
Эта структура заполняется, если EventType GNSS_Event_Ni.
ErrorInformation
Эта структура заполняется, если EventType GNSS_Error.
NmeaData
Эта структура заполняется, если EventType GNSS_Event_NmeaData.
GeofenceAlertData
Эта структура заполняется, если EventType GNSS_Event_GeofenceAlertData.
BreadcrumbAlertData
Эта структура содержит сведения об оповещении о том, когда буфер навигации достиг уровня, в котором должны выполняться операции чтения ОС.
GeofencesTrackingStatus
Эта структура заполняется, если EventType GNSS_Event_GeofencesTrackingStatus.
DriverRequestData
Эта структура заполняется, если EventType GNSS_Event_DriverRequest.
CustomData[ANYSIZE_ARRAY]
Настраиваемое поле данных.
Замечания
Драйвер GNSS отправляет запрошенные и незапрошенные уведомления в адаптер GNSS. Это делается через общий протокол событий между драйвером и адаптером GNSS. Адаптер регистрируется для одного или нескольких типов событий, и это гарантирует, что один или несколько запросов ввода-вывода всегда ожидаются для драйвера отправки уведомления адаптеру. Драйвер завершает запрос ввода-вывода на ожидающий IRP, и это приводит к тому, что уведомление будет передаваться к адаптеру. Адаптер создает один или несколько запросов ввода-вывода для прослушивания дополнительных уведомлений.
Рекомендуется (но не обязательно), чтобы драйвер использовал отдельные очереди для управления различными типами событий. Разделение очередей позволяет драйверу обрабатывать определенные типы событий параллельно.
Модель уведомлений позволяет добавлять пользовательские или поставщики события в будущем, которые при необходимости могут обрабатываться пользовательским вспомогательным компонентом GNSS. Адаптер GNSS может выступать в качестве посредника между драйвером и вспомогательным компонентом и гарантирует, что команды и данные маршалируются между этими двумя компонентами назад и вперед.
Каждый тип события содержит связанные с событиями данные, которые адаптер GNSS использует для определения способа обработки конкретного события. Например, для требований к помощи (AGNSS) адаптер внедряет необходимые данные о помощи. Для события типа извлечения данных адаптер обрабатывает и отправляет данные на верхний слой. Впоследствии адаптер повторно регистрируется для того же события с драйвером с помощью четко определенных операций ввода-вывода. Все события соответствуют одной и той же общей структуре данных.
События могут быть различными типами. Некоторые события происходят в результате предыдущего запроса, инициированного драйвером (например, запрос на исправление запуска). Некоторые события создаются для информационной цели. События помощи возникают, когда драйверу требуется адаптер для внедрения конкретных данных помощи.
Требования
Требование | Ценность |
---|---|
заголовка | gnssdriver.h (include Gnssdriver.h) |