Freigeben über


NDIS_SHARED_MEMORY_PARAMETERS-Struktur (ndis.h)

Die NDIS_SHARED_MEMORY_PARAMETERS-Struktur gibt die Shared Memory-Parameter für eine Anforderung zur Zuweisung gemeinsam genutzten Arbeitsspeichers an.

Syntax

typedef struct _NDIS_SHARED_MEMORY_PARAMETERS {
  NDIS_OBJECT_HEADER       Header;
  ULONG                    Flags;
  NDIS_RECEIVE_QUEUE_ID    QueueId;
  NDIS_HANDLE              SharedMemoryHandle;
  NODE_REQUIREMENT         PreferredNode;
  NDIS_SHARED_MEMORY_USAGE Usage;
  ULONG                    Length;
  PVOID                    VirtualAddress;
  ULONG                    SGListBufferLength;
  PSCATTER_GATHER_LIST     SGListBuffer;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
} NDIS_SHARED_MEMORY_PARAMETERS, *PNDIS_SHARED_MEMORY_PARAMETERS;

Member

Header

Typ, Revision und Größe der NDIS_SHARED_MEMORY_PARAMETERS-Struktur. Dieser Member ist als NDIS_OBJECT_HEADER-Struktur formatiert.

Der Miniporttreiber muss das Type-Element von Header auf NDIS_OBJECT_TYPE_DEFAULT festlegen. Um die Version der NDIS_SHARED_MEMORY_PARAMETERS-Struktur anzugeben, muss der Treiber den Revisionsmember von Header auf einen der folgenden Werte festlegen:

NDIS_SHARED_MEMORY_PARAMETERS_REVISION_2

VPortId für NDIS 6.30 hinzugefügt.

Legen Sie das Element Größe auf NDIS_SIZEOF_SHARED_MEMORY_PARAMETERS_REVISION_2 fest.

NDIS_SHARED_MEMORY_PARAMETERS_REVISION_1

Originalversion für NDIS 6.20.

Legen Sie das Element Größe auf NDIS_SIZEOF_SHARED_MEMORY_PARAMETERS_REVISION_1 fest.

Flags

Ein UCHAR-Wert, der ein bitweises OR des folgenden Werts enthält:

NDIS_SHARED_MEM_PARAMETERS_CONTIGOUS

Der freigegebene Speicher befindet sich in einem zusammenhängenden Speicherblock.

QueueId

Ein NDIS_RECEIVE_QUEUE_ID Wert, der eine VM-Warteschlange (VMQ) oder eine Single Root-E/A-Virtualisierung (SR-IOV) enthält. Dieser Bezeichner ist eine ganze Zahl zwischen null und der Anzahl von Warteschlangen, die der Miniportadapter unterstützt. Der Wert NDIS_DEFAULT_RECEIVE_QUEUE_ID gibt die Standard-Empfangswarteschlange an.

Hinweis Ab Windows Server 2012 unterstützt die SR-IOV-Schnittstelle nur die Standardmäßige Empfangswarteschlange sowohl an standardmäßigen als auch an nicht standardmäßigen virtuellen Ports (VPorts). Miniporttreiber, die die SR-IOV-Schnittstelle unterstützen, müssen das QueueId-Element auf NDIS_DEFAULT_RECEIVE_QUEUE_ID festlegen.
 

SharedMemoryHandle

Ein NDIS_HANDLE Wert, der einen Block des gemeinsam genutzten Arbeitsspeichers identifiziert. NDIS stellt dieses Handle bereit, bevor es von der NdisAllocateSharedMemory-Funktion .

PreferredNode

Ein NODE_REQUIREMENT Wert, der den bevorzugten Knoten angibt, der bei der Zuweisung von Arbeitsspeicher verwendet werden soll. Wenn der Treiber keine Einstellung hat, muss der Wert auf MM_ANY_NODE_OK festgelegt werden.

Usage

Ein NDIS_SHARED_MEMORY_USAGE Enumerationswert, der den Zweck des freigegebenen Arbeitsspeichers angibt.

Length

Ein ULONG-Wert, der die Länge des freigegebenen Speicherblocks in Bytes enthält.

VirtualAddress

Ein PVOID-Wert, der die virtuelle Basisadresse des freigegebenen Speichers enthält. NDIS stellt diesen Wert bereit, bevor er von der NdisAllocateSharedMemory-Funktion zurückgegeben wird.

SGListBufferLength

Ein ULONG-Wert, der die Länge des Punktsammlungslistenpuffers in Bytes enthält.

SGListBuffer

Ein Zeiger auf eine SCATTER_GATHER_LIST-Struktur .

VPortId

Ein NDIS_NIC_SWITCH_VPORT_ID Wert, der einen VPort-Bezeichner (Virtual Port) angibt, dem der freigegebene Arbeitsspeicher zugeordnet werden soll. Dieser Wert muss der Bezeichner eines nicht standardmäßigen VPorts sein, der an die physische Funktion (PF) des Miniportadapters angefügt ist.

Hinweis Miniporttreiber, die die VMQ-Schnittstelle unterstützen, müssen diesen Member auf 0 festlegen. Miniporttreiber, die die SR-IOV-Schnittstelle unterstützen, dürfen diesen Member nicht auf 0 (NDIS_DEFAULT_VPORT_ID) festlegen.
 

Hinweise

Die NDIS_SHARED_MEMORY_PARAMETERS-Struktur gibt die Shared Memory-Parameter für eine Anforderung zur Freigabe von Speicherbelegungen für eine Empfangswarteschlange an.

NDIS-Treiber übergeben diese Struktur an die NdisAllocateSharedMemory-Funktion , und NDIS übergibt diese Struktur an die NetAllocateSharedMemory-Funktion (ALLOCATE_SHARED_MEMORY_HANDLER Einstiegspunkt).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.20 und höher.
Kopfzeile ndis.h (include Ndis.h)

Weitere Informationen

NDIS_OBJECT_HEADER

NDIS_SHARED_MEMORY_USAGE

NdisAllocateSharedMemory

NetAllocateSharedMemory

SCATTER_GATHER_LIST