Compartilhar via


IOCTL_GNSS_START_FIXSESSION IOCTL (gnssdriver.h)

O código de controle IOCTL_GNSS_START_FIXSESSION é usado pelo adaptador GNSS para iniciar uma sessão de correção.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Um ponteiro para uma estrutura GNSS_FIXSESSION_PARAM .

Comprimento do buffer de entrada

Defina como sizeof(GNSS_FIXSESSION_PARAM).

Buffer de saída

Definido como NULL.

Comprimento do buffer de saída

Defina como 0.

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

O driver define um valor NTSTATUS para indicar um dos resultados a seguir.

  • A sessão de correção foi iniciada com êxito.
  • Uma sessão de correção do mesmo tipo já está ativa e o driver não dá suporte a várias sessões.

Notas do adaptador GNSS

Se o suporte a várias sessões não estiver presente, o adaptador GNSS garantirá que várias sessões do mesmo tipo de correção sejam multiplexadas corretamente para que o driver GNSS veja apenas uma sessão de um determinado tipo de correção. O adaptador GNSS pode modificar os parâmetros de sessão de correção de uma sessão de correção ativa por meio da chamada IOCTL_GNSS_MODIFY_FIXSESSION .

O adaptador GNSS não inicia uma solicitação get fix, a menos que o driver conclua essa chamada e retorne um status de êxito na saída.

Notas do driver GNSS

Se o suporte a várias sessões não estiver presente e o adaptador GNSS enviar outra solicitação de correção inicial para um tipo de correção que já esteja ativo, o driver GNSS deverá falhar na nova solicitação de sessão. O driver não deve substituir a sessão anterior pelos novos detalhes da sessão de correção.

Várias sessões de correção de diferentes tipos de correção sempre são compatíveis com o driver GNSS.

Depois que o driver GNSS aceitar os parâmetros de sessão de correção, validá-los e iniciar o mecanismo GNSS, ele concluirá imediatamente a E/S com um código de retorno de êxito. A menos que a sessão de correção inicial retorne com um código de êxito, o adaptador GNSS não emitirá uma solicitação get fix. Todas as correções recebidas para essa sessão de correção específica devem ser entregues ao adaptador GNSS em uma chamada de correção get pendente subsequente do adaptador GNSS que tem a mesma ID de sessão. Se uma correção ficar disponível e nenhuma chamada de correção de obtenção pendente for criada pelo adaptador, o driver GNSS será necessário para enfileirar a correção até um valor de tempo limite específico da implementação, até que uma E/S pendente seja criada que represente a ID da sessão.

Depois que uma sessão de correção é iniciada, ela permanece ativa, a menos que a sessão de correção seja interrompida explicitamente pelo adaptador GNSS. Isso se aplica a todos os tipos de correção.

Requisitos

Requisito Valor
Cabeçalho gnssdriver.h

Confira também

Criando solicitações IOCTL em drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously