NDK_FN_BIND funzione di callback (ndkpi.h)
La funzione NdkBind (NDK_FN_BIND) associa una finestra di memoria a una sotto-area specifica di un'area di memoria (MR).
Sintassi
NDK_FN_BIND NdkFnBind;
NTSTATUS NdkFnBind(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
[in] NDK_MR *pMr,
[in] NDK_MW *pMw,
[in] PVOID VirtualAddress,
[in] SIZE_T Length,
[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 di NDK_RESULT per questa richiesta.
[in] pMr
Puntatore a un oggetto di memoria NDK (MR) (NDK_MR).
[in] pMw
Puntatore a un oggetto NDK memory window (MW) (NDK_MW).
[in] VirtualAddress
Indirizzo virtuale che deve essere maggiore o uguale all'indirizzo virtuale dell'oggetto MDL per mr e minore dell'indirizzo virtuale dell'oggetto MDL per il valore mr più il valore nel parametro Length .
Usare la macro MmGetMdlVirtualAddress per ottenere l'indirizzo virtuale dell'MDL per mr.
[in] Length
Lunghezza del MR da associare al MW.
[in] Flags
Or bit per bit dei flag che specifica le operazioni consentite. Sono supportati i flag seguenti:
Valore | Significato |
---|---|
|
Indica 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 completamento nella coda di completamento. |
|
Indica che tutte le richieste di lettura precedenti devono essere completate prima che l'hardware inizi a elaborare questa richiesta. |
|
Abilitare l'accesso in lettura alla finestra di memoria per qualsiasi peer connesso. Per accedere alla finestra di memoria, i peer connessi devono avere un token valido. |
|
Abilitare l'accesso in scrittura alla finestra di memoria per qualsiasi peer connesso. Per accedere alla finestra di memoria, i peer connessi devono avere un token valido. |
|
Indica al provider NDK che può rinviare la richiesta all'hardware per l'elaborazione. Per altre informazioni su questo flag, vedere Schema di elaborazione posticipata NDKPI.
Nota Questo flag è supportato solo in ND KPI 1.2 (Windows Server 2012 R2) e versioni successive. |
Valore restituito
La funzione NdkBind restituisce uno dei codici NTSTATUS seguenti.
Codice restituito | Descrizione |
---|---|
|
La richiesta è stata inviata correttamente. Una voce di completamento verrà accodata al CQ al termine della richiesta di lavoro. |
|
La coppia di code (QP) non è connessa. |
|
L'area di memoria non consente il tipo di accesso richiesto per la finestra di memoria. Il flag NDK_OP_FLAG_ALLOW_WRITE richiede un'area di memoria registrata con il flag di NDK_MR_FLAG_ALLOW_LOCAL_WRITE. |
|
Si è verificato un errore. |
Commenti
NdkBind associa una finestra di memoria (MW) a una sotto-area specifica di un'area di memoria (MR).
L'indirizzo nel parametro VirtualAddress deve essere un indirizzo all'interno dell'area virtualmente contigua descritta dalla catena MDL specificata durante la registrazione della memoria. L'indirizzo deve essere considerato dal provider come indice nell'area di memoria. L'indirizzo non deve essere usato dal provider come indirizzo virtuale valido per la lettura o la scrittura del contenuto del buffer.
Dopo aver restituito questa chiamata, il token remoto sarà disponibile con la funzione NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW).
Questa funzione non supporta un indirizzo virtuale basato su zero.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Nessuna supportata, supportata in NDIS 6.30 e versioni successive. |
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 di ND KPI
Requisiti di registrazione delle richieste di lavoro ND KPII
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per