Freigeben über


NdisFreeMemory-Funktion (ndis.h)

Die NdisFreeMemory Funktion gibt einen Speicherblock frei, der zuvor der NdisAllocateMemoryWithTagPriority Funktion zugeordnet war.

Syntax

void NdisFreeMemory(
  [in] PVOID VirtualAddress,
  [in] UINT  Length,
  [in] UINT  MemoryFlags
);

Parameter

[in] VirtualAddress

Ein Zeiger auf die virtuelle Basisadresse des zugewiesenen Speichers. Diese Adresse wurde von der funktion NdisAllocateMemoryWithTagPriority zurückgegeben.

[in] Length

Die Größe des zu veröffentlichenden Speicherblocks in Bytes. Wenn der Speicher mit NdisAllocateMemoryWithTagPriority- zugewiesen wurde oder der MemoryFlags Parameter null ist, wird dieser Parameter ignoriert.

[in] MemoryFlags

Eine Reihe von Flags, die den freizugebenden Speichertyp angeben. Dieser Wert muss null sein, wenn der Speicher mit NdisAllocateMemoryWithTagPriorityzugewiesen wurde. Mit NDIS 6.0 und höheren Versionen wird die NdisAllocateMemoryWithTagPriority immer verwendet, um Speicher zuzuweisen.

Rückgabewert

Nichts

Bemerkungen

Da nicht zwischengespeicherter Speicher und zusammenhängender Speicher selten freigegeben werden, bis der zugeordnete Miniporttreiber entladen wird, wird ein Aufrufer NdisFreeMemory in der Regel bei IRQL = PASSIVE_LEVEL für diese Arten von Deallocations ausgeführt. In jedem Fall:

  • Beim Freigeben zusammenhängender Speicher muss ein Aufrufer NdisFreeMemory- unter IRQL = PASSIVE_LEVEL ausgeführt werden.
  • Beim Freigeben von nicht zwischengespeichertem Speicher muss ein Aufrufer von NdisFreeMemory- unter IRQL-< DISPATCH_LEVEL ausgeführt werden.
  • Beim Freigeben von Arbeitsspeicher, der weder zusammenhängend noch nicht zwischengespeichert ist, muss ein Aufrufer von NdisFreeMemory- unter IRQL <= DISPATCH_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisFreeMemory (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisFreeMemory (NDIS 5.1)) in Windows XP.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- Siehe Abschnitt "Hinweise"
DDI-Complianceregeln Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

Siehe auch

MiniportHaltEx

NdisAllocateMemoryWithTagPriority