GPS Intermediate Driver Power Management
In many target devices, GPS hardware may be one of the largest consumers of power in the entire target device. It's not uncommon for GPS hardware to use as much power as the device display.
Because of this high power consumption, it is vitally important that GPS hardware only be turned on when necessary.
To make this easier to accomplish, the GPS Intermediate Driver only turns on GPS hardware when one of the following two things occurs:
- An application calls GPSOpenDevice.
- An application calls CreateFile with the multiplexer interface string.
The GPS Intermediate Driver does reference counting for each application. This means that if, for example, one application calls GPSOpenDevice and another uses the multiplexer with CreateFile, the GPS Intermediate Driver only turns the GPS hardware off when both applications have indicated that they're no longer using its data. In this case, the application that used GPSOpenDevice must call GPSCloseDevice and the application that used CreateFile must call CloseHandle.
While in most cases target devices can rely on reference counting performed by the GPS Intermediate Driver to start and stop GPS hardware at appropriate times, in certain cases - like, for example, if the target device is extremely low on battery power - it may be useful to peremptorily turn off GPS hardware. You can do this using the IOCTL_SERVICE_STOP IOCTL, as described in more detail in Controlling GPS Intermediate Driver Execution.
Application code may be able to conserve battery power by taking advantage of any GPS hardware support for using existing location data to shorten startup times. For more information about GPS Intermediate Driver support for minimizing startup times, see Implementing GPS Intermediate Driver Hardware IOCTLs.
See Also
GPS Intermediate Driver Application Development
Send Feedback on this topic to the authors