NDK_SGE struttura (ndkpi.h)

La struttura NDK_SGE specifica i buffer locali per le richieste di lavoro NDK.

Sintassi

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

Members

VirtualAddress

Indirizzo virtuale.

LogicalAddress

Indirizzo logico.

Length

Lunghezza, in byte, del buffer.

MemoryRegionToken

Token dell'area di memoria. Quando MemoryRegionToken è impostato sul token restituito da NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN), il NDK_SGE deve contenere un oggetto LogicalAddress. Quando MemoryRegionToken non è uguale al token restituito da NdkGetPrivilegedMemoryRegionToken, la struttura NDK_SGE deve contenere un oggetto VirtualAddress. Quando una struttura NDK_SGE viene usata in una richiesta di lavoro con il flag di NDK_OP_FLAG_INLINE , MemoryRegionToken potrebbe non essere valida. Per altre informazioni su MemoryRegionToken, vedere la sezione osservazioni.

Commenti

La struttura NDK_SGE specifica i buffer locali per le richieste di lavoro di invio, ricezione, lettura e scrittura.

Quando il membro MemoryRegionToken è impostato sul token restituito dalla funzione NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN), l'NDK_SGE deve contenere un indirizzo logico restituito dalla funzione NdkBuildLam (NDK_FN_BUILD_LAM) con la struttura NDK_LOGICAL_ADDRESS_MAPPING. Si noti che le voci consecutive nel membro AdapterPageArray di un NDK_LOGICAL_ADDRESS_MAPPING non sono necessariamente pagine contigue nello spazio indirizzi logico dell'adapter. Pertanto, un consumer NDK può usare più sges per coprire tutte le pagine in una matrice di pagine dell'adattatore.

Quando il token nel membro MemoryRegionToken non è uguale al token restituito da NdkGetPrivilegedMemoryRegionToken, la struttura NDK_SGE deve contenere un indirizzo virtuale che rientra nell'intervallo di indirizzi virtuali di un'area di memoria registrata in precedenza.

Quando una struttura NDK_SGE viene usata in una richiesta di lavoro con il flag NDK_OP_FLAG_INLINE , il token in MemoryRegionToken potrebbe non essere valido, pertanto deve essere ignorato dal provider NDK. Quando viene specificato il flag NDK_OP_FLAG_INLINE , il membro VirtualAddress di qualsiasi struttura NDK_SGE passata alla funzione richiesta di lavoro deve puntare a un buffer a cui è possibile accedere dal provider NDK in un irQL minore o uguale a DISPATCH_LEVEL, ovvero il buffer deve essere residente nella memoria fisica finché non viene restituita la funzione di richiesta di lavoro. Le dimensioni totali dei dati inline passati al provider in una singola chiamata non devono superare il valore nel parametro InlineDataSize specificato quando è stata creata la coppia di code .

Requisiti

Requisito Valore
Client minimo supportato Nessuna supportata, supportata in NDIS 6.30 e versioni successive.
Server minimo supportato Windows Server 2012
Intestazione ndkpi.h (include Ndkpi.h)

Vedi anche

Requisiti di durata dell'oggetto ND KPI

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