NdisFreeMemory-Funktion (ndis.h)
Die NdisFreeMemory-Funktion gibt einen Speicherblock frei, der zuvor der Funktion NdisAllocateMemoryWithTagPriority zugeordnet wurde.
Syntax
void NdisFreeMemory(
[in] PVOID VirtualAddress,
[in] UINT Length,
[in] UINT MemoryFlags
);
Parameter
[in] VirtualAddress
Ein Zeiger auf die virtuelle Basisadresse des zugeordneten Arbeitsspeichers. Diese Adresse wurde von der Funktion NdisAllocateMemoryWithTagPriority zurückgegeben.
[in] Length
Die Größe des Speicherblocks, der freigegeben werden soll, in Bytes. Wenn der Arbeitsspeicher NdisAllocateMemoryWithTagPriority zugewiesen wurde oder der MemoryFlags-Parameter 0 ist, wird dieser Parameter ignoriert.
[in] MemoryFlags
Eine Reihe von Flags, die den Typ des freizugebenden Arbeitsspeichers angeben. Dieser Wert muss 0 sein, wenn der Arbeitsspeicher mit NdisAllocateMemoryWithTagPriority zugeordnet wurde. Bei NDIS 6.0 und höheren Versionen wird NdisAllocateMemoryWithTagPriority immer verwendet, um Arbeitsspeicher zuzuweisen.
Rückgabewert
Keine
Bemerkungen
Da nicht zwischengespeicherter Arbeitsspeicher und zusammenhängender Arbeitsspeicher selten freigegeben werden, bis der zuzuordnende Miniporttreiber entladen wird, wird ein Aufrufer von NdisFreeMemory normalerweise bei IRQL = PASSIVE_LEVEL für diese Arten von Deallocations ausgeführt. In jedem Fall:
- Beim Freigeben von zusammenhängendem Arbeitsspeicher muss ein Aufrufer von NdisFreeMemory unter IRQL = PASSIVE_LEVEL ausgeführt werden.
- Beim Freigeben von nicht zwischengespeichertem Arbeitsspeicher muss ein Aufrufer von NdisFreeMemory bei 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 |
---|---|
Unterstützte Mindestversion (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 | Universell |
Header | ndis.h (einschließlich Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | Siehe Abschnitt "Hinweise" |
DDI-Complianceregeln | Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis) |