NDK_FN_BIND funzione di callback (ndkpi.h)
La funzione NdkBind (NDK_FN_BIND) associa una finestra di memoria a una sottoarea 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 NDK_RESULT per questa richiesta.
[in] pMr
Puntatore a un oggetto NDK memory region (MR) (NDK_MR).
[in] pMw
Puntatore a un oggetto della finestra di memoria NDK (MW) (NDK_MW).
[in] VirtualAddress
Indirizzo virtuale che deve essere maggiore o uguale all'indirizzo virtuale del file MDL per mr e minore dell'indirizzo virtuale del file MDL per mr più il valore nel parametro Length.
Utilizzare la macro MmGetMdlVirtualAddress per ottenere l'indirizzo virtuale del file MDL per mr.
[in] Length
Lunghezza dell'MR da associare al MW.
[in] Flags
OR bit per bit di 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 completamento nella coda di completamento. |
|
Indica che tutte le richieste di lettura precedenti devono essere completate prima che l'hardware inizi l'elaborazione di 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 posticipato NDKPI.
Nota Questo flag è supportato solo in NDKPI 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 NDK_MR_FLAG_ALLOW_LOCAL_WRITE. |
|
Si è verificato un errore. |
Osservazioni
NdkBind associa una finestra di memoria (MW) a una sottoarea 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 utilizzato dal provider come indirizzo virtuale valido per la lettura o la scrittura del contenuto del buffer.
Al termine della chiamata, il token remoto sarà disponibile con la funzione NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW).
Questa funzione non supporta un indirizzo virtuale in base zero.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Nessuna supportata, supportata in NDIS 6.30 e versioni successive. |
server minimo supportato | Windows Server 2012 |
piattaforma di destinazione | Finestre |
intestazione | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
Vedere anche
schema di elaborazione posticipato NDKPI
requisiti di registrazione delle richieste di lavoro NDKPI