Compartilhar via


Modelo de comunicação, sincronização e anulação

Em um alto nível, esta documentação define dois tipos de objetos:

  1. Um adaptador, que representa o dispositivo Wi-Fi.
  2. Uma porta, que representa entidades MAC e PHY distintas no adaptador.

Para obter mais informações sobre esses objetos, consulte Modelo e objetos de dispositivo Wi-Fi. Os comandos, um conjunto de operações permitidas, são definidos para cada um desses objetos. Os comandos são categorizados ainda mais em Propriedades e Tarefas.

Os comandos de propriedade são comandos simples (como obter força do sinal, obter lista BSS atual e definir filtro de pacote). Eles são concluídos em um curto período de tempo e não são complicados de implementar.

Comandos de tarefa são operações complexas que podem levar vários segundos para serem concluídas. Por exemplo, uma operação de verificação de Wi-Fi seria categorizada como uma tarefa nesse modelo.

Todos os comandos emitidos para o componente IHV podem ser concluídos de forma assíncrona.

Sequência de mensagens

A sequência de mensagens para cada tipo de comando é mostrada nas figuras a seguir.

A Figura 1 mostra a sequência de comandos da tarefa.

fluxo de tarefas do comando wdi.

A Figura 2 mostra o fluxo de comando da propriedade.

fluxo de comando da propriedade wdi.

A Figura 3 mostra o fluxo de indicações.

fluxo de indicação wdi.

Sincronização

Para manter a implementação do componente IHV simples, o modelo define as seguintes regras de sincronização:

  1. Os comandos são sempre serializados entre as Etapas 1 e 3 na Figura 1 e na Figura 2. Por exemplo, nenhum comando novo é emitido para o adaptador até a indicação do adaptador na Etapa 3. Isso também implica que todas as propriedades são serializadas entre si.
  2. Todos os comandos de tarefa são serializados entre as Etapas 1 e 4 na Figura 1. Por exemplo, apenas uma tarefa é executada no adaptador por vez. No entanto, depois que uma tarefa é iniciada (Etapa 3 na Figura 1), o adaptador pode obter solicitações de comando de propriedade. A Etapa 3 e a Etapa 4 devem ser concluídas antes que o próximo comando de tarefa seja enviado.
  3. Os comandos do conjunto de propriedades são de dois tipos : aqueles que podem ser enviados após o início da tarefa e aqueles que devem ser serializados com tarefas pendentes.
  4. O caminho dos dados não é serializado com o caminho do comando, exceto para casos específicos descritos posteriormente na documentação.
  5. O escopo de sincronização é o escopo do nível do adaptador.
  6. Um subconjunto de tarefas pode ser anulado depois que elas forem iniciadas. Isso significa que, se uma tarefa de prioridade mais alta (A) chegar enquanto uma B (tarefa de prioridade mais baixa) estiver pendente, B poderá ser anulada pelo host. A racionalização das decisões de priorização está além do escopo desta documentação e depende de cenários do usuário.
  7. Para comandos de tarefa, a Etapa 4 pode vir antes da etapa 3 ser concluída. No entanto, se a Etapa 4 for indicada, a Etapa 3 não poderá falhar.

Anular

A maioria das tarefas pode ser anulada depois de terem sido iniciadas. A finalidade da anulação é disparar o adaptador para concluir a tarefa rapidamente enviando a indicação completa (Etapa 4 na Figura 1). A anulação é permitida somente na janela entre as Etapas 3 e 4 na Figura 1. Ao receber a anulação, o adaptador deve concluir a tarefa dentro de 50 milissegundos. Para a maioria dos comandos, ao receber a anulação, o adaptador não precisa reverter para o estado antes de o comando ser iniciado. Existem condições de corrida entre o comando abort sendo emitido e as conclusões que chegam ao componente host. Nesse caso, se o componente IHV receber uma anulação de uma tarefa já concluída, nenhuma ação adicional será necessária do componente IHV para processar a operação de anulação. Anular uma tarefa é simplesmente um sinal de que o componente IHV deve limpo a tarefa o mais rápido possível. A semântica de conclusão de comando não será alterada se uma anulação for emitida. A conclusão do comando da propriedade abort e a indicação de conclusão da tarefa devem ser notificadas adequadamente em todos os casos.

Espera-se que as propriedades sejam concluídas em pouco tempo para que não possam ser anuladas.

Os comandos de tarefa têm um identificador exclusivo que permite que o host direcione um comando específico para anulação.