NDK_ADAPTER_INFO-Struktur (ndkinfo.h)

Die NDK_ADAPTER_INFO-Struktur gibt Informationen zu Grenzwerten und Funktionen eines NDK-Adapters an.

Syntax

typedef struct _NDK_ADAPTER_INFO {
  NDK_VERSION         Version;
  UINT32              VendorId;
  UINT32              DeviceId;
  SIZE_T              MaxRegistrationSize;
  SIZE_T              MaxWindowSize;
  ULONG               FRMRPageCount;
  ULONG               MaxInitiatorRequestSge;
  ULONG               MaxReceiveRequestSge;
  ULONG               MaxReadRequestSge;
  ULONG               MaxTransferLength;
  ULONG               MaxInlineDataSize;
  ULONG               MaxInboundReadLimit;
  ULONG               MaxOutboundReadLimit;
  ULONG               MaxReceiveQueueDepth;
  ULONG               MaxInitiatorQueueDepth;
  ULONG               MaxSrqDepth;
  ULONG               MaxCqDepth;
  ULONG               LargeRequestThreshold;
  ULONG               MaxCallerData;
  ULONG               MaxCalleeData;
  ULONG               AdapterFlags;
  NDK_RDMA_TECHNOLOGY RdmaTechnology;
} NDK_ADAPTER_INFO;

Members

Version

Die Haupt- und Nebenversionen der NDK-Schnittstelle (NDK_VERSION).

VendorId

Der eindeutige Organisationsbezeichner (OUI) eines Anbieters.

DeviceId

Ein vom Hersteller definierter Gerätebezeichner.

MaxRegistrationSize

Die maximale Größe einer einzelnen Speicherregistrierung in Bytes, die der Adapter adressieren kann.

MaxWindowSize

Die maximale Größe in Bytes für ein einzelnes Speicherfenster.

FRMRPageCount

Die FrMR-Größe (Fast Register Memory Region) (in PAGE_SIZE Seiten), für die der Adapter die größte Anzahl von FRMRs unterstützt. Ein Anbieter muss mindestens 16 FRMR-Seiten unterstützen. Dieser Wert wird in der Regel von oberen Ebenen als FRMR-Größe verwendet, die gleichzeitige FRMR-basierte E/A-Vorgänge optimiert. Daher sollte die Werbung für einen Wert größer als 16 nur erfolgen, wenn die Gesamtzahl der mit dieser Größe unterstützten FRMRs nicht sinnvoll verringert wird.

MaxInitiatorRequestSge

Die maximale Anzahl von Scatter-Gather-Einträgen (SGEs), die in einer einzelnen Anforderung über eine Initiatorwarteschlange angegeben werden kann.

MaxReceiveRequestSge

Die maximale Anzahl von SGEs, die in einer einzelnen Anforderung über eine Empfangswarteschlange angegeben werden kann.

MaxReadRequestSge

Die maximale Anzahl von SGEs, die in einer Leseanforderung angegeben werden kann.

Hinweis Dieser Wert überschreibt den MaxInitiatorRequestSge-Wert für Leseanforderungen.
 

MaxTransferLength

Die maximale Gesamtlänge, auf die alle SGEs in einer einzelnen Sende-, Empfangs-, Lese- oder Schreibanforderung verweisen können.

MaxInlineDataSize

Die maximale Menge an Inlinedaten in Bytes, die in einer einzelnen Sende- oder Schreibanforderung gesendet werden kann.

MaxInboundReadLimit

Die maximale Anzahl von eingehenden Lesevorgängen für jeden QP.

MaxOutboundReadLimit

Die maximale Anzahl von laufenden ausgehenden Lesevorgängen für jeden QP.

MaxReceiveQueueDepth

Die maximale Anzahl ausstehender Anforderungen für jede Empfangswarteschlange.

MaxInitiatorQueueDepth

Die maximale Anzahl ausstehender Anforderungen für jede Initiatorwarteschlange.

MaxSrqDepth

Die maximale Anzahl ausstehender Anforderungen für jede freigegebene Empfangswarteschlange (SRQ). Ein Wert von null bedeutet keine SRQ-Unterstützung.

MaxCqDepth

Die maximale Anzahl von Vervollständigungseinträgen für jede Vervollständigungswarteschlange (CQ).

LargeRequestThreshold

Der Datengrößehinweis in Bytes, ab dem Lese- und Schreibvorgänge bessere Ergebnisse liefern als Sende- und Empfangsvorgänge.

MaxCallerData

Die maximale Größe der privaten Daten in Bytes, die mit einer Verbindungsanforderung gesendet werden können.

MaxCalleeData

Die maximale Größe der privaten Daten in Bytes, die mit einer Annahme- oder Ablehnungsanforderung gesendet werden können.

AdapterFlags

Eine Reihe von Flags, die die Adaptereigenschaften bestimmen. Zu den derzeit definierten Flags gehören:

Wert Bedeutung
NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED
0x00000001
Legen Sie fest, ob der Anbieter eingehende Daten in die Reihenfolge in den Puffer des Consumer schreibt. Das heißt, die letzte Byteposition im Puffer des Consumers wird garantiert nicht vor einer vorherigen Byteposition aktualisiert.
NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED
0x00000002

Legen Sie fest, ob der Anbieter keine speziellen Zugriffsrechte für den Senkenpuffer für eine RDMA-Leseanforderung benötigt. Wenn dieses Flag festgelegt ist, muss der Consumer nicht die NDK_MR_FLAG_RDMA_READ_SINK- oder NDK_OP_FLAG_RDMA_READ_SINK-Flags verwenden, wenn er Senkenpuffer für RDMA-Leseanforderungen registriert. Der Consumer kann auch logische Adresszuordnungen direkt (mit einem Token, das mit der NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN-Funktion abgerufen wird) als RDMA-Lesesenkenpuffer verwenden. Dies ähnelt dem Zugriff auf lokale Puffer für RDMA-Schreib-, Sende- und Empfangsvorgänge.

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004
Legen Sie fest, ob der Anbieter programmgesteuert gesteuerte Interruptmoderation für jede Vervollständigungswarteschlange (CQ) unterstützt. Wenn dieses Flag festgelegt ist, kann ein NDK-Consumer die NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION-Funktion in der NDK_CQ_DISPATCH Tabelle verwenden.
NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008
Legen Sie fest, ob der Anbieter die gleichzeitige Verarbeitung mehrerer Verbindungen mit mehreren Ausführungs-Engines unterstützt. Wenn dieses Flag festgelegt ist, bietet ein NDK-Consumer, der mehrere Verbindungen gleichzeitig für den Adapter verwendet, möglicherweise eine bessere Leistung als eine einzelne Verbindung.
NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010
Legen Sie fest, ob der Anbieter die Ungültigkeit des lokalen Tokens unterstützt, das im ersten NDK_SGE beim Abschluss der Leseanforderung an eine NdkRead-Funktion (NDK_FN_READ) übergeben wird.

Hinweis Dieser Wert wird nur in NDKPI 1.2 (Windows Server 2012 R2) und höher unterstützt.

NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED
0x00000100
Legen Sie fest, ob der Anbieter die Größenänderung von CQ-Objekten unterstützt. Wenn dieses Flag nicht festgelegt ist, darf der Consumer keine CQ-Größe ändern.
NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED
0x00010000
Legen Sie fest, ob der Anbieter Loopbackverbindungen unterstützt. Das heißt, ein Loopback von einer lokalen Netzwerkadresse auf einer bestimmten RNIC an dieselbe lokale Adresse auf derselben RNIC.

RdmaTechnology

Hinweise

Die NDK_FN_QUERY_ADAPTER_INFO-Funktion ruft die NDK_ADAPTER_INFO ab, die Informationen zu verschiedenen Grenzwerten und Funktionen des Adapters enthält.

Anforderungen

   
Unterstützte Mindestversion (Client) Keine unterstützt, wird in NDIS 6.30 und höher unterstützt.
Unterstützte Mindestversion (Server) Windows Server 2012
Kopfzeile ndkinfo.h (include Ndkpi.h)

Weitere Informationen

NDK_CQ_DISPATCH

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION

NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN

NDK_VERSION