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) |