共用方式為


GNSS_EVENT結構 (gnssdriver.h)

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

此結構包含階層連結緩衝區達到應該執行OS讀取作業的層級時的警示資訊。

GeofencesTrackingStatus

如果 EventType 是GNSS_Event_GeofencesTrackingStatus,則會填入此結構。

DriverRequestData

如果 EventType 是GNSS_Event_DriverRequest,則會填入此結構。

CustomData[ANYSIZE_ARRAY]

自訂數據欄位。

言論

GNSS 驅動程式會將請求和未經請求的通知傳送至 GNSS 配接器。 這是透過驅動程式與 GNSS 配接器之間的常見事件通訊協定來完成。 配接器會註冊一或多個事件類型,這可確保驅動程式一律擱置一或多個 I/O 要求,以將通知傳送至配接器。 驅動程式會在擱置的 IRP 上完成 I/O 要求,這會導致通知流向適配卡。 配接器會建立一或多個 I/O 要求,以接聽進一步的通知。

建議驅動程式使用個別佇列來管理不同類型的事件,但並非必要。 佇列分離可讓驅動程式平行處理特定類型的事件。

通知模型可讓您在未來新增自定義或廠商特定的事件,這些事件可由自定義 GNSS 協助程式元件選擇性地處理。 GNSS 配接器可以做為驅動程式與協助程式元件之間的訊息代理程式,並確保命令和數據會在這兩個元件之間來回封送處理。

每個事件類型都有 GNSS 配接器用來判斷如何處理特定事件的事件特定數據。 例如,針對協助需求 (AGNSS),配接器會插入所需的協助數據。 針對數據擷取類型事件,配接器會處理數據並傳送至上層。 接著,適配卡會透過定義完善的 IOCTL,向驅動程式重新註冊相同的事件。 所有事件都遵循相同的整體數據結構。

事件可以是各種類型。 某些事件是由驅動程式起始的前一個要求所產生(例如,啟動修正要求)。 某些事件是為了參考目的而引發。 當驅動程式需要配接器插入特定協助數據時,就會引發協助事件。

要求

要求 價值
標頭 gnssdriver.h (包括 Gnssdriver.h)