Liberar un puerto NDIS
El controlador de minipuerto debe liberar todos los puertos NDIS que asigne para los adaptadores de miniporte en su función MiniportInitializeEx . Puede liberar un puerto en cualquier momento llamando a NdisMFreePort, excepto en los dos casos indicados a continuación.
El controlador de minipuerto debe liberar todos los puertos asignados en estos casos:
- Si se produce un error en la función MiniportInitializeEx del controlador, debe liberar todos los puertos asignados.
- Si se detiene un adaptador de minipuerto, la función MiniportHaltEx del controlador debe liberar todos los puertos asignados.
El controlador de minipuerto no puede simplemente llamar a NdisMFreePort en estos casos:
- Si el puerto es el puerto predeterminado, NDIS lo libera automáticamente, por lo que el controlador de miniporte no debe liberarlo. Si intenta liberar el puerto predeterminado, NdisMFreePort devuelve un error de NDIS_STATUS_INVALID_PORT.
- Si el puerto está activo, el controlador de minipuerto deberá desactivarlo antes de llamar a NdisMFreePort.