Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As estruturas do NDIS que fornecem informações de versão têm um membro Header definido como uma estrutura NDIS_OBJECT_HEADER, e os drivers NDIS devem fornecer suporte para essas informações de versão.
O NDIS pode dar suporte a drivers que dão suporte a uma versão NDIS maior ou inferior do que a versão atual do NDIS (ou seja, a versão do NDIS com suporte na versão do sistema operacional em que um computador está em execução). Além disso, a versão do NDIS registrada (ou seja, a versão que o driver relatou durante a inicialização) do driver pode ser inferior à versão mais alta à qual o driver dá suporte. Por exemplo, um driver NDIS 5.1 ou um driver NDIS 6.1 podem ser executados 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 dê suporte ao nível mais alto de NDIS 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.
Nota Um driver não é necessário para dar suporte a todos os recursos em uma revisão posterior de uma estrutura. Por exemplo, um driver de miniporto pode criar uma estrutura versão 2 e fornecer valores apropriados para uma estrutura versão 1.
Para acessar os membros em estruturas que têm informações de versão, os drivers NDIS devem concluir o seguinte processo:
Verifique os membros Header.Revision e Header.Size antes de acessar quaisquer membros na estrutura.
Para estruturas de versão anteriores (ou seja, estruturas que têm um número de revisão menor do que o número associado à versão do NDIS compatível com o 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 (em que Nn é o número de revisão da estrutura que o driver está usando) e o driver deve manipular corretamente as informações na estrutura, conforme apropriado para essa revisão.
Para estruturas de versão posteriores (ou seja, estruturas que têm um número de revisão maior do que o número associado à versão do NDIS compatível com o driver), o driver pode usar a estrutura como se fosse uma revisão mais antiga da estrutura. A estrutura de versão superior é sempre compatível com a versão mais antiga.
Os drivers devem usar a revisão correta de uma estrutura correspondente à versão NDIS registrada do driver. Por exemplo, um driver NDIS 6.1 deve reportar suas capacidades de offload em estruturas NDIS_OFFLOAD, configurando os membros na estrutura NDIS_OBJECT_HEADER para indicar NDIS_OFFLOAD_REVISION_2. No entanto, o driver não precisa dar suporte a todos os recursos incluídos no NDIS_OFFLOAD_REVISION_2.
Um driver que lida com êxito com uma solicitação de conjunto de OID deve definir o membro SupportedRevision na estrutura NDIS_OID_REQUEST no retorno da solicitação do conjunto de OID. O membro SupportedRevision notifica o iniciador da solicitação sobre a revisão que o driver suporta. Por exemplo, um driver de miniporto pode criar uma estrutura Xxx_REVISION_2, fornecer valores apropriados para uma estrutura Xxx_REVISION_1 e preencher o restante da estrutura com zeros. O driver de miniporto relataria Xxx_REVISION_1 no membro SupportedRevision . Nesse caso, um driver de protocolo que pode dar suporte a um Xxx_REVISION_2 usará as informações do Xxx_REVISION_1 que o driver de miniporto suportou.
Para determinar quais informações foram tratadas com êxito por um driver subjacente, os drivers subjacentes 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.