Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Describe los principios de diseño que se deben tener en cuenta al desarrollar un controlador de sistema satélite de navegación global (GNSS) para Windows 10, incluidas estructuras de datos, informes de errores y control de versiones de controladores.
Estructuras de datos
Para la compatibilidad con versiones anteriores y la extensibilidad futura, todas las estructuras de datos comienzan con un número de versión y un tamaño para dar cabida a futuras extensiones y problemas de compatibilidad con versiones anteriores. Como protección adicional, cada estructura también tiene un búfer de relleno para mantener el tamaño de la estructura estática igual incluso cuando se agregan nuevos campos. Esto es para protegerse contra cualquier controlador GNSS antiguo que, por error, utilice el tamaño estático en tiempo de compilación de la estructura (mediante sizeof) en lugar del tamaño dinámico de la estructura.
A menos que se especifique lo contrario, todos los parámetros seguirán el Sistema Internacional de Unidades (SI):
| Parámetros | Unidades |
|---|---|
| Distancia, umbral o nivel | Metro |
| Tiempo de espera o intervalo | second |
| Velocidad | metro/segundo |
Informes de errores
El DDI del sistema global de navegación por satélite (GNSS) espera un NTSTATUS como valor de retorno del controlador. El sistema operativo de alto nivel (HLOS) actúa solo en casos de éxito y error en función de estos mensajes de error y no examina un mensaje de error específico. Todavía es preferible que el controlador devuelva errores estrechamente asignados al mensaje de error NTSTATUS correspondiente. El controlador GNSS puede enviar sus propios mensajes de error NTSTATUS personalizados que podrían resultar útiles para fines de diagnóstico.
Control de versiones del controlador
Cada estructura especificada para el DDI del sistema satélite de navegación global (GNSS) contiene un campo de versión del controlador y muchas estructuras contienen un campo de relleno. Ambos componentes se usan para mitigar las nuevas versiones de DDI de GNSS mediante las siguientes directivas:
El marco y el controlador comunican sus respectivas versiones mediante el proceso de intercambio de funcionalidades. Estas IOCTLs se consideran especiales en que comunican sus versiones mediante el campo de versión. Por lo tanto, las implementaciones que rodean la comprobación de la funcionalidad del dispositivo y la plataforma deben comprobar explícitamente las versiones devueltas en primer lugar y almacenarlas para su uso más adelante. El miembro de versión de la estructura GNSS_DEVICE_CAPABILITY comunica el número de versión del controlador. El miembro de versión de la estructura GNSS_PLATFORM_CAPABILITY comunica el número de versión del adaptador GNSS.
Cada vez que se agrega un nuevo campo, si la estructura tiene un campo de relleno, el espacio se quitará de dicho campo de relleno en lugar de agregar espacio a la estructura, lo que mantendrá la compatibilidad binaria.
Cada vez que se agrega un nuevo campo, la versión de DDI de GNSS se considera incrementada. Esto quedará reflejado en un comentario dentro del propio encabezado DDI de GNSS, pero NO se presentará como una constante. Tanto el adaptador GNSS como el controlador GNSS usarán valores constantes privados para indicar su versión actual. Esto permite codificar tanto el adaptador GNSS como el controlador en una versión específica.
El adaptador GNSS debe ser compatible con versiones anteriores del controlador GNSS. Si se introduce un cambio de protocolo en una nueva versión de DDI, un adaptador GNSS compatible con el nuevo DDI de GNSS debe implementar el nuevo protocolo solo para la nueva versión del controlador y usar el protocolo antiguo para la versión anterior del controlador.
El controlador GNSS debe ser compatible con versiones más recientes del adaptador GNSS y debe tratar las versiones más recientes del adaptador GNSS de la misma manera que la versión actual en la que está codificada.
No se espera que una versión anterior del adaptador GNSS funcione correctamente con una versión más reciente del controlador GNSS. Para facilitar el desarrollo conjunta del adaptador GNSS y el controlador GNSS en una nueva versión de DDI, no existirá ninguna comprobación de versión estricta en el adaptador GNSS para bloquear los controladores GNSS más recientes. Sin embargo, un controlador GNSS implementado en una versión más reciente de DDI no se enviará a los dispositivos comerciales que contengan un adaptador GNSS implementado en una versión anterior de la DDI de GNSS.
Los controladores de sensor GNSS de Windows 8.1 o anteriores no serán compatibles con el adaptador de GNSS. Estos controladores seguirán funcionando en Windows 10 a través de la pila heredada. En presencia de otro controlador GNSS de Windows 10, el uso del controlador de sensor GNSS heredado no está definido.