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 |
---|---|
|
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. |
|
Indica che tutte le richieste di lettura precedenti devono essere completate prima che l'hardware inizi a elaborare questa richiesta. |
|
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. |
|
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. |
|
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 |
---|---|
|
La richiesta di invio è stata inviata correttamente. Una voce di completamento verrà accodata alla coda di completamento (CQ) al termine della richiesta di lavoro. |
|
La coppia di code (QP) non è connessa. |
|
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.
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