次の方法で共有


IOCTL_GNSS_CREATE_GEOFENCE IOCTL (gnsdriver.h)

IOCTL_GNSS_CREATE_GEOFENCE 制御コードは、GEOFence を作成するために、GNS アダプターによって使用されます。

GNSD DDI バージョン 2 以降に適用されます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

作成するジオフェンスを定義する GNSS_GEOFENCE_CREATE_PARAM 構造体へのポインター。

入力バッファーの長さ

sizeof(GNSS_GEOFENCE_CREATE_PARAM) に設定します。

出力バッファー

GNSS_GEOFENCE_CREATE_RESPONSE 構造体へのポインター。

出力バッファーの長さ

sizeof(GNSS_GEOFENCE_CREATE_RESPONSE) に設定します。

状態ブロック

Irp->IoStatus.Status は、要求が成功した場合にSTATUS_SUCCESSに設定されます。 それ以外の場合は、状態 NTSTATUS コードとして適切なエラー状態に します。

備考

GNSS アダプターの注意事項

呼び出しが成功した場合、GNS エンジンはジオフェンスを登録し、一意の ID を割り当てます。 この特定のジオフェンスに関して、ドライバーとのすべての対話に対して、一意の ID が使用されます。

呼び出しが失敗した場合、GNSV ドライバーは、GEO エンジンがジオフェンスを作成し、追跡を開始しないようにする必要があります。 障害が発生した場合、このジオフェンスを追加する前に、GNS エンジンの状態を以前の状態にロールバックする必要があります。

ドライバーの再起動後も、ドライバーがジオフェンスを保持することは、GNSS アダプターでは想定されていません。 適切な時刻に、GNSS_RESETGEOFENCESTRACKING コマンド (初期化、失敗後の追跡状態の変更など) を介して、GNSS ドライバーからのすべてのジオフェンスを明示的にクリアします。

GNSS ドライバーノート

これが最初のジオフェンスの場合、GNS ドライバーはジオフェンスの追跡を開始し、電力効率の高い方法でデバイスの現在の場所に対してジオフェンスの監視を続け、ジオフェンスが侵害された場合はアラートを生成する必要があります。 (信号の状態やその他の一時的なエラーが原因で) GEOFence を追跡できない場合は、LISTEN_GEOFENCES_TRACKINGSTATUS イベントを通じてエラー状態を発生させる必要があります。

GNS エンジンは、ジオフェンス追跡に関する次のガイドラインに従う必要があります。

  • ジオフェンスのサイズと面積を考慮するように、デバイス追跡操作と侵害検出を最適化する必要があります。 すべての条件が同じ場合、より大きなジオフェンスは、小さいジオフェンスと比較して、より積極的に追跡する必要があります。

  • 現在位置に対するジオフェンスの相対距離を考慮するように、デバイス追跡操作を動的に最適化する必要があります。 すべての条件が等しく、より遠いジオフェンスは、近いものに比べてより積極的に追跡する必要があり、デバイスがジオフェンスに近づくにつれて攻撃が増加する必要があります。

  • 侵害検出メカニズムは、入退出のために非対称である必要があります。 一般的なルールとして、ジオフェンスからの出口を決定するためのルールは、ジオフェンスへのエントリを決定するためのルールと比較して緩和する必要があります。

  • 侵害検出メカニズムでは、デバイスの場所の固有の不正確さのために発生する可能性のある誤検知を考慮する必要があります。 たとえば、デバイスがジオフェンスの端付近にホバーしている場合、デバイスが物理的に出入りしていない場合でも、最適でない侵害検出メカニズムによって生成されるエントリイベントと終了イベントが何度も繰り返し発生する可能性があります。非対称出口検出とヒステリシスは、このようなエラーを回避するための典型的な手段です。

  • デバイス追跡動作は、SOCで利用可能であるか、低電力で使用することができる利用可能な場所変更信号のすべての形式を使用する必要があります。 このような信号には、加速度計やその他のセンサーからのデータ、携帯信号の変化、WiFi 接続/切断などが含まれますが、これらに限定されません。

  • ジオフェンス追跡と侵害検出操作は、SoC のGNSC エンジンに完全に実装する必要があります。 デバイスの追跡または侵害の検出のために、アプリケーション プロセッサ上のGNSS ドライバーやその他の拡張機能コンポーネントのどちらもウェイクアップする必要はありません。

  • GNSV ドライバーとGNSS エンジンは、ジオフェンス追跡機能のパフォーマンスと電力チューニングを容易にするために、文書化された IHV 固有のチューニング パラメーターを公開する必要があります。 Microsoft と OEM は、チューニング パラメーターを利用し、ジオフェンス エクスペリエンスのサービス品質、信頼性、電力コストのバランスをエンドツーエンドで決定します。 チューニング パラメーターは、レジストリ設定または IHV SoC 構成データを使用して使用できます。

必要条件

要件 価値
ヘッダー gnsdriver.h (Gnsdriver.h を含む)

関連項目

ドライバー での IOCTL 要求の作成の

WdfIoTargetSendInternalIoctlOthersSynchronously する

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously する