Compartir a través de


IOCTL_GNSS_CREATE_GEOFENCE IOCTL (gnssdriver.h)

El adaptador de GNSS usa el código de control IOCTL_GNSS_CREATE_GEOFENCE para crear una geovalla.

Se aplica a la versión 2 y posteriores de DDI de GNSS.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

Puntero a una estructura GNSS_GEOFENCE_CREATE_PARAM que define la geovalla que se va a crear.

Longitud del búfer de entrada

Establezca en sizeof(GNSS_GEOFENCE_CREATE_PARAM).

Búfer de salida

Puntero a una estructura de GNSS_GEOFENCE_CREATE_RESPONSE.

Longitud del búfer de salida

Establezca en sizeof(GNSS_GEOFENCE_CREATE_RESPONSE).

Bloque de estado

Irp->ioStatus.Status se establece en STATUS_SUCCESS si la solicitud se realiza correctamente. De lo contrario, estado a la condición de error adecuada como código NTSTATUS.

Observaciones

Notas del adaptador de GNSS

Si la llamada se realiza correctamente, el motor de GNSS registra la geovalla y asigna un identificador único. El adaptador GNSS usa el identificador único para toda la interacción con el controlador con respecto a esta geovalla específica.

Si se produce un error en la llamada, el controlador GNSS debe asegurarse de que el motor de GNSS no termine creando la geovalla y empiece a realizar el seguimiento. Un error debe revertir el estado del motor GNSS al estado anterior antes de agregar esta geovalla.

El adaptador GNSS no espera que el controlador conserve las geovallas entre reinicios del controlador. El adaptador GNSS borra explícitamente todas las geovallas del controlador GNSS a través del comando GNSS_ResetGeofencesTracking en momentos adecuados (inicialización, cambio de estado de seguimiento después de un error, etc.).

Notas del controlador GNSS

Si esta es la primera geovalla, el controlador GNSS debe iniciar el seguimiento de geovalla, seguir supervisando la geovalla en la ubicación actual del dispositivo de forma eficaz y generar alertas si se infringe una geovalla. Si el motor GNSS no puede realizar un seguimiento de la geovalla (debido a condiciones de señal incorrectas u otros errores transitorios), se debe generar un estado de error a través del evento LISTEN_GEOFENCES_TRACKINGSTATUS.

El motor GNSS debe cumplir las siguientes directrices para el seguimiento de geovalla:

  • La operación de seguimiento de dispositivos y la detección de infracciones deben optimizarse para tener en cuenta el tamaño y el área de la geovalla. Si todas las condiciones son las mismas, se debe realizar un seguimiento de las geovallas más grandes de forma menos agresiva en comparación con las geovallas más pequeñas.

  • La operación de seguimiento de dispositivos debe optimizarse dinámicamente para tener en cuenta la distancia relativa de la geovalla con respecto a la posición actual. Todas las condiciones son iguales, se debe realizar un seguimiento de las geovallas más lejanas menos agresivamente en comparación con las más cercanas y la agresión debe aumentar a medida que el dispositivo se acerca a la geovalla.

  • El mecanismo de detección de infracciones debe ser asimétrico para la entrada y salida. Como regla general, las reglas para determinar la salida de una geovalla deben relajarse en comparación con las reglas para determinar la entrada en la geovalla.

  • El mecanismo de detección de infracciones debe tener en cuenta posibles falsos positivos que surjan debido a la inexactitud inherente de la ubicación del dispositivo. Por ejemplo, si el dispositivo mantiene el puntero cerca del borde de una geovalla, un mecanismo de detección de infracciones subconsulta puede generar demasiados eventos de entrada y salida, incluso si el dispositivo no se mueve físicamente dentro y fuera. La detección de salida asimétrica y la hissteresis son medidas típicas para evitar estos errores.

  • La operación de seguimiento de dispositivos del motor GNSS debe usar todas las formas de señales de ubicación modificadas disponibles que estén disponibles en soC o que se puedan usar en baja potencia. Estas señales pueden incluir, entre otras cosas, datos del acelerómetro y otros sensores, cambio de señal celular, conexión WiFi/desconexión, etc.

  • Las operaciones de seguimiento de geovalla y detección de infracciones deben implementarse completamente en el motor de GNSS en SoC. Ni el controlador GNSS ni ningún otro componente de extensión del procesador de aplicaciones deben reactivarse para el seguimiento de dispositivos o la detección de infracciones.

  • El controlador GNSS y el motor GNSS deben exponer parámetros de ajuste específicos de IHV documentados para facilitar el rendimiento y el ajuste de energía de la funcionalidad de seguimiento de geovalla. Microsoft y LOS OEM usarán parámetros de ajuste y determinarán el equilibrio adecuado entre la calidad del servicio, la confiabilidad y el costo de energía de la experiencia de geovalla de un extremo a otro. Los parámetros de optimización se pueden hacer disponibles a través de la configuración del Registro o a través de los datos de configuración de SoC de IHV.

Requisitos

Requisito Valor
encabezado de gnssdriver.h (incluya Gnssdriver.h)

Consulte también

crear solicitudes IOCTL en controladores

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously