Puerto NDIS predeterminado
El puerto cero está reservado como puerto predeterminado para un adaptador de minipuerto. Si el parámetro PortNumber de cualquier función o el miembro PortNumber de cualquier estructura está establecido en cero, el controlador de minipuerto no asignó ningún puerto o la actividad actual no es específica del puerto.
Para obtener un buen ejemplo del puerto NDIS predeterminado, considere un controlador intermedio MUX de equilibrio de carga y conmutación por error (LBFO). El minipuerto virtual de este tipo de controlador puede ser el puerto cero (el puerto predeterminado). El controlador intermedio puede asignar puertos a los adaptadores de minipuerto subyacentes con los números de puerto comprendidos entre 1 y el número de puertos (N). Un controlador de sobreasignación podría enviar datos al puerto cero para permitir que el controlador LBFO seleccione uno de los puertos subyacentes, o el controlador de sobreasignación podría especificar un número de puerto de 1 a N para elegir un puerto específico para la operación de envío.
Los controladores de minipuerto no tienen que asignar ningún puerto ni admitir ningún número de puerto que no sea el puerto predeterminado. Incluso si un controlador de minipuerto no asigna puertos, NDIS asigna el puerto predeterminado y lo activa después de que el controlador de miniporte llame a la función NdisMSetMiniportAttributes para establecer los atributos de registro en la estructura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Los controladores de minipuerto pueden iniciar operaciones en el puerto predeterminado cuando NdisMSetMiniportAttributes devuelve correctamente. En este caso, NDIS libera el puerto predeterminado cuando el controlador de minipuerto vuelve de la función MiniportHaltEx .