NdisAllocateSharedMemory-Funktion (ndis.h)

Die NdisAllocateSharedMemory-Funktion ordnet freigegebenen Arbeitsspeicher von einem Anbieter für gemeinsam genutzten Speicher zu.

Syntax

NDIS_STATUS NdisAllocateSharedMemory(
  [in]      NDIS_HANDLE                    NdisHandle,
  [in]      PNDIS_SHARED_MEMORY_PARAMETERS SharedMemoryParameters,
  [in, out] PNDIS_HANDLE                   pAllocationHandle
);

Parameter

[in] NdisHandle

Ein NDIS-Treiber oder instance Handle, das während der Initialisierung des Aufrufers abgerufen wurde. Ein Miniporttreiber kann beispielsweise das NDIS-Handle verwenden, das er von der NdisMRegisterMiniportDriver oder MiniportInitializeEx-Funktion . Andere NDIS-Treiber können die Handles aus den folgenden Funktionen verwenden:

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

Ein Zeiger auf eine NDIS_SHARED_MEMORY_PARAMETERS Struktur, die die angeforderten Attribute für den freigegebenen Arbeitsspeicher definiert.

[in, out] pAllocationHandle

Ein Zeiger auf einen Speicherort für ein Handle, das den zugeordneten freigegebenen Arbeitsspeicher identifiziert. Das Handle ist verfügbar, wenn die Funktion zurückgibt, oder es ist NULL , wenn die Funktion fehlschlägt. Der Aufrufer muss dieses Handle verwenden, um den freigegebenen Speicher freizugeben, der erfolgreich zugewiesen wurde.

Rückgabewert

NdisAllocateSharedMemory kann die folgenden status-Werte zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
NDIS_STATUS_RESOURCES
Der Vorgang ist fehlgeschlagen, weil nicht genügend Ressourcen zum Abschließen des Vorgangs vorhanden waren.
NDIS_STATUS_INVALID_PARAMETER
Der Vorgang ist aufgrund eines ungültigen Eingabeparameters fehlgeschlagen.
NDIS_STATUS_FAILURE
Der Vorgang ist aus nicht angegebenen Gründen fehlgeschlagen.

Hinweise

Hinweis Ein Miniporttreiber muss bereits NdisMRegisterScatterGatherDma oder NdisMRegisterDmaChannel aufgerufen haben, um vor dem Aufrufen von NdisAllocateSharedMemory einen Punkt/Gather-DMA-Kanal zu initialisieren.
 
NDIS-Treiber rufen die NdisAllocateSharedMemory-Funktion auf, um einen Block gemeinsam genutzten Arbeitsspeicher eines NDIS-Anbieters mit freigegebenem Arbeitsspeicher zuzuweisen.

Der Parameter SharedMemoryParameters enthält einen Zeiger auf eine NDIS_SHARED_MEMORY_PARAMETERS Struktur, die die angeforderten Attribute für den freigegebenen Arbeitsspeicher definiert. Wenn das flag NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS im Flags-Element nicht festgelegt ist, kann freigegebener Arbeitsspeicher in einer Punktsammlungsliste angegeben werden, die im nicht zusammenhängenden Speicher enthalten ist.

NDIS ruft die NetAllocateSharedMemory-Funktion eines Anbieters für gemeinsam genutzten Speicher aus dem Kontext des Aufrufs von NdisAllocateSharedMemory auf.

Der Treiber muss die NdisFreeSharedMemory-Funktion aufrufen, um den freigegebenen Speicher freizugeben, den er mit NdisAllocateSharedMemory belegt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.20 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory