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 mémoire (MR).
Syntaxe
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
)
{...}
Paramètres
[in] pNdkQp
Pointeur vers un objet de paire de files d’attente NDK (QP) (NDK_QP).
[in, optional] RequestContext
Valeur de contexte à retourner dans la RequestContext membre de la structure NDK_RESULT pour cette requête.
[in] pMr
Pointeur vers un objet NDK memory region (MR) (NDK_MR).
[in] pMw
Pointeur vers un objet de fenêtre mémoire NDK (MW) (NDK_MW).
[in] VirtualAddress
Adresse virtuelle qui doit être supérieure ou égale à l’adresse virtuelle du MDL pour le MR et inférieure à l’adresse virtuelle du MDL pour le MR, plus la valeur dans le paramètre Length.
Utilisez la macro mmGetMdlVirtualAddress pour obtenir l’adresse virtuelle du MDL pour le mr.
[in] Length
Longueur du MR à lier au MW.
[in] Flags
Or au niveau du bit des 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 fin 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 la demande au matériel pour traitement. Pour plus d’informations sur cet indicateur, consultez schéma de traitement différé NDKPI.
Remarque Cet indicateur est pris en charge uniquement dans NDKPI 1.2 (Windows Server 2012 R2) et versions ultérieures. |
Valeur de retour
La fonction NdkBind retourne l’un des codes NTSTATUS suivants.
Retourner le code | 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 lorsque la demande de travail est 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 auprès de l’indicateur de NDK_MR_FLAG_ALLOW_LOCAL_WRITE. |
|
Une erreur s’est produite. |
Remarques
NdkBind lie une fenêtre de mémoire (MW) à une sous-région spécifique d’une région 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 basée sur zéro.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Aucune prise en charge, prise en charge dans NDIS 6.30 et versions ultérieures. |
serveur minimum pris en charge | Windows Server 2012 |
plateforme cible | Windows |
d’en-tête | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
Voir aussi
schéma de traitement différé NDKPI
exigences de publication des demandes de travail NDKPI