Liberando uma porta NDIS
O driver de miniporta deve liberar todas as portas NDIS alocadas para adaptadores de miniporta em sua função MiniportInitializeEx . Ele pode liberar uma porta a qualquer momento chamando NdisMFreePort, exceto para os dois casos observados abaixo.
O driver de miniporta deve liberar todas as portas alocadas nesses casos:
- Se a função MiniportInitializeEx do driver falhar, ela deverá liberar todas as portas alocadas.
- Se um adaptador de miniporta for interrompido, a função MiniportHaltEx do driver deverá liberar todas as portas alocadas.
O driver de miniporta não pode simplesmente chamar NdisMFreePort nestes casos:
- Se a porta for a porta padrão, o NDIS a liberará automaticamente, portanto, o driver de miniporta não deverá liberá-la. Se você tentar liberar a porta padrão, NdisMFreePort retornará um erro de NDIS_STATUS_INVALID_PORT.
- Se a porta estiver ativa, o driver de miniporte precisará desativá-la antes de chamar NdisMFreePort.