Freigeben über


NdisMFreeSharedMemory-Funktion (ndis.h)

NdisMFreeSharedMemory gibt Arbeitsspeicher frei, der zuvor von NdisMAllocateSharedMemory zugewiesen wurde oder NdisMAllocateSharedMemoryAsyncEx vom Treiber einer DMA NIC.

Syntax

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

Parameter

[in] MiniportAdapterHandle

Gibt das Handle an, das ursprünglich für MiniportInitializeEx-eingegeben wurde.

[in] Length

Gibt die Anzahl der ursprünglich zugewiesenen Bytes an.

[in] Cached

Gibt TRUE- an, wenn die ursprüngliche Zuordnung zwischengespeichert werden kann.

[in] VirtualAddress

Gibt die virtuelle Basisadresse an, die von NdisMAllocateSharedMemory oder NdisMAllocateSharedMemoryAsyncExzurückgegeben wird.

[in] PhysicalAddress

Gibt die entsprechende physische Adresse an, die von NdisMAllocateSharedMemory oder NdisMAllocateSharedMemoryAsyncExzurückgegeben wird.

Rückgabewert

Nichts

Bemerkungen

Wenn es bereits einen erfolgreichen Aufruf von NdisMAllocateSharedMemory oder NdisMAllocateSharedMemoryAsyncExruft der Miniporttreiber eines DMA-Geräts NdisMFreeSharedMemory auf, wenn eine der folgenden Aktionen auftritt:

  • Die MiniportInitializeEx-Funktion kann die NIC nicht initialisieren. Daher muss diese Funktion alle vorhandenen Ansprüche für hardwareressourcen für diese NIC freigeben, bevor sie die Steuerung zurückgibt.
  • Die NIC, für die der Miniporttreiber den Speicher zugewiesen hat, wird entfernt.
  • Der Treiber wird entladen, unabhängig davon, ob das System heruntergefahren wird oder weil der Benutzer die im Computer verwendeten Netzwerkkomponenten neu konfiguriert hat.
  • Der Treiber hat zusätzlichen gemeinsam genutzten Speicher mit NdisMAllocateSharedMemoryAsyncEx zugewiesen, als die E/A-Nachfrage auf einer NIC hoch war, der Netzwerkdatenverkehr wurde jedoch auf eine durchschnittliche Ebene abgesubt.
Ein Miniporttreiber kann NdisMFreeSharedMemory- nicht aufrufen, um eine Unterrange innerhalb eines zugewiesenen freigegebenen Speicherbereichs freizugeben. Die parameter, die an NdisMFreeSharedMemory übergeben wurden, müssen genau mit denen übereinstimmen, die an NdisMAllocateSharedMemory oder NdisMAllocateSharedMemoryAsyncExübergeben wurden.

NdisMFreeSharedMemory kann nicht von einer MiniportShutdownEx--Funktion aufgerufen werden.

Microsoft Windows Server 2003, Windows XP Service Pack 1 und höhere Versionen von Windows ermöglichen sowohl Busmaster-DMA-NICs als auch untergeordnete DMA-NICs, NdisMFreeSharedMemoryaufzurufen. Frühere Versionen ermöglichen es nur Busmaster-DMA-NICs, NdisMFreeSharedMemoryaufzurufen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisMFreeSharedMemory (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisMFreeSharedMemory (NDIS 5.1)) in Windows XP.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_Miniport_Driver_Function(ndis), NdisMFreeSharedMemory(ndis)

Siehe auch

MiniportHaltEx

MiniportInitializeEx-

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx