Partager via


NdisMFreeSharedMemory, fonction (ndis.h)

NdisMFreeSharedMemory libère de 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 l’entrée de handle à l’origine pour MiniportInitializeEx.

[in] Length

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

[in] Cached

Spécifie TRUE si l’allocation d’origine était 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

Aucun

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 n’est pas en mesure d’initialiser la carte réseau. Cette fonction doit donc libérer toutes les revendications existantes sur les ressources matérielles de cette carte réseau avant de retourner le contrôle.
  • Carte réseau pour laquelle le pilote miniport a alloué la mémoire est supprimée.
  • Le pilote est déchargé, que ce soit parce que le système s’arrête ou que l’utilisateur reconfigure les composants réseau utilisés dans l’ordinateur.
  • Le pilote a alloué une 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 désormais réaffecté à un niveau moyen.
Un pilote miniport ne peut pas appeler NdisMFreeSharedMemory pour libérer une sous-plage dans une plage de mémoire partagée allouée. Les paramètres passés à NdisMFreeSharedMemory doivent correspondre exactement à ceux 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 permettent aux cartes réseau DMA master bus et aux cartes réseau DMA subordonnées d’appeler NdisMFreeSharedMemory. Les versions antérieures autorisent uniquement les cartes réseau DMA de bus master à appeler NdisMFreeSharedMemory.

Exigences

Exigence Valeur
client minimum 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 Universel
d’en-tête ndis.h (include 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