Compartir a través de


Función NdisMFreePort (ndis.h)

La función NdisMFreePort libera un puerto NDIS que se asignó anteriormente con la función NdisMAllocatePort .

Sintaxis

NDIS_STATUS NdisMFreePort(
       NDIS_HANDLE      NdisMiniportHandle,
  [in] NDIS_PORT_NUMBER PortNumber
);

Parámetros

NdisMiniportHandle

Identificador del adaptador de minipuerto que NDIS pasó al parámetro MiniportAdapterHandle del Función MiniportInitializeEx .

[in] PortNumber

Número del puerto NDIS que NDIS debe liberar. El valor PortNumber es un valor de NDIS_PORT_NUMBER, que tiene un tipo de datos ULONG. NDIS proporcionó el número de puerto en el miembro PortNumber del NDIS_PORT_CHARACTERISTICS estructura cuando el controlador de minipuerto llamó a la función NdisMAllocatePort .

El número de puerto puede ser un número comprendido entre 1 y 0xffffff. No se puede establecer PortNumber en cero, lo que indica el puerto predeterminado.

Valor devuelto

NdisMFreePort puede devolver uno de los siguientes valores:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NDIS liberó correctamente los recursos para el puerto.
NDIS_STATUS_INVALID_PORT
NDIS no pudo liberar los recursos del puerto porque el número de puerto no era válido.
NDIS_STATUS_INVALID_PORT_STATE
NDIS no pudo liberar los recursos del puerto porque el puerto estaba en un estado en el que la operación libre no es válida. Para liberar el puerto, el puerto debe estar en el estado asignado.
NDIS_STATUS_INVALID_DATA
El número de puerto que se proporcionó en el parámetro PortNumber no era válido.

Comentarios

Si un controlador de minipuerto ha asignado un puerto mediante una llamada a la función NdisMAllocatePort , el controlador debe liberar el puerto antes de que vuelva de su función MiniportHaltEx . Si el controlador de minipuerto activó el puerto mediante la emisión de un evento NetEventPortActivation Plug and Play (PnP), el controlador debe emitir un evento PnP netEventPortDeactivation para el puerto antes de liberar el puerto.

Cuando un controlador de minipuerto llama a NdisMFreePort para liberar un puerto, NDIS también libera el número de puerto asignado al puerto liberado para que NDIS pueda reutilizar el número de puerto.

El controlador de minipuerto no debe intentar liberar el puerto predeterminado.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Miniport_Driver_Function(ndis)

Consulte también

Puerto NDIS predeterminado

Liberar un puerto NDIS

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort