Redefinição de hardware do driver de miniport

Um driver de miniporte deve registrar uma função MiniportResetEx com NdisMRegisterMiniportDriver.

MiniportResetEx pode ser concluído de forma síncrona ou assíncrona com uma chamada para NdisMResetComplete (consulte a figura a seguir).

Diagrama ilustrando o processo de redefinição de uma interface de rede cartão.

MiniportResetEx deve:

  • Desabilite mais interrupções.

  • Limpe os dados associados a qualquer envio em andamento. Por exemplo, em um buffer de anel para um dispositivo DMA (acesso direto à memória) master barramento, os ponteiros para enviar buffers devem ser limpos. Os drivers de miniporte desserializados e orientados à conexão devem retornar NDIS_STATUS_REQUEST_ABORTED para quaisquer solicitações de envio enfileiradas.

  • Restaure o estado do hardware e o estado interno do driver de miniporto para o estado que existia antes da operação de redefinição.

O driver de miniporto é responsável por restaurar o estado de hardware do dispositivo, exceto para endereços multicast, filtros de pacote, configurações de descarregamento de tarefas e padrões de ativação. Essas configurações são restauradas pelo driver de miniporto ou pelo NDIS. O driver de miniporto determina quem é responsável por restaurar essas configurações retornando um valor booliano no parâmetro AddressingReset .

Se o driver de miniporto retornar FALSE no parâmetro AddressingReset , o driver de miniporto restaurará seus endereços multicast, filtros de pacote, configurações de descarregamento de tarefas e ativará padrões para seu estado inicial. Se o driver de miniporto retornar TRUE em AddressingReset, o NDIS chamará uma função MiniportOidRequest do driver de miniport sem conexão ou uma função MiniportCoOidRequest do driver de miniporto orientada a conexão para definir as seguintes configurações:

Estados do adaptador de um driver de miniporto

Estados e operações do adaptador miniport

Funções de redefinição e interrupção do driver de miniport