NDK_FN_SEND fonction de rappel (ndkpi.h)
La fonction NdkSend (NDK_FN_SEND) publie une demande d’envoi sur une paire de files d’attente NDK (QP).
Syntaxe
NDK_FN_SEND NdkFnSend;
NTSTATUS NdkFnSend(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[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 à renvoyer dans le membre RequestContext de la structure NDK_RESULT 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é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 un événement 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. |
|
Indique que 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 sgEs doit être transférée en ligne. En outre, la valeur MemoryRegionToken dans les entrées NDK_SGE peut ne pas être valide. Les requêtes inline n’ont pas besoin de limiter le nombre d’entrées de la liste SGE à la valeur MaxInitiatorRequestSge spécifiée lors de la création de la paire de files d’attente. La quantité de mémoire transférée inline doit se trouver dans les limites de données inline de la paire de files d’attente. |
|
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 NdkSend retourne l’un des codes NTSTATUS suivants.
Retourner le code | Description |
---|---|
|
La demande d’envoi 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) lorsque la demande de travail est terminée. |
|
La paire de files d’attente (QP) n’est pas connectée. |
|
Une erreur s’est produite. |
Remarques
NdkSend publie une demande d’envoi sur une paire de files d’attente (QP).
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 dans le groupe de demandes d’envoi associées.
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 normalement. Toutefois, lorsque l’homologue reçoit la dernière demande d’envoi (la demande avec l’indicateur de 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.
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