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.

Alocando portas NDIS

Desativando portas NDIS

Porta NDIS padrão