Compartilhar via


Controlling GPS Intermediate Driver Execution

Windows Mobile SupportedWindows Embedded CE Supported

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:

  1. Abrir uma conexão para o GPS Intermediate Driver, chamado CreateFile e passando " GPD0: " Como o primeiro parâmetro.
  2. Enviar a mensagem desejada para o driver intermediário de GPS, por chamado DeviceIoControl Com o apropriado IOCTL.
  3. 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.

See Also

Other Resources

GPS Intermediate Driver Application Development