Partager via


NdisMFreeSharedMemory, fonction (ndis.h)

NdisMFreeSharedMemory libère la mémoire précédemment allouée par NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx par le pilote d’une carte réseau DMA.

Syntaxe

void NdisMFreeSharedMemory(
  [in] NDIS_HANDLE           MiniportAdapterHandle,
  [in] ULONG                 Length,
  [in] BOOLEAN               Cached,
  [in] PVOID                 VirtualAddress,
  [in] NDIS_PHYSICAL_ADDRESS PhysicalAddress
);

Paramètres

[in] MiniportAdapterHandle

Spécifie le handle entré à l’origine dans MiniportInitializeEx.

[in] Length

Spécifie le nombre d’octets alloués à l’origine.

[in] Cached

Spécifie TRUE si l’allocation d’origine peut être mise en cache.

[in] VirtualAddress

Spécifie l’adresse virtuelle de base retournée par NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx.

[in] PhysicalAddress

Spécifie l’adresse physique correspondante retournée par NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx.

Valeur de retour

None

Remarques

S’il a déjà effectué un appel réussi à NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx, le pilote miniport d’un appareil DMA appelle NdisMFreeSharedMemory si l’une des opérations suivantes se produit :

  • Sa fonction MiniportInitializeEx ne pouvant pas initialiser la carte réseau, cette fonction doit libérer toutes les revendications existantes sur les ressources matérielles pour cette carte réseau avant qu’elle ne retourne le contrôle.
  • La carte réseau pour laquelle le pilote miniport a alloué la mémoire est supprimée.
  • Le pilote est en cours de déchargement, que ce soit parce que le système s’arrête ou parce que l’utilisateur a reconfiguré les composants réseau utilisés sur la machine.
  • Le pilote a alloué de la mémoire partagée supplémentaire avec NdisMAllocateSharedMemoryAsyncEx lorsque la demande d’E/S sur une carte réseau était élevée, mais que le trafic réseau est maintenant passé à un niveau moyen.
Un pilote miniport ne peut pas appeler NdisMFreeSharedMemory pour libérer une sous-plage de mémoire partagée allouée. Les paramètres passés à NdisMFreeSharedMemory doivent correspondre exactement à ceux qui ont été passés à NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx.

NdisMFreeSharedMemory ne peut pas être appelé à partir d’une fonction MiniportShutdownEx .

Microsoft Windows Server 2003, Windows XP Service Pack 1 et versions ultérieures de Windows autorisent les cartes réseau DMA master bus et les cartes réseau DMA subordonnées à appeler NdisMFreeSharedMemory. Les versions antérieures autorisent uniquement les cartes réseau DMA master bus à appeler NdisMFreeSharedMemory.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisMFreeSharedMemory (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisMFreeSharedMemory (NDIS 5.1)) dans Windows XP.
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),NdisMFreeSharedMemory(ndis)

Voir aussi

MiniportHaltEx

MiniportInitializeEx

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx