Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As estruturas NDIS que fornecem informações de versão têm um membro Header que é definido como uma estrutura NDIS_OBJECT_HEADER e os drivers NDIS devem fornecer suporte para essas informações de versão.
O NDIS pode suportar drivers que suportam uma versão NDIS maior ou menor do que a versão atual do NDIS (ou seja, a versão do NDIS que é suportada na versão do sistema operacional que um computador está executando). Além disso, a versão NDIS registrada (ou seja, a versão que o driver relatou durante a inicialização) do driver pode ser menor do que a versão mais alta que o driver suporta. Por exemplo, um driver NDIS 5.1 ou um driver NDIS 6.1 pode ser executado em uma versão do sistema operacional que está executando o NDIS 6.0. O driver NDIS 5.1 simplesmente se registra como um driver NDIS 5.1 durante a inicialização. No entanto, o driver NDIS 6.1 deve verificar a versão atual do NDIS e deve se registrar como um driver que suporta o nível mais alto de NDIS que está disponível (neste exemplo, NDIS 6.0). Para obter mais informações sobre como obter a versão atual do NDIS, consulte Obtendo a versão do NDIS.
Observação Um driver não é necessário para suportar todos os recursos em uma revisão posterior de uma estrutura. Por exemplo, um driver de miniporta pode criar uma estrutura da versão 2 e fornecer valores apropriados para uma estrutura da versão 1.
Para acessar os membros em estruturas que possuem informações de versão, os drivers NDIS devem concluir o seguinte processo:
Verifique os membros Header.Revision e Header.Size antes de acessar qualquer membro na estrutura.
Para estruturas de versões anteriores (ou seja, estruturas que têm um número de revisão menor do que o número associado à versão NDIS suportada pelo driver):
- O driver deve verificar se o valor Header.Size está correto para o valor Header.Revision . Por exemplo, o valor de NDIS_SIZEOF_Xxx_REVISION_1 está correto para Xxx_REVISION_1 mas é muito pequeno para Xxx_REVISION_2.
- O valor Header.Size deve ser igual ou maior que NDIS_SIZEOF_Xxx_REVISION_Nn (onde Nn é o número de revisão da estrutura que o driver está usando) e o driver deve lidar corretamente com as informações na estrutura conforme apropriado para essa revisão.
Para estruturas de versão posterior (ou seja, estruturas que têm um número de revisão maior do que o número associado à versão NDIS suportada pelo driver), o driver pode usar a estrutura como se fosse uma revisão mais antiga da estrutura. A estrutura da versão superior é sempre compatível com a versão mais antiga.
Os controladores precisam utilizar a versão correta de uma estrutura para a versão NDIS registada do controlador. Por exemplo, um driver NDIS 6.1 deve relatar seus recursos de descarga em estruturas NDIS_OFFLOAD definindo os membros na estrutura NDIS_OBJECT_HEADER para indicar NDIS_OFFLOAD_REVISION_2. No entanto, o driver não precisa suportar todos os recursos que estão incluídos com NDIS_OFFLOAD_REVISION_2.
Um driver que lida com êxito com uma solicitação de conjunto OID deve definir o membro SupportedRevision na estrutura NDIS_OID_REQUEST após o retorno da solicitação de conjunto OID. O membro SupportedRevision notifica o iniciador da solicitação da revisão suportada pelo driver. Por exemplo, um driver de miniporta pode criar uma estrutura de Xxx_REVISION_2, fornecer valores apropriados para uma estrutura de Xxx_REVISION_1 e preencher o restante da estrutura com zeros. O driver de miniporta reportaria Xxx_REVISION_1 no membro SupportedRevision. Nesse caso, um driver de protocolo que pode suportar o Xxx_REVISION_2 usará as informações do Xxx_REVISION_1 que o driver de miniporta suportava.
Para determinar quais informações foram processadas com sucesso por um driver subjacente, os drivers sobrepostos que emitem solicitações OID devem verificar o valor no membro SupportedRevision na estrutura NDIS_OID_REQUEST após o retorno da solicitação OID.