NDK_FN_CREATE_QP_WITH_SRQ fonction de rappel (ndkpi.h)
La fonction NdkCreateQpWithSrq (NDK_FN_CREATE_QP_WITH_SRQ) crée un objet de paire de files d’attente NDK (QP) avec un objet SRQ (Shared Receive Queue) NDK.
Syntaxe
NDK_FN_CREATE_QP_WITH_SRQ NdkFnCreateQpWithSrq;
NTSTATUS NdkFnCreateQpWithSrq(
[in] NDK_PD *pNdkPd,
[in] NDK_CQ *pReceiveCq,
[in] NDK_CQ *pInitiatorCq,
[in] NDK_SRQ *pSrq,
[in, optional] PVOID QPContext,
[in] ULONG InitiatorQueueDepth,
[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 d’achèvement (CQ) à utiliser pour l’achèvement des demandes de réception (NDK_CQ).
[in] pInitiatorCq
Pointeur vers un CQ à utiliser pour l’achèvement des demandes d’initiateur.
[in] pSrq
Pointeur vers un objet de file d’attente de réception partagée (SRQ) NDK (NDK_SRQ) pour publier les demandes de réception.
[in, optional] QPContext
Valeur de contexte à retourner dans le membre QPContext de la structure NDK_RESULT pour toutes les demandes qui sont publiées sur ce QP.
[in] InitiatorQueueDepth
Nombre maximal de demandes d’initiateur qui peuvent être en suspens sur le QP. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxInitiatorQueueDepth de la structure NDK_ADAPTER_INFO .
[in] MaxInitiatorRequestSge
Nombre maximal de SGE qui peuvent être pris en charge dans une demande 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 créé (NDK_QP) 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 NdkCreateQpWithSrq retourne l’un des codes NTSTATUS suivants.
Code de retour | Description |
---|---|
|
L’objet QP a été créé avec succès et retourné avec le paramètre *ppNdkQp . |
|
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. |
|
La demande a échoué, car l’objet InitiatorQueueDepth, MaxInitiatorRequestSge ou InlineDataSize demandé ne se trouve pas dans les limites spécifiées dans la structure NDK_ADAPTER_INFO . |
|
La demande a échoué en raison de ressources insuffisantes.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
Une erreur est survenue. |
Remarques
La fonction NdkCreateQpWithSrq crée un objet de paire de files d’attente NDK (QP) avec une file d’attente de réception partagée (SRQ). 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 les 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 NdkCreateQpWithSrq 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 | Aucun pris en charge, pris 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 (inclure Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |