NDK_FN_SEND_AND_INVALIDATE fonction de rappel (ndkpi.h)
La fonction NdkSendAndInvalidate (NDK_FN_SEND_AND_INVALIDATE) publie une demande d’envoi sur une paire de files d’attente NDK (QP) et fournit un jeton à invalider auprès de l’homologue distant une fois la réception terminée.
Syntaxe
NDK_FN_SEND_AND_INVALIDATE NdkFnSendAndInvalidate;
NTSTATUS NdkFnSendAndInvalidate(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags,
[in] UINT32 RemoteToken
)
{...}
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 le membre RequestContext de la structure NDK_RESULT_EX pour cette requête.
pSgl
Tableau de structures SGE (NDK_SGE) qui représentent les mémoires tampons contenant les données à envoyer.
[in] nSge
Nombre de structures SGE dans le tableau spécifié dans le paramètre pSgl .
[in] Flags
OR au niveau du bit des indicateurs qui spécifient les opérations autorisées. Les indicateurs suivants sont pris en charge :
Valeur | Signification |
---|---|
|
Si cette demande réussit, elle ne génère pas d’événement d’achèvement dans la file d’attente d’achèvement sortante. Toutefois, en cas d’échec, il génère un événement d’achèvement dans la file d’attente d’achèvement sortante. |
|
Toutes les demandes de lecture antérieures doivent être terminées avant que le matériel ne commence à traiter cette demande. |
|
La file d’attente d’achèvement pour l’homologue génère une notification. Pour plus d’informations sur NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, consultez la section Remarques. |
|
Indique que la mémoire référencée par les SGE doit être transférée inline. En outre, la valeur MemoryRegionToken dans les entrées NDK_SGE peut être non valide. Les requêtes inline n’ont pas besoin de limiter le nombre d’entrées dans la liste SGE à la valeur MaxInitiatorRequestSge spécifiée lors de la création de la paire de file d’attente. La quantité de mémoire transférée inline doit se trouver dans les limites de données inline de la paire file d’attente. |
|
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. |
[in] RemoteToken
Jeton distant à invalider sur l’homologue une fois la réception terminée. Le fournisseur NDK de l’homologue de réception doit annuler la connexion, comme spécifié par les règles de transport de couche inférieure, si un jeton non valide a été spécifié par l’homologue d’envoi.
Valeur retournée
La fonction NdkSendAndInvalidate 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 la file d’attente d’achèvement (CQ) une fois la demande de travail terminée. |
|
La paire de files d’attente (QP) n’est pas connectée. |
|
Une erreur est survenue. |
Remarques
Vous pouvez utiliser l’indicateur NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT si vous émettez plusieurs demandes d’envoi associées. Définissez cet indicateur sur la dernière requête du groupe.
Un consommateur NDK peut utiliser cet indicateur lors de l’émission de plusieurs demandes d’envoi associées. Le consommateur NDK définit cet indicateur uniquement sur la dernière demande d’envoi associée. L’homologue reçoit toutes les demandes d’envoi comme d’habitude. Toutefois, lorsque l’homologue reçoit la dernière demande d’envoi (la demande avec l’indicateur NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT défini), la file d’attente d’achèvement pour l’homologue génère une notification. La notification est générée une fois la demande de réception terminée. Cet indicateur n’a aucune signification pour le récepteur (homologue), sauf si le récepteur a précédemment appelé la fonction NdkArmCq (NDK_FN_ARM_CQ) avec le type de notification défini sur NDK_CQ_NOTIFY_SOLICITED.
Toute structure NDK_RESULT_EX ajoutée à une file d’attente d’achèvement à la suite d’un appel à cette fonction doit spécifier NdkOperationTypeSend pour le membre Type . Notez que vous n’avez pas besoin de spécifier une valeur pour le membre TypeSpecificCompletionOutput de la structure NDK_RESULT_EX .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge, pris en charge dans NDIS 6.40 et versions ultérieures. |
Serveur minimal pris en charge | Windows Server 2012 R2 |
Plateforme cible | Windows |
En-tête | ndkpi.h (inclure Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
Voir aussi
Exigences de gestion de la saisie semi-automatique NDKPI
Schéma de traitement différé NDKPI