Partager via


NDK_FN_CREATE_QP fonction de rappel (ndkpi.h)

La fonction NdkCreateQp (NDK_FN_CREATE_QP) crée un objet de paire de files d’attente (QP) NDK.

Syntaxe

NDK_FN_CREATE_QP NdkFnCreateQp;

NTSTATUS NdkFnCreateQp(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in, optional] PVOID QPContext,
  [in]           ULONG ReceiveQueueDepth,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [in]           ULONG MaxInitiatorRequestSge,
  [in]           ULONG InlineDataSize,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_QP **ppNdkQp
)
{...}

Paramètres

[in] pNdkPd

Pointeur vers un objet de domaine de protection (PD) NDK (NDK_PD).

[in] pReceiveCq

Pointeur vers une file d’attente de saisie semi-automatique (CQ) à utiliser pour les achèvements de demandes de réception (NDK_CQ).

[in] pInitiatorCq

Pointeur vers un CQ à utiliser pour l’achèvement des demandes de l’initiateur.

[in, optional] QPContext

Valeur de contexte à retourner dans le membre QPContext de la structure NDK_RESULT pour toutes les demandes publiées sur ce QP.

[in] ReceiveQueueDepth

Nombre maximal de demandes de réception qui peuvent être en attente sur le QP. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxReceiveQueueDepth de la structure NDK_ADAPTER_INFO .

[in] InitiatorQueueDepth

Nombre maximal de demandes de l’initiateur qui peuvent être en attente sur le QP. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxInitiatorQueueDepth de la structure NDK_ADAPTER_INFO.

[in] MaxReceiveRequestSge

Nombre maximal de SEG pouvant être pris en charge dans une seule demande de réception. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxReceiveRequestSge de la structure NDK_ADAPTER_INFO.

[in] MaxInitiatorRequestSge

Nombre maximal de SEG pouvant être pris en charge dans une requête d’initiateur unique. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxInitiatorRequestSge de la structure NDK_ADAPTER_INFO.

[in] InlineDataSize

Quantité maximale de données inline en octets pouvant être envoyées dans une seule demande d’envoi ou d’écriture. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxInlineDataSize de la structure NDK_ADAPTER_INFO.

[in] CreateCompletion

Pointeur vers une fonction NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) qui termine la création d’un objet NDK.

[in, optional] RequestContext

Valeur de contexte que le fournisseur NDK transmet à la fonction NdkCreateCompletion spécifiée dans le paramètre CreateCompletion .

ppNdkQp

Un pointeur vers un objet QP (NDK_QP) créé est retourné à cet emplacement si la requête réussit sans retourner STATUS_PENDING. Si la requête retourne STATUS_PENDING ce paramètre est ignoré et l’objet créé est retourné avec le rappel spécifié dans le paramètre CreateCompletion .

Valeur retournée

La fonction NdkCreateQp retourne l’un des codes NTSTATUS suivants.

Code de retour Description
STATUS_SUCCESS
L’objet QP a été créé et retourné avec le paramètre *ppNdkQp .
STATUS_PENDING
L’opération est en attente et sera terminée ultérieurement. Le fournisseur appelle la fonction spécifiée dans le paramètre CreateCompletion (NDK_FN_CREATE_COMPLETION) pour terminer l’opération en attente.
STATUS_INVALID_PARAMETER
La demande a échoué, car les demandes ReceiveQueueDepth, InitiatorQueueDepth, MaxReceiveRequestSge, MaxInitiatorRequestSge ou InlineDataSize ne sont pas dans les limites spécifiées dans la structure NDK_ADAPTER_INFO .
STATUS_INSUFFICIENT_RESOURCES
La demande a échoué en raison de ressources insuffisantes.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
Autres codes status
Une erreur est survenue.

Remarques

La fonction NdkCreateQp crée un objet de paire de files d’attente (QP) NDK. Un QP se compose d’une file d’attente de réception et d’une file d’attente d’initiateur. La file d’attente de réception est utilisée pour publier des demandes de réception. Une file d’attente d’initiateurs est utilisée pour lancer des demandes d’envoi, de liaison, d’inscription rapide, de lecture, d’écriture et d’invalidation.

Si la fonction retourne STATUS_SUCCESS, l’objet créé est retourné dans le paramètre ppNdkQp . Si NdkCreateQp retourne STATUS_PENDING, l’objet créé est retourné par la fonction NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) spécifiée dans le paramètre CreateCompletion .

Configuration requise

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

Voir aussi

Exigences relatives à la durée de vie des objets NDKPI

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT