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 アダプターの間の共通のイベント プロトコルを使用して行われます。 アダプターは 1 つ以上の種類のイベントに登録します。これにより、ドライバーがアダプターに通知を送信するために、1 つ以上の I/O 要求が常に保留中になります。 ドライバーは保留中の IRP の I/O 要求を完了し、これにより、通知がアダプターに流れ込みます。 アダプターは、さらに通知をリッスンする 1 つ以上の I/O 要求を作成します。
ドライバーがさまざまな種類のイベントを管理するために個別のキューを使用することをお勧めします (必須ではありません)。 キューを分離すると、ドライバーは特定の種類のイベントを並列で処理できます。
通知モデルを使用すると、カスタム GNSS ヘルパー コンポーネントで必要に応じて処理できるカスタム イベントまたはベンダー固有のイベントを今後追加できます。 GNSS アダプターは、ドライバーとヘルパー コンポーネントの間のブローカーとして機能し、コマンドとデータがこれら 2 つのコンポーネント間でマーシャリングされるようにすることができます。
各イベントの種類には、GNSS アダプターが特定のイベントの処理方法を決定するために使用するイベント固有のデータが関連付けられます。 たとえば、支援要件 (AGNSS) の場合、アダプターは必要な支援データを挿入します。 データ取得型イベントの場合、アダプターはデータを処理して上位レイヤーに送信します。 その後、アダプターは、適切に定義された IOCTL を使用して、ドライバーと同じイベントに再登録します。 すべてのイベントは、同じ全体的なデータ構造に従います。
イベントにはさまざまな種類を指定できます。 特定のイベントは、ドライバーによって開始された以前の要求 (修正の開始要求など) の結果として発生します。 特定のイベントは、情報提供のために発生します。 ドライバーがアダプターに特定のアシスタンス データを挿入する必要がある場合、アシスタンス イベントが発生します。
要件
要件 | 値 |
---|---|
Header | gnssdriver.h (Gnssdriver.h を含む) |