Global Navigation Satellite System (GNSS)

Overview of the Global Navigation Satellite System (GNSS) device driver technology.

To develop GNSS drivers, you need these headers:

For the programming guide, see the Global Navigation Satellite System (GNSS) driver design guide.

IOCTLs

 
IOCTL_GNSS_CONFIG_SUPL_CERT

The IOCTL_GNSS_CONFIG_SUPL_CERT control code is used by the GNSS adapter to set SUPL certificates.
IOCTL_GNSS_CREATE_GEOFENCE

The IOCTL_GNSS_CREATE_GEOFENCE control code is used by the GNSS adapter to create a geofence.
IOCTL_GNSS_DELETE_GEOFENCE

The IOCTL_GNSS_DELETE_GEOFENCE control code is used by the GNSS adapter to delete a previously created geofence.
IOCTL_GNSS_EXECUTE_CWTEST

The IOCTL_GNSS_EXECUTE_CWTEST control code is used by the GNSS manufacturing test application to start a carrier wave test and get the measurement. The test application must wait for the result before starting another iteration of the measurement.
IOCTL_GNSS_EXECUTE_SELFTEST

The IOCTL_GNSS_EXECUTE_SELFTEST control code is used by the GNSS manufacturing test application to initiate a self test in the GNSS lower stack.
IOCTL_GNSS_GET_CHIPSETINFO

The IOCTL_GNSS_GET_CHIPSETINFO control code is used by the GNSS manufacturing test application to get information about the GNSS chipset.
IOCTL_GNSS_GET_DEVICE_CAPABILITY

The IOCTL_GNSS_GET_DEVICE_CAPABILITY control code is used by the GNSS adapter to get the GNSS driver and device capabilities.
IOCTL_GNSS_GET_FIXDATA

The IOCTL_GNSS_GET_FIXDATA control code is used by the GNSS adapter to register to receive the next fix data from an active fix session.
IOCTL_GNSS_INJECT_AGNSS

The IOCTL_GNSS_INJECT_AGNSS control code is used by the GNSS adapter to inject AGNSS data into the driver. This IOCTL is sent as a result of the driver previously responding to a pending IOCTL_GNSS_LISTEN_AGNSS request.
IOCTL_GNSS_LISTEN_AGNSS

The IOCTL_GNSS_LISTEN_AGNSS control code is used by the GNSS adapter to start listening for AGNSS requests issued by the GNSS driver.
IOCTL_GNSS_LISTEN_BREADCRUMBING_ALERT

The IOCTL_GNSS_LISTEN_BREADCRUMBING_ALERT control code is used to request alert information from GNSS_BREADCRUMBING_ALERT_DATA when the breadcrumbing buffer has reached a level at which OS read operations should be performed.
IOCTL_GNSS_LISTEN_DRIVER_REQUEST

The IOCTL_GNSS_LISTEN_DRIVER_REQUEST control code is used by the GNSS driver to get data from the HLOS.
IOCTL_GNSS_LISTEN_ERROR

The IOCTL_GNSS_LISTEN_ERROR control code is used to start listening for ERROR events from the driver.
IOCTL_GNSS_LISTEN_GEOFENCE_ALERT

The IOCTL_GNSS_LISTEN_GEOFENCE_ALERT control code is used to start listening for geofence alerts from the driver.
IOCTL_GNSS_LISTEN_GEOFENCES_TRACKINGSTATUS

The IOCTL_GNSS_LISTEN_GEOFENCES_TRACKINGSTATUS control code is used to receive geofence tracking status from the driver.
IOCTL_GNSS_LISTEN_NI

The IOCTL_GNSS_LISTEN_NI control code is used to start listening for a SUPL NI request.
IOCTL_GNSS_LISTEN_NMEA

The IOCTL_GNSS_LISTEN_NMEA control code is used to start listening for NMEA events from the driver.
IOCTL_GNSS_MODIFY_FIXSESSION

The IOCTL_GNSS_MODIFY_FIXSESSION control code is used by the GNSS adapter to modify the fix session parameters of an active fix session.
IOCTL_GNSS_POP_BREADCRUMBS

The IOCTL_GNSS_POP_BREADCRUMBS control code is used to request a list of breadcrumbs contained in GNSS_BREADCRUMB_LIST.
IOCTL_GNSS_RESPOND_NI

The IOCTL_GNSS_RESPOND_NI control code is used by the GNSS adapter to respond to an NI request that was asynchronously communicated to it by the GNSS driver through the resolution of an IOCTL_GNSS_LISTEN_NI request.
IOCTL_GNSS_SEND_DRIVERCOMMAND

The IOCTL_GNSS_SEND_DRIVERCOMMAND control code is used by the GNSS adapter to execute well-defined commands on the driver and also to set driver configuration parameters.
IOCTL_GNSS_SEND_PLATFORM_CAPABILITY

The IOCTL_GNSS_SEND_PLATFORM_CAPABILITY control code is used by the GNSS adapter to communicate the various location-specific platform capabilities.
IOCTL_GNSS_SET_SUPL_HSLP

The IOCTL_GNSS_SET_SUPL_HSLP control code is used by the GNSS adapter to set the SUPL H-SLP address.
IOCTL_GNSS_SET_V2UPL_CONFIG

The IOCTL_GNSS_SET_V2UPL_CONFIG control code is used by the GNSS adapter to set configuration for v2 user plane location for CDMA, which consist of the MPC address, and in testing mode, potentially the PDE address.
IOCTL_GNSS_START_BREADCRUMBING

The IOCTL_GNSS_START_BREADCRUMBING control code is used to start and configure breadcrumbing.
IOCTL_GNSS_START_FIXSESSION

The IOCTL_GNSS_START_FIXSESSION control code is used by the GNSS adapter to start a fix session.
IOCTL_GNSS_STOP_BREADCRUMBING

The IOCTL_GNSS_STOP_BREADCRUMBING control code is used to stop breadcrumbing.
IOCTL_GNSS_STOP_FIXSESSION

The IOCTL_GNSS_STOP_FIXSESSION control code is used by the GNSS adapter to stop an active fix session.

Enumerations

 
GNSS_AGNSS_REQUEST_TYPE

This enumeration indicates the type of AGNSS injection request represented by the GNSS_AGNSS_REQUEST_PARAM structure.
GNSS_DRIVER_REQUEST

GNSS_DRIVER_REQUEST enumerates the GNSS driver data request types.
GNSS_DRIVERCOMMAND_TYPE

This enumeration indicates the type of driver command or configuration for the GNSS driver provided in the GNSS_DRIVERCOMMAND_PARAM structure.
GNSS_EVENT_TYPE

This enumeration indicates the type of an event and is used by the GNSS_EVENT structure.
GNSS_FIXSESSIONTYPE

This enumeration indicates the type of location fix needed by the GNSS adapter when it issues an IOCTL_GNSS_START_FIXSESSION control code. This enumeration is set within the GNSS_FIXSESSION_PARAM structure.
GNSS_GEOFENCE_STATE

GNSS_GEOFENCE_STATE enumerates the various states of a single geofence.
GNSS_GEOREGIONTYPE

This enumeration is used for defining a geographical shape. A shape is used to define a geofence. Windows 10 currently only supports circular geofences.
GNSS_NI_NOTIFICATION_TYPE

GNSS_NI_NOTIFICATION_TYPE enumerates network-initialized (NI) notification types.
GNSS_NI_PLANE_TYPE

This enumeration indicates the plane type of a network initiated (NI) request represented by the GNSS_NI_REQUEST_PARAM structure.
GNSS_NI_REQUEST_TYPE

This enumeration indicates the network initiated (NI) request type represented by the GNSS_NI_REQUEST_PARAM structure.
GNSS_NI_USER_RESPONSE

This enumeration indicates the user’s response to a network initiated (NI) request, which is represented by the GNSS_NI_RESPONSE structure.
GNSS_SUPL_CERT_ACTION

This enumeration indicates the action to take upon receipt of the SUPL certificate, which is defined by the GNSS_SUPL_CERT_CONFIG structure.

Structures

 
GNSS_AGNSS_INJECT

The GNSS_AGNSS_INJECT structure defines the parameters for AGNSS injection.
GNSS_AGNSS_INJECTBLOB

The GNSS_AGNSS_INJECTBLOB structure defines the format for AGNSS extended ephemeris injection.
GNSS_AGNSS_INJECTPOSITION

This structure defines the format for AGNSS position injection.
GNSS_AGNSS_INJECTTIME

This structure defines the format for AGNSS time injection.
GNSS_AGNSS_REQUEST_PARAM

This structure defines AGNSS request parameters.
GNSS_BREADCRUMB_LIST

The GNSS_BREADCRUMB_LIST structure contains an IOCTL_GNSS_POP_BREADCRUMBS response.
GNSS_BREADCRUMB_V1

This structure contains an individual breadcrumb. The order and types of the fields are designed to pack densely.
GNSS_BREADCRUMBING_ALERT_DATA

The GNSS_BREADCRUMBING_ALERT_DATA structure contains alert information for when the breadcrumb buffer has reached a level where OS read operations should be performed.
GNSS_BREADCRUMBING_PARAM

The GNSS_BREADCRUMBING_PARAM structure contains the configuration passed into the start of breadcrumbing via IOCTL_GNSS_START_BREADCRUMBING.
GNSS_CHIPSETINFO

This structure defines the specific data elements associated with the GNSS hardware.
GNSS_CONTINUOUSTRACKING_PARAM

This structure defines the parameters for a continuous tracking fix session.
GNSS_CP_NI_INFO

The GNSS_CP_NI_INFO structure contains CP NI information.
GNSS_CWTESTDATA

This structure defines specific data elements associated with carrier wave test results returned from the driver.
GNSS_DEVICE_CAPABILITY

The GNSS_DEVICE_CAPABILITY structure is used to determine the device capabilities of the underlying GNSS engine.
GNSS_DISTANCETRACKING_PARAM

This structure defines the parameters for a distance-based tracking fix session.
GNSS_DRIVER_REQUEST_DATA

This structure contains driver data request information.
GNSS_DRIVERCOMMAND_PARAM

The GNSS_DRIVERCOMMAND_PARAM structure is used to send a command to the GNSS driver.
GNSS_ERRORINFO

This structure contains error information.
GNSS_EVENT

The GNSS_EVENT structure defines the information required for a GNSS event.
GNSS_EVENT_2

The GNSS_EVENT_2 structure defines the information required for a GNSS event.
GNSS_FIXDATA

The GNSS_FIXDATA structure defines the specific data elements associated with a GNSS fix returned from the driver.
GNSS_FIXDATA_2

The GNSS_FIXDATA_2 structure defines the specific data elements associated with a GNSS fix returned from the driver.
GNSS_FIXDATA_ACCURACY

The GNSS_FIXDATA_ACCURACY structure defines the accuracy details of a fix.
GNSS_FIXDATA_ACCURACY_2

The GNSS_FIXDATA_ACCURACY_2 structure defines the accuracy details of a fix.
GNSS_FIXDATA_BASIC

The GNSS_FIXDATA_BASIC structure defines basic position information.
GNSS_FIXDATA_BASIC_2

The GNSS_FIXDATA_BASIC_2 structure defines basic position information.
GNSS_FIXDATA_SATELLITE

The GNSS_FIXDATA_SATELLITE structure in gnssdriver.h defines satellite-related information of a fix.
GNSS_FIXSESSION_PARAM

This structure defines the parameters used by the GNSS adapter to start a fix session.
GNSS_GEOFENCE_ALERT_DATA

The GNSS_GEOFENCE_ALERT_DATA structure is used by the GNSS engine to notify a geofence breach alert.
GNSS_GEOFENCE_CREATE_PARAM

The GNSS_GEOFENCE_CREATE_PARAM structure defines the parameters for creating a geofence in the GNSS engine.
GNSS_GEOFENCE_CREATE_RESPONSE

The GNSS_GEOFENCE_CREATE_RESPONSE structure defines the response expected from the GNSS engine when a new geofence is created.
GNSS_GEOFENCE_DELETE_PARAM

The GNSS_GEOFENCE_DELETE_PARAM structure is used for deleting a geofence.
GNSS_GEOFENCES_TRACKINGSTATUS_DATA

The GNSS_GEOFENCES_TRACKINGSTATUS_DATA structure is used by the GNSS engine to notify of any changes in the tracking status while tracking a set of previously created geofences.
GNSS_GEOREGION

The GNSS_GEOREGION structure defines the geographical shape of a geofence.
GNSS_GEOREGION_CIRCLE

This structure is used for defining a circular geofence.
GNSS_LKGFIX_PARAM

This structure is not used currently by the system and is not required to be implemented.
GNSS_NI_REQUEST_PARAM

This structure contains the NI request parameters.
GNSS_NI_RESPONSE

This structure contains NI request response information.
GNSS_NMEA_DATA

The GNSS_NMEA_DATA structure contains generic (non-parsed) NMEA data.
GNSS_PLATFORM_CAPABILITY

The GNSS_PLATFORM_CAPABILITY structure is used to communicate the platform/HLOS capabilities to the underlying GNSS driver.
GNSS_SATELLITEINFO

The GNSS_SATELLITEINFO structure in the gnssdriver.h file defines satellite-related information of a fix.
GNSS_SELFTESTCONFIG

The GNSS_SELFTESTCONFIG structure defines the specific data elements associated with a carrier wave test results returned from the driver.
GNSS_SELFTESTRESULT

The GNSS_SELFTESTRESULT structure defines the specific data elements associated with a carrier wave test results returned from the driver.
GNSS_SINGLESHOT_PARAM

This structure defines the parameters for a single-shot fix session.
GNSS_STOPFIXSESSION_PARAM

This structure is used to stop an active fix session.
GNSS_SUPL_CERT_CONFIG

This structure contains SUPL certificate information.
GNSS_SUPL_HSLP_CONFIG

The GNSS_SUPL_HSLP_CONFIG structure contains SUPL H-SLP configuration information.
GNSS_SUPL_NI_INFO

The GNSS_SUPL_NI_INFO structure contains the requested SUPL NI information.
GNSS_SUPL_VERSION

This structure contains SUPL version information.
GNSS_SUPL_VERSION_2

This structure contains Secure User Plane Location (SUPL) 2 version information.
GNSS_V2UPL_CONFIG

This structure contains V2UPL configuration information.
GNSS_V2UPL_NI_INFO

The GNSS_V2UPL_NI_INFO structure contains V2UPL NI information.