This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for

This IOCTL can be implemented by GPS hardware manufacturers to return almanac information currently used by the GPS hardware.

An application using the GPS Intermediate Driver can save the data retrieved by calling this IOCTL, say, on shutdown, and then provide the results to the GPS hardware, at startup, by calling IOCTL_GPS_WRITE_ALMANAC. This data may provide enough information to the GPS hardware to enable the hardware to obtain a GPS fix more quickly than it would without almanac data.

For more information about how to use and imlement this IOCTL, see Implementing GPS Intermediate Driver Hardware IOCTLs.

Non-almanac data that can be used to enable faster GPS fixes - like mobile phone tower information, for example - should be retrieved using IOCTL_GPS_READ_ASSISTED.


Applications using the GPS Intermediate Driver should pass a pointer that can hold almanac data using the lpOutBuffer parameter of the DeviceIOControlfunction.

GPS hardware manufacturers that implement this IOCTL should use the lpOutBuffer pointer to return almanac data currently used by the GPS hardware.

It is important to note that the almanac data is only meaningful to the GPS hardware. The data is completely opaque to an application using the GPS Intermediate Driver. The degree to which applications can interact with almanac information is limited to saving the results of IOCTL_GPS_READ_ALMANACand then providing the saved results to the GPS hardware using IOCTL_GPS_WRITE_ALMANAC.

Return Values

GPS hardware manufacturers may return TRUE if the hardware device driver was able to provide almanac data, and FALSE otherwise. However, this is not required and applications should not rely on the return value obtained when using this IOCTL.


Header gpsdev.h
Windows Embedded CE Windows Embedded CE 6.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also