NDK_FN_CREATE_SRQ fonction de rappel (ndkpi.h)

La fonction NdkCreateSrq (NDK_FN_CREATE_SRQ) crée un objet file d’attente de réception partagée (SRQ) NDK.

Syntaxe

NDK_FN_CREATE_SRQ NdkFnCreateSrq;

NTSTATUS NdkFnCreateSrq(
  [in]           NDK_PD *pNdkPd,
  [in]           ULONG SrqDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [in]           ULONG NotifyThreshold,
  [in, optional] NDK_FN_SRQ_NOTIFICATION_CALLBACK SrqNotification,
  [in, optional] PVOID SrqNotificationContext,
  [in, optional] GROUP_AFFINITY *Affinity,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_SRQ **ppNdkSrq
)
{...}

Paramètres

[in] pNdkPd

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

[in] SrqDepth

Nombre maximal de demandes de réception qui peuvent être en suspens sur le SRQ. Cette valeur doit être inférieure ou égale à la valeur dans le membre MaxSrqDepth spécifié dans la structure NDK_ADAPTER_INFO .

[in] MaxReceiveRequestSge

Nombre maximal d’EG pris en charge dans une demande de réception unique. Cette valeur doit être inférieure ou égale à la valeur du membre MaxReceiveRequestSge spécifié dans la structure NDK_ADAPTER_INFO.

[in] NotifyThreshold

Nombre minimal de demandes de réception en file d’attente pour déclencher des rappels de notification SRQ.

[in, optional] SrqNotification

Fonction NdkSrqNotificationCallback facultative(NDK_FN_SRQ_NOTIFICATION_CALLBACK) que le fournisseur appelle si le nombre de demandes de réception en file d’attente est inférieur au seuil spécifié dans le paramètre NotifyThreshold .

[in, optional] SrqNotificationContext

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

[in, optional] Affinity

Masque d’affinité (GROUP_AFFINITY) qui spécifie les processeurs préférés que le consommateur choisirait d’exécuter les rappels NdkSrqNotificationCallback . Les fournisseurs doivent respecter les préférences du processeur si leur matériel sous-jacent le permet, mais les consommateurs ne peuvent pas supposer que les rappels NdkSrqNotificationCallback se produisent uniquement sur les processeurs préférés. Définissez Affinité sur NULL s’il n’y a pas de processeurs préférés.

[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 .

ppNdkSrq

Un pointeur vers un objet SRQ créé (NDK_SRQ) 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 NdkCreateSrq retourne l’un des codes NTSTATUS suivants.

Code de retour Description
STATUS_SUCCESS
L’objet SRQ a été créé avec succès et retourné avec le paramètre *ppNdkSrq .
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 le SrqDepth ou MaxReceiveRequestSge demandé ne se trouve 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 demande peut échouer en ligne et de manière asynchrone avec ce code status.
 
Autres codes status
Une erreur est survenue.

Remarques

La fonction NdkCreateSrq crée un objet file d’attente de réception partagée (SRQ) NDK. Si la fonction retourne STATUS_SUCCESS, l’objet créé est retourné dans le paramètre ppNdkSrq . Si NdkCreateSrq 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

Voir aussi

GROUP_AFFINITY

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

NDK_ADAPTER_INFO

NDK_FN_CREATE_COMPLETION

NDK_FN_SRQ_NOTIFICATION_CALLBACK

NDK_PD

NDK_SRQ