struttura NDK_ADAPTER_INFO (ndkinfo.h)

La struttura NDK_ADAPTER_INFO specifica informazioni sui limiti e sulle funzionalità di una scheda NDK.

Sintassi

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

Le versioni principali e secondarie dell'interfaccia NDK (NDK_VERSION).

VendorId

Identificatore univoco dell'organizzazione (OUI) di un fornitore.

DeviceId

Identificatore del dispositivo definito dal fornitore.

MaxRegistrationSize

Dimensioni massime, in byte, di una singola registrazione di memoria che l'adattatore può gestire.

MaxWindowSize

Dimensione massima, in byte, per una singola finestra di memoria.

FRMRPageCount

Dimensioni dell'area di memoria con registrazione rapida (FRMR) (in PAGE_SIZE pagine) per cui l'adattatore supporta il maggior numero di richieste pull. Un provider deve supportare almeno 16 pagine FRMR. Questo valore viene in genere usato dai livelli superiori come dimensione FRMR che ottimizza le operazioni di I/O basate su FRMR simultanee. Di conseguenza, la pubblicità di un valore maggiore di 16 deve essere eseguita solo se il numero totale di richieste pull supportate con tale dimensione non è significativamente ridotto di conseguenza.

MaxInitiatorRequestSge

Numero massimo di voci di raccolta a dispersione (SGEs) che possono essere specificate in una singola richiesta su una coda iniziatore.

MaxReceiveRequestSge

Numero massimo di sges che è possibile specificare in una singola richiesta in una coda di ricezione.

MaxReadRequestSge

Numero massimo di sges che è possibile specificare in una richiesta di lettura.

Nota Questo valore sostituisce il valore MaxInitiatorRequestSge per le richieste di lettura.
 

MaxTransferLength

Lunghezza totale massima a cui è possibile fare riferimento da tutti gli SGEs in un'unica richiesta di invio, ricezione, lettura o scrittura.

MaxInlineDataSize

Quantità massima di dati inline, in byte, che può essere inviata in una singola richiesta di invio o scrittura.

MaxInboundReadLimit

Numero massimo di operazioni di lettura in ingresso in corso per ogni QP.

MaxOutboundReadLimit

Numero massimo di operazioni di lettura in uscita in corso per ogni QP.

MaxReceiveQueueDepth

Numero massimo di richieste in sospeso per ogni coda di ricezione.

MaxInitiatorQueueDepth

Numero massimo di richieste in sospeso per ogni coda iniziatore.

MaxSrqDepth

Numero massimo di richieste in sospeso per ogni coda di ricezione condivisa (SRQ). Un valore pari a zero indica che non è supportato SRQ.

MaxCqDepth

Numero massimo di voci di completamento per ogni coda di completamento (CQ).

LargeRequestThreshold

L'hint per le dimensioni dei dati, in byte, sopra il quale le operazioni di lettura e scrittura produrranno risultati migliori rispetto alle operazioni di invio e ricezione.

MaxCallerData

Dimensioni massime, in byte, dei dati privati che possono essere inviati con una richiesta di connessione.

MaxCalleeData

Dimensione massima, in byte, dei dati privati che possono essere inviati con una richiesta di accettazione o rifiuto.

AdapterFlags

Set di flag che determinano le proprietà dell'adattatore. I flag attualmente definiti includono:

Valore Significato
NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED
0x00000001
Impostare se il provider scrive i dati in ingresso nel buffer del consumer in ordine. Vale a dire, l'ultima posizione di byte nel buffer del consumer non deve essere aggiornata prima di qualsiasi posizione di byte precedente.
NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED
0x00000002

Impostare se il provider non richiede diritti di accesso speciali nel buffer sink per una richiesta di lettura RDMA. Quando questo flag è impostato, il consumer non deve usare i flag NDK_MR_FLAG_RDMA_READ_SINK o NDK_OP_FLAG_RDMA_READ_SINK quando registra i buffer sink per le richieste di lettura RDMA. Il consumer può anche usare direttamente i mapping di indirizzi logici (con un token ottenuto con la funzione NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN ) come buffer sink di lettura RDMA. Questo è simile all'accesso ai buffer locali per le operazioni di scrittura, invio e ricezione RDMA.

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004
Impostare se il provider supporta la moderazione degli interrupt controllata a livello di codice per ogni coda di completamento (CQ). Quando questo flag è impostato, un consumer NDK può usare la funzione NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION nella tabella NDK_CQ_DISPATCH .
NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008
Impostare se il provider supporta l'elaborazione simultanea di più connessioni con più motori di esecuzione. Se questo flag è impostato, un consumer NDK che usa più di una connessione simultaneamente nella scheda potrebbe offrire prestazioni migliori rispetto a una singola connessione.
NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010
Impostare se il provider supporta l'invalidazione del token locale specificato nel primo NDK_SGE passato a una funzione NdkRead (NDK_FN_READ) durante il completamento della richiesta di lettura.

Nota Questo valore è supportato solo in NDKPI 1.2 (Windows Server 2012 R2) e versioni successive.

NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED
0x00000100
Impostare se il provider supporta il ridimensionamento degli oggetti CQ. Se questo flag non è impostato, il consumer non deve tentare un ridimensionamento CQ.
NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED
0x00010000
Impostare se il provider supporta le connessioni loopback. Ovvero, loopback da un indirizzo di rete locale in una scheda di interfaccia di rete specifica allo stesso indirizzo locale nella stessa scheda di interfaccia di rete.

RdmaTechnology

Commenti

La funzione NDK_FN_QUERY_ADAPTER_INFO recupera il NDK_ADAPTER_INFO, che contiene informazioni su vari limiti e funzionalità dell'adattatore.

Requisiti

   
Client minimo supportato None supported,Supported in NDIS 6.30 and later.
Server minimo supportato Windows Server 2012
Intestazione ndkinfo.h (include Ndkpi.h)

Vedi anche

NDK_CQ_DISPATCH

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION

NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN

NDK_VERSION