NDK_FN_BIND fonction de rappel (ndkpi.h)
La fonction NdkBind (NDK_FN_BIND) lie une fenêtre mémoire à une sous-région spécifique d’une région de mémoire (MR).
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
)
{...}
[in] pNdkQp
Pointeur vers un objet de paire de files d’attente (QP) NDK (NDK_QP).
[in, optional] RequestContext
Valeur de contexte à retourner dans le membre RequestContext de la structure NDK_RESULT pour cette requête.
[in] pMr
Pointeur vers un objet de région de mémoire (MR) NDK (NDK_MR).
[in] pMw
Pointeur vers un objet de fenêtre de mémoire NDK (MW) (NDK_MW).
[in] VirtualAddress
Adresse virtuelle qui doit être supérieure ou égale à l’adresse virtuelle de la MDL pour le MR et inférieure à l’adresse virtuelle de la MDL pour la mr plus la valeur dans le paramètre Length .
Utilisez la macro MmGetMdlVirtualAddress pour obtenir l’adresse virtuelle de la MDL pour le mr.
[in] Length
Longueur du MR à lier au MW.
[in] Flags
Or au niveau du bit d’indicateurs qui spécifie les opérations autorisées. Les indicateurs suivants sont pris en charge :
Valeur | Signification |
---|---|
|
Indique que la réussite de cette requête ne génère pas d’événement d’achèvement dans la file d’attente d’achèvement sortante. Toutefois, les demandes qui échouent génèrent une complétion dans la file d’attente d’achèvement. |
|
Indique que toutes les demandes de lecture antérieures doivent être terminées avant que le matériel commence à traiter cette demande. |
|
Activez l’accès en lecture à la fenêtre mémoire pour n’importe quel homologue connecté. Pour accéder à la fenêtre mémoire, les homologues connectés doivent avoir un jeton valide. |
|
Activez l’accès en écriture à la fenêtre mémoire pour n’importe quel homologue connecté. Pour accéder à la fenêtre mémoire, les homologues connectés doivent avoir un jeton valide. |
|
Indique au fournisseur NDK qu’il peut différer l’indication de la demande au matériel pour traitement. Pour plus d’informations sur cet indicateur, consultez Schéma de traitement différé NDKPI.
Note Cet indicateur est pris en charge uniquement dans NDKPI 1.2 (Windows Server 2012 R2) et versions ultérieures. |
La fonction NdkBind retourne l’un des codes NTSTATUS suivants.
Code de retour | Description |
---|---|
|
La demande a été publiée avec succès. Une entrée d’achèvement est mise en file d’attente vers le CQ une fois la demande de travail terminée. |
|
La paire de files d’attente (QP) n’est pas connectée. |
|
La région de mémoire n’autorise pas le type d’accès demandé pour la fenêtre mémoire. L’indicateur NDK_OP_FLAG_ALLOW_WRITE nécessite une région de mémoire inscrite avec l’indicateur NDK_MR_FLAG_ALLOW_LOCAL_WRITE. |
|
Une erreur est survenue. |
NdkBind lie une fenêtre mémoire (MW) à une sous-région spécifique d’une région de mémoire (MR).
L’adresse dans le paramètre VirtualAddress doit être une adresse dans la région pratiquement contiguë décrite par la chaîne MDL spécifiée lors de l’inscription de la mémoire. L’adresse doit être traitée par le fournisseur comme un index dans la région de mémoire. L’adresse ne doit pas être utilisée par le fournisseur comme adresse virtuelle valide pour la lecture ou l’écriture du contenu de la mémoire tampon.
Une fois cet appel retourné, le jeton distant est disponible avec la fonction NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW).
Cette fonction ne prend pas en charge une adresse virtuelle de base zéro.
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucune prise en charge, prise en charge dans NDIS 6.30 et versions ultérieures. |
Serveur minimal pris en charge | Windows Server 2012 |
Plateforme cible | Windows |
En-tête | ndkpi.h (incluez Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
Schéma de traitement différé NDKPI
Conditions d’affichage des demandes de travail NDKPI