NDK_FN_SEND_AND_INVALIDATE funzione di callback (ndkpi.h)
La funzione NdkSendAndInvalidate (NDK_FN_SEND_AND_INVALIDATE) invia una richiesta di invio su una coppia di code NDK (QP) e fornisce un token da invalidare al peer remoto al completamento della ricezione.
Sintassi
NDK_FN_SEND_AND_INVALIDATE NdkFnSendAndInvalidate;
NTSTATUS NdkFnSendAndInvalidate(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags,
[in] UINT32 RemoteToken
)
{...}
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_EX 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 di flag che specificano le operazioni consentite. Sono supportati i flag seguenti:
Valore | Significato |
---|---|
|
Se la richiesta ha esito positivo, non genera un evento di completamento nella coda di completamento in uscita. Tuttavia, se ha esito negativo, genera un evento di completamento nella coda di completamento in uscita. |
|
Tutte le richieste di lettura precedenti devono essere completate prima che l'hardware inizi a elaborare questa richiesta. |
|
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. |
[in] RemoteToken
Token remoto da invalidare nel peer al termine della ricezione. Il provider NDK nel peer ricevente deve interrompere la connessione, come specificato dalle regole di trasporto di livello inferiore, se è stato specificato un token non valido dal peer di invio.
Valore restituito
La funzione NdkSendAndInvalidate restituisce uno dei codici NTSTATUS seguenti.
Codice restituito | Descrizione |
---|---|
|
La richiesta è 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
È 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.
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.
Qualsiasi struttura NDK_RESULT_EX aggiunta a una coda di completamento in seguito a una chiamata a questa funzione deve specificare NdkOperationTypeSend per il membro Type . Si noti che non è necessario specificare un valore per il membro TypeSpecificCompletionOutput della struttura NDK_RESULT_EX .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | None supported,Supported in NDIS 6.40 and later. |
Server minimo supportato | Windows Server 2012 R2 |
Piattaforma di destinazione | Windows |
Intestazione | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
Vedi anche
Requisiti di gestione del completamento degli indicatori KPI ND
Schema di elaborazione posticipato NDKPI