Inicializando um adaptador miniportuário
Quando um dispositivo de rede fica disponível, o sistema carrega o driver de miniporto NDIS necessário, se ele ainda não estiver carregado. Posteriormente, o gerenciador do Plug and Play (PnP) envia ao NDIS um IRP plug-and-play para iniciar o dispositivo. O NDIS chama a função MiniportInitializeEx do driver de miniport para 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 miniporto, consulte Inicializando um driver de miniporto.
Até que MiniportInitializeEx retorne, o NDIS não envia nenhuma solicitação para o adaptador que está sendo inicializado. O adaptador está no estado Inicializando.
Um driver de miniporte normalmente executa as seguintes tarefas em MiniportInitializeEx:
Obtém informações de configuração para o adaptador.
Obtém informações sobre os recursos de hardware para o adaptador.
Chama NdisMSetMiniportAttributes e fornece os seguintes atributos associados ao adaptador:
- Um ponteiro para uma área de contexto alocada pelo driver.
- Sinalizadores de atributos apropriados.
- O intervalo de tempo limite para chamar sua função MiniportCheckForHangEx .
- O tipo de interface.
Inicializa recursos específicos do adaptador.
O driver de 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:
Memória do pool nãopagado.
NET_BUFFER e pools de NET_BUFFER_LIST (consulte Operações de envio e recebimento do miniport driver).
Bloqueios de rotação.
Temporizadores.
Portas de E/S.
DMA (consulte Dispersão/Reunir DMA).
Memória compartilhada.
Interrupções (consulte Gerenciando interrupções).
Depois que MiniportInitializeEx retornar com êxito, o adaptador estará 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 miniporte.
Se MiniportInitializeEx retornar NDIS_STATUS_SUCCESS, o driver deverá liberar todos os recursos para o adaptador na função MiniportHaltEx . Para obter mais informações, consulte Interrompendo um adaptador de miniport.
O driver deve chamar NdisMSetMiniportAttributes e definir GeneralAttributes na estrutura NDIS_MINIPORT_ADAPTER_ATTRIBUTES se retornar NDIS_STATUS_SUCCESS.
Se MiniportInitializeEx falhou, MiniportInitializeEx deverá liberar todos os recursos alocados antes de retornar e o adaptador retornar ao estado Parado.
Tópicos relacionados
Interrompendo um adaptador de miniporte
Estados e operações do adaptador miniport