Compartilhar via


Conceitos e definições de NDIS remotos

Esta seção apresenta uma visão geral dos requisitos do NDIS Remoto no canal de comunicação e dos drivers de camada inferior que são usados para se comunicar entre o host e o dispositivo NDIS remoto. Transições de estado do dispositivo e operações principais, como inicialização, parada e redefinição, também são descritas nesta seção.

  • Canal de Controle

    O canal de controle deve ser confiável e garantir a entrega sequenciada. Ele é usado para toda a comunicação, exceto para a transmissão de pacotes de dados de rede. Todas as mensagens de controle necessárias, exceto REMOTE_NDIS_HALT_MSG e REMOTE_NDIS_INDICATE_STATUS_MSG, são trocas de solicitação e resposta iniciadas pelo host. O dispositivo deve responder dentro do período de tempo limite, conforme especificado para cada barramento.

  • Canal de Dados

    O canal de dados é usado exclusivamente para a transmissão de pacotes de dados de rede. Ele pode consistir em vários subcanais (por exemplo, para qualidade variável de serviço) conforme definido para o barramento apropriado.

  • Inicialização e desarmessão

    Os canais de dados e controle são inicializados e configurados conforme especificado para o barramento apropriado. O host envia uma mensagem REMOTE_NDIS_INITIALIZE_MSG para o dispositivo NDIS Remoto. O dispositivo NDIS Remoto fornece informações sobre seu tipo (sem conexão ou orientado à conexão), meio com suporte e versão na mensagem de resposta REMOTE_NDIS_INITIALIZE_CMPLT.

    O host ou o dispositivo NDIS remoto podem derrubar o canal de comunicação por meio da mensagem REMOTE_NDIS_HALT_MSG . Todas as solicitações e pacotes pendentes são descartados no recebimento desta mensagem.

  • Definições de estado do dispositivo

    Após a inicialização no nível do barramento, diz-se que o dispositivo está no estado não inicializado do RNDIS. Ao receber um REMOTE_NDIS_INITIALIZE_MSG e responder com um REMOTE_NDIS_INITIALIZE_CMPLT com um status de RNDIS_STATUS_SUCCESS, o dispositivo entra no estado inicializado por RNDIS.

    Ao receber REMOTE_NDIS_SET_MSG especificar um valor de filtro diferente de zero para OID_GEN_CURRENT_PACKET_FILTER, o dispositivo entra no estado inicializado por dados RNDIS.

    Quando no estado RNDIS-data-initialized, a recepção de um REMOTE_NDIS_SET_MSG especificando um valor de filtro zero para OID_GEN_CURRENT_PACKET_FILTER força o dispositivo de volta ao estado inicializado por RNDIS.

    A recepção de REMOTE_NDIS_HALT_MSG ou uma desconexão no nível do barramento ou uma redefinição forçada a qualquer momento força o dispositivo ao estado não inicializado do RNDIS.

  • Parar

    A qualquer momento em que o dispositivo estiver no estado inicializado por RNDIS ou RNDIS inicializado, o computador host poderá encerrar a funcionalidade NDIS remota do dispositivo enviando REMOTE_NDIS_HALT_MSG para o dispositivo.

  • Redefinindo o canal de comunicação

    O canal de comunicação é redefinido quando ocorre um erro, como o tempo limite da mensagem. O host pode iniciar uma redefinição a qualquer momento quando o dispositivo estiver no estado inicializado por RNDIS enviando a mensagem REMOTE_NDIS_RESET_MSG para o dispositivo e o dispositivo deverá enviar uma mensagem de resposta quando tiver concluído a redefinição. Por exemplo, o host pode iniciar uma redefinição quando ocorreu um erro, como um tempo limite de mensagem.

    Observe que essa é uma redefinição reversível no sentido de que todos os identificadores (por exemplo, VCs para dispositivos orientados a conexão) continuam válidos após a redefinição. O dispositivo NDIS Remoto descarta todas as solicitações e pacotes pendentes como parte do processo de redefinição. O dispositivo remoto pode redefinir alguns de seus componentes de hardware, mas mantém o canal de comunicação intacto.

    Se o dispositivo NDIS Remoto executar uma reinicialização, esse evento será equivalente a "Remover" seguido por "Adicionar" Plug and Play eventos. O driver de miniporto NDIS do host será interrompido e removido e uma nova instância será adicionada e iniciada. Toda a inicialização de NDIS remoto e de nível de barramento será executada novamente. Um dispositivo NDIS remoto pode ser reiniciado em caso de falha crítica do dispositivo.

  • Controle de fluxo

    O dispositivo NDIS Remoto pode precisar exercer o controle de fluxo para evitar que o host transborde seus buffers de dados com pacotes. Quaisquer provisionamentos ou requisitos de controle de fluxo são específicos do barramento.

  • Ordenação de bytes numéricos

    Todos os valores numéricos em mensagens NDIS remotas devem ser codificados no formato little-endian (byte menos significativo primeiro).

  • Encapsulamento de mensagens do NDIS

    Não há nenhuma especificação de NDIS remoto para a maneira como as mensagens NDIS são encapsuladas em mensagens de barramento nativas ou primitivas.