Partager via


NdisMFreePort, fonction (ndis.h)

La fonction NdisMFreePort libère un port NDIS précédemment alloué avec la fonction NdisMAllocatePort .

Syntaxe

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

Paramètres

NdisMiniportHandle

La poignée de l’adaptateur miniport que NDIS a passée au paramètre MiniportAdapterHandle du Fonction MiniportInitializeEx .

[in] PortNumber

Numéro du port NDIS que NDIS doit libérer. La valeur PortNumber est une valeur NDIS_PORT_NUMBER, qui a un type de données ULONG. NDIS a fourni le numéro de port dans le membre PortNumber du NDIS_PORT_CHARACTERISTICS structure lorsque le pilote miniport a appelé la fonction NdisMAllocatePort .

Le numéro de port peut être compris entre 1 et 0xffffff. Vous ne pouvez pas définir PortNumber sur zéro, ce qui indique le port par défaut.

Valeur retournée

NdisMFreePort peut retourner l’une des valeurs suivantes :

Code de retour Description
NDIS_STATUS_SUCCESS
NDIS a libéré les ressources pour le port.
NDIS_STATUS_INVALID_PORT
NDIS n’a pas pu libérer les ressources du port, car le numéro de port n’était pas valide.
NDIS_STATUS_INVALID_PORT_STATE
NDIS n’a pas pu libérer les ressources du port, car le port était dans un état où l’opération gratuite n’est pas valide. Pour libérer le port, le port doit être à l’état alloué.
NDIS_STATUS_INVALID_DATA
Le numéro de port fourni au paramètre PortNumber n’était pas valide.

Remarques

Si un pilote miniport a alloué un port en appelant la fonction NdisMAllocatePort , le pilote doit libérer le port avant qu’il ne retourne à partir de sa fonction MiniportHaltEx . Si le pilote miniport a activé le port en émettant un événement NetEventPortActivation Plug-and-Play (PnP), le pilote doit émettre un événement PnP NetEventPortDeactivation pour le port avant de libérer le port.

Lorsqu’un pilote miniport appelle NdisMFreePort pour libérer un port, NDIS libère également le numéro de port attribué au port libéré afin que NDIS puisse réutiliser le numéro de port.

Le pilote miniport ne doit pas tenter de libérer le port par défaut.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_Miniport_Driver_Function(ndis)

Voir aussi

Port NDIS par défaut

Libération d’un port NDIS

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort