Partilhar via


Inicializando um adaptador de miniporta

Quando um dispositivo de rede fica disponível, o sistema carrega o driver de miniporta NDIS necessário, se ele ainda não estiver carregado. Posteriormente, o gestor Plug and Play (PnP) envia ao NDIS um IRP Plug and Play para iniciar o dispositivo. O NDIS chama a funçãoMiniportInitializeEx do driver de miniportapara inicializar um adaptador para operações de E/S de rede. O NDIS pode chamar MiniportInitializeEx a qualquer momento após a inicialização do driver. Para obter mais informações sobre a inicialização do driver de miniporta, consulte Inicializando um driver de miniporta.

Até que MiniportInitializeEx retorne, o NDIS não envia solicitações para o adaptador que está sendo inicializado. O adaptador está no estado de inicialização.

Um driver de miniporta normalmente executa as seguintes tarefas em MiniportInitializeEx:

  1. Obtém informações de configuração para o adaptador.

  2. Obtém informações sobre os recursos de hardware para o adaptador.

  3. Chama o NdisMSetMiniportAttributes e fornece os seguintes atributos associados ao adaptador:

    • Um ponteiro para uma área de contexto alocada pelo driver.
    • Indicadores de atributos adequados.
    • O intervalo de tempo-limite para chamar a sua função MiniportCheckForHangEx.
    • O tipo de interface.
  4. Inicializa recursos específicos do adaptador.

O driver do miniporto especifica os atributos do adaptador na estrutura NDIS_MINIPORT_ADAPTER_ATTRIBUTES que MiniportInitializeEx passa para NdisMSetMiniportAttributes.

Normalmente, MiniportInitializeEx aloca recursos específicos do adaptador na seguinte ordem:

  1. Memória de pool não paginada.

  2. NET_BUFFER e pools de NET_BUFFER_LIST (consulte Miniport Driver Send and Receive Operations).

  3. Fechaduras giratórias.

  4. Temporizadores.

  5. Portas IO.

  6. DMA (ver Dispersão/Recolha de DMA).

  7. Memória partilhada.

  8. Interrupções (consulte Gerenciando interrupções).

Depois que MiniportInitializeEx retorna com êxito, o adaptador está no estado Pausado. O NDIS pode chamar a função MiniportRestart para fazer a transição do adaptador para o estado em execução. Para obter mais informações, consulte Iniciando um adaptador de miniporta.

Se MiniportInitializeEx devolver NDIS_STATUS_SUCCESS, o driver deverá libertar todos os recursos para o adaptador na função MiniportHaltEx. Para obter mais informações, consulte Interrupção de um Adaptador de Miniporta.

O driver deve chamar NdisMSetMiniportAttributes e definir os GeneralAttributes na estrutura NDIS_MINIPORT_ADAPTER_ATTRIBUTES se retornar NDIS_STATUS_SUCCESS.

Se MiniportInitializeEx falhar, MiniportInitializeEx deverá liberar todos os recursos alocados antes de retornar e o adaptador retornar ao estado interrompido.

Parando um adaptador de miniporta

Estados e operações do adaptador de miniporta

Operações de Envio e Recebimento do Driver Miniport

Dispersar/Reunir DMA

Iniciando um adaptador de miniporta