NDK_FN_SEND funzione di callback (ndkpi.h)

La funzione NdkSend (NDK_FN_SEND) invia una richiesta di invio su una coppia di code NDK (QP).

Sintassi

NDK_FN_SEND NdkFnSend;

NTSTATUS NdkFnSend(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           ULONG Flags
)
{...}

Parametri

[in] pNdkQp

Puntatore a un oggetto QP (NDK Queue Pair) (NDK_QP).

[in, optional] RequestContext

Valore di contesto da restituire nel membro RequestContext della struttura NDK_RESULT per questa richiesta.

pSgl

Matrice di strutture SGE (NDK_SGE) che rappresentano i buffer che contengono i dati da inviare.

[in] nSge

Numero di strutture SGE nella matrice specificata nel parametro pSgl .

[in] Flags

OR bit per bit dei flag che specifica le operazioni consentite. Sono supportati i flag seguenti:

Valore Significato
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Indica che il completamento di questa richiesta non genera un evento di completamento nella coda di completamento in uscita. Tuttavia, le richieste che non riescono generano un evento nella coda di completamento.
NDK_OP_FLAG_READ_FENCE
0x00000002
Indica che tutte le richieste di lettura precedenti devono essere completate prima che l'hardware inizi a elaborare questa richiesta.
NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT
0x00000004
Indica che la coda di completamento per il peer genera una notifica. Per altre informazioni sulle NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, vedere la sezione Osservazioni.
NDK_OP_FLAG_INLINE
0x00000040
Indica che la memoria a cui fa riferimento gli SGEs deve essere trasferita inline. Inoltre, il valore MemoryRegionToken nelle voci NDK_SGE potrebbe non essere valido. Le richieste inline non devono limitare il numero di voci nell'elenco SGE al valore MaxInitiatorRequestSge specificato al momento della creazione della coppia di code. La quantità di memoria trasferita inline deve essere compresa nei limiti dei dati inline della coppia di code.
NDK_OP_FLAG_DEFER
0x00000200
Indica al provider NDK che può rinviare la richiesta all'hardware per l'elaborazione. Per altre informazioni su questo flag, vedere Schema di elaborazione posticipato NDKPI.

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

Valore restituito

La funzione NdkSend restituisce uno dei codici NTSTATUS seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
La richiesta di invio è stata inviata correttamente. Una voce di completamento verrà accodata alla coda di completamento (CQ) al termine della richiesta di lavoro.
STATUS_CONNECTION_INVALID
La coppia di code (QP) non è connessa.
Altri codici di stato
Si è verificato un errore.

Commenti

NdkSend invia una richiesta di invio su una coppia di code (QP).

È possibile usare il flag di NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT se si eseguono più richieste di invio correlate. Impostare questo flag sull'ultima richiesta nel gruppo di richieste di invio correlate.

Un consumer NDK può usare questo flag quando si eseguono più richieste di invio correlate. Il consumer NDK imposta questo flag solo sull'ultima richiesta di invio correlata. Il peer riceverà tutte le richieste di invio come di consueto. Tuttavia, quando il peer riceve l'ultima richiesta di invio (la richiesta con il flag NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT impostato), la coda di completamento per il peer genera una notifica. La notifica viene generata al termine della richiesta di ricezione. Questo flag non ha alcun significato per il ricevitore (peer), a meno che il ricevitore non abbia precedentemente chiamato la funzione NdkArmCq (NDK_FN_ARM_CQ) con il tipo di notifica impostato su NDK_CQ_NOTIFY_SOLICITED.

Nota Le richieste completate con un errore corrispondono sempre al tipo di notifica NDK_CQ_NOTIFY_SOLICITED .
 

Requisiti

Requisito Valore
Client minimo supportato None supported,Supported in NDIS 6.30 and later.
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Windows
Intestazione ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Vedi anche

Schema di elaborazione posticipato NDKPI

Requisiti di registrazione delle richieste di lavoro NDKPI

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE