Compartilhar via


IOCTL_GNSS_CREATE_GEOFENCE IOCTL (gnssdriver.h)

O código de controle IOCTL_GNSS_CREATE_GEOFENCE é usado pelo adaptador GNSS para criar uma cerca geográfica.

Aplica-se ao GNSS DDI versão 2 e posterior.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Um ponteiro para uma estrutura GNSS_GEOFENCE_CREATE_PARAM que define a cerca geográfica a ser criada.

Comprimento do buffer de entrada

Defina como sizeof(GNSS_GEOFENCE_CREATE_PARAM).

Buffer de saída

Um ponteiro para uma estrutura GNSS_GEOFENCE_CREATE_RESPONSE .

Comprimento do buffer de saída

Defina como sizeof(GNSS_GEOFENCE_CREATE_RESPONSE).

Bloco de status

Irp->IoStatus.Status será definido como STATUS_SUCCESS se a solicitação for bem-sucedida. Caso contrário, Status para a condição de erro apropriada como um código NTSTATUS .

Comentários

Notas do adaptador GNSS

Se a chamada for bem-sucedida, o mecanismo GNSS registrará a cerca geográfica e atribuirá uma ID exclusiva. O adaptador GNSS usa a ID exclusiva para toda a interação com o driver em relação a essa cerca geográfica específica.

Se a chamada falhar, o driver GNSS deverá garantir que o mecanismo GNSS não acabe criando a cerca geográfica e comece a rastreá-la. Uma falha deve reverter o estado do mecanismo GNSS para o estado anterior antes de adicionar essa cerca geográfica.

O adaptador GNSS não espera que o driver persista as cercas geográficas entre as reinicializações do driver. O adaptador GNSS limpa explicitamente todas as cercas geográficas do driver GNSS por meio do comando GNSS_ResetGeofencesTracking nos momentos apropriados (inicialização, acompanhamento status alteração após uma falha etc.).

Notas do driver GNSS

Se essa for a primeira cerca geográfica, o driver GNSS deverá iniciar o rastreamento de cerca geográfica, continuar monitorando a cerca geográfica em relação à localização atual do dispositivo de maneira eficiente e gerar alertas se uma cerca geográfica for violada. Se o mecanismo de GNSS não puder rastrear a cerca geográfica (devido a condições de sinal inválida ou outros erros transitórios), um erro status deverá ser gerado por meio do evento LISTEN_GEOFENCES_TRACKINGSTATUS.

O mecanismo GNSS deve seguir as seguintes diretrizes para acompanhamento de cerca geográfica:

  • A operação de rastreamento de dispositivos e a detecção de violação devem ser otimizadas para levar em conta o tamanho e a área da cerca geográfica. Se todas as condições forem as mesmas, cercas geográficas maiores deverão ser rastreadas de forma menos agressiva em comparação com cercas geográficas menores.

  • A operação de acompanhamento do dispositivo deve ser otimizada dinamicamente para levar em conta a distância relativa da cerca geográfica em relação à posição atual. Todas as condições são iguais, cercas geográficas mais distantes devem ser rastreadas menos agressivamente em comparação com as mais próximas e a agressão deve aumentar à medida que o dispositivo se aproxima da cerca geográfica.

  • O mecanismo de detecção de violação deve ser assimétrico para entrada e saída. Como regra geral, as regras para determinar a saída de uma cerca geográfica devem ser reduzidas em comparação com as regras para determinar a entrada na cerca geográfica.

  • O mecanismo de detecção de violação deve levar em conta possíveis falsos positivos decorrentes devido à imprecisão inerente da localização do dispositivo. Por exemplo, se o dispositivo estiver passando o mouse perto da borda de uma cerca geográfica, um mecanismo de detecção de violação abaixo do ideal poderá gerar muitos eventos de entrada e saída de volta para trás, mesmo que o dispositivo não esteja se movendo fisicamente para dentro e para fora. A detecção e a histerese de saída assimétrica são medidas típicas para evitar esses erros.

  • A operação de rastreamento de dispositivos do mecanismo GNSS deve usar todas as formas de sinais alterados de localização disponíveis que estão disponíveis no SoC ou podem ser usados com baixa potência. Esses sinais podem incluir, mas não se limitando a, dados do acelerômetro e outros sensores, alteração de sinal da rede celular, conexão/desconexão wi-fi e assim por diante.

  • As operações de rastreamento de cerca geográfica e detecção de violação devem ser totalmente implementadas no mecanismo GNSS no SoC. Nem o driver GNSS nem qualquer outro componente de extensão no processador de aplicativos devem ser ativados para rastreamento de dispositivos ou detecção de violação.

  • O driver GNSS e o mecanismo GNSS devem expor parâmetros de ajuste específicos de IHV documentados para facilitar o desempenho e o ajuste de energia da funcionalidade de acompanhamento de cerca geográfica. A Microsoft e os OEMs usarão parâmetros de ajuste e determinarão o equilíbrio certo entre a qualidade do serviço, a confiabilidade e o custo de energia da experiência de cerca geográfica de ponta a ponta. Os parâmetros de ajuste podem ser disponibilizados por meio de configurações do Registro ou por meio de dados de configuração de SoC IHV.

Requisitos

Requisito Valor
Cabeçalho gnssdriver.h (inclua Gnssdriver.h)

Confira também

Criando solicitações IOCTL em drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously