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
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
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.
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_ALLOW_REMOTE_READ
0x00000008
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.
NDK_OP_FLAG_ALLOW_REMOTE_WRITE
0x00000030
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.
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 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
STATUS_SUCCESS
La richiesta è stata inviata correttamente. Una voce di completamento verrà accodata al CQ al termine della richiesta di lavoro.
STATUS_CONNECTION_INVALID
La coppia di code (QP) non è connessa.
STATUS_ACCESS_VIOLATION
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.
Altri codici di stato
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

MmGetMdlVirtualAddress

Schema di elaborazione posticipato di ND KPI

Requisiti di registrazione delle richieste di lavoro ND KPII

NDK_FN_GET_REMOTE_TOKEN_FROM_MW

NDK_MR

NDK_MW

NDK_QP

NDK_RESULT