Controlling GPS Intermediate Driver Execution
9/8/2008
O driver intermediário de GPS (GPSID) oferece suporte a alguns do padrão serviço IOCTLs.
Windows Embedded CE 6.0 o driver intermediário de GPS é um serviço que é executado em Services.exe. Em Windows Mobile 6 o driver intermediário de GPS não é tecnicamente um serviço Windows Embedded CE (porque ele é executado em Device.exe, não services.exe),**
GPSID oferece suporte a esses padrão IOCTLs serviço:
Por exemplo IOCTL_SERVICE_REFRESH Faz com que o GPSID reler suas informações configuração a partir de Registro. O outro IOCTLs pode ser usado para consulta, desativar ou reativar GPSID operação. De exemplo, você pode usar IOCTL_SERVICE_STOP Para desativar a GPSID.
Enviando IOCTLs para o driver intermediário de GPS
O GPSID usa canalizar um controle, " GPD0: ", para processo este GRUPO de IOCTLs. Para enviar IOCTLs para o driver intermediário de GPS:
- Abrir uma conexão para o GPS Intermediate Driver, chamado CreateFile e passando " GPD0: " Como o primeiro parâmetro.
- Enviar a mensagem desejada para o driver intermediário de GPS, por chamado DeviceIoControl Com o apropriado IOCTL.
- Para fechar a conexão para o GPS Intermediate Driver, chamado CloseHandle.
De exemplo, a seguinte codificar envia um IOCTL_SERVICE_REFRESH para o driver intermediário de GPS:
HANDLE hGPS = CreateFile(L"GPD0:", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hGPS != INVALID_HANDLE_VALUE) {
DeviceIoControl(hGPS,IOCTL_SERVICE_REFRESH,0,0,0,0,0,0);
CloseHandle(hGPS);
}
IOCTL_SERVICE_START
Este IOCTL faz com que o driver intermediário de GPS inserir um estado onde ele aceita chamadas de dados usando o API analisada ou o processado interface. Você pode usar este ioctl para reiniciar o GPS Intermediate Driver depois desativá-la usando IOCTL_SERVICE_STOP.
Este IOCTL não tiver aberto o hardware de GPS. Em vez disso, o primeiro analisado API ou processado chamar interface faz com que GPSID para aberto o hardware de GPS.
IOCTL_SERVICE_STOP
Este IOCTL faz com que o driver intermediário de GPS para:
- fechar sua conexão para o subjacente hardware de GPS, mesmo se os aplicativos estão usando o GPS Intermediate Driver para recuperar dados de GPS,
- fechar existentes processado alças interface com um erro, e
- Sinal todos os eventos passados a GPSOpenDevice parâmetro hDeviceStateChange.
As chamadas para usar GPSID GPSOpenDevice ou ISpTTSEngine::Speak. CreateFile falhará após este IOCTL foi processado. Para reativar o GPSID após usar esse IOCTL, use IOCTL_SERVICE_START.
IOCTL_SERVICE_STATUS
Este IOCTL retorna o atual estado da GPS Intermediate Driver. Para obter mais informações, seethe IOCTL_SERVICE_STATUS.
IOCTL_SERVICE_REFRESH
Este IOCTL faz com que o GPSID reler seus parâmetros configuração a partir de Registro. O GPSID não reflete quaisquer alterações Registro até a IOCTL_SERVICE_REFRESH IOCTL é processada. Para obter mais informações, seethe Atualizando configuração de driver intermediário de GPS usando IOCTL_SERVICE_REFRESH.