Freigeben über


NDK_SGE Struktur (ndkpi.h)

Die NDK_SGE-Struktur gibt die lokalen Puffer für NDK-Arbeitsanforderungen an.

Syntax

typedef struct _NDK_SGE {
  union {
    PVOID               VirtualAddress;
    NDK_LOGICAL_ADDRESS LogicalAddress;
  };
  ULONG  Length;
  UINT32 MemoryRegionToken;
} NDK_SGE;

Angehörige

VirtualAddress

Eine virtuelle Adresse.

LogicalAddress

Eine logische Adresse.

Length

Die Länge des Puffers in Bytes.

MemoryRegionToken

Ein Speicherbereichstoken. Wenn MemoryRegionToken auf das von NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN) zurückgegebene Token festgelegt ist, muss die NDK_SGE ein LogicalAddress-enthalten. Wenn MemoryRegionToken- nicht dem von NdkGetPrivilegedMemoryRegionTokenzurückgegebenen Token entspricht, muss die NDK_SGE-Struktur ein VirtualAddress-enthalten. Wenn eine NDK_SGE Struktur in einer Arbeitsanforderung mit dem NDK_OP_FLAG_INLINE-Flag verwendet wird, ist MemoryRegionToken- möglicherweise ungültig. Weitere Informationen zum MemoryRegionToken-finden Sie im Abschnitt "Hinweise".

Bemerkungen

Die NDK_SGE-Struktur gibt die lokalen Puffer für Sende-, Empfangs-, Lese- und Schreibzugriffsanforderungen an.

Wenn der MemoryRegionToken Member auf das von NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN) zurückgegebene Token festgelegt ist, muss die NDK_SGE eine logische Adresse enthalten, die von der NdkBuildLam (NDK_FN_BUILD_LAM) -Funktion mit der NDK_LOGICAL_ADDRESS_MAPPING Struktur zurückgegeben wird. Beachten Sie, dass aufeinander folgende Einträge im AdapterPageArray- Mitglied eines NDK_LOGICAL_ADDRESS_MAPPING nicht unbedingt zusammenhängende Seiten im logischen Adressraum des Adapters sind. Daher kann ein NDK-Verbraucher mehrere SGEs verwenden, um alle Seiten in einem Adapterseitenarray abzudecken.

Wenn das Token im MemoryRegionToken Member nicht dem Token entspricht, das von NdkGetPrivilegedMemoryRegionTokenzurückgegeben wird, muss die NDK_SGE-Struktur eine virtuelle Adresse enthalten, die in die virtuelle Adressspanne eines zuvor registrierten Speicherbereichs fällt.

Wenn eine NDK_SGE Struktur in einer Arbeitsanforderung mit dem NDK_OP_FLAG_INLINE-Flag verwendet wird, ist das Token in MemoryRegionToken möglicherweise ungültig, daher muss sie vom NDK-Anbieter ignoriert werden. Wenn das flag NDK_OP_FLAG_INLINE angegeben wird, muss das VirtualAddress Member einer beliebigen NDK_SGE Struktur, die an die Arbeitsanforderungsfunktion übergeben wird, auf einen Puffer verweisen, auf den der NDK-Anbieter bei einer IRQL unter oder gleich DISPATCH_LEVELkann. Das heißt, der Puffer muss garantiert im physischen Speicher vorhanden sein, bis die Arbeitsanforderungsfunktion zurückgegeben wird. Die Gesamtgröße von Inlinedaten, die in einem einzelnen Aufruf an den Anbieter übergeben werden, darf den Wert im InlineDataSize Parameter, der beim Erstellen des Warteschlangenpaars (QP) angegeben wurde, nicht überschreiten.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Keine unterstützt,in NDIS 6.30 und höher unterstützt.
mindestens unterstützte Server- Windows Server 2012
Header- ndkpi.h (include Ndkpi.h)

Siehe auch

anforderungen für NDKPI-Objektlebensdauer

NDK_FN_BUILD_LAM

NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN

NDK_FN_READ

NDK_FN_RECEIVE

NDK_FN_SEND

NDK_FN_SRQ_RECEIVE

NDK_FN_WRITE

NDK_LOGICAL_ADDRESS_MAPPING