Partager via


NDK_FN_READ fonction de rappel (ndkpi.h)

La fonction NdkRead (NDK_FN_READ) publie une demande de lecture sur une paire de files d’attente NDK (QP).

Syntaxe

NDK_FN_READ NdkFnRead;

NTSTATUS NdkFnRead(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           UINT64 RemoteAddress,
  [in]           UINT32 RemoteToken,
  [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 dans utilisant les données entrantes.

[in] nSge

Nombre de structures SGE dans le tableau spécifié dans le paramètre pSgl.

[in] RemoteAddress

Adresse distante à lire à partir de celle-ci dans l’ordre d’octet de l’hôte local. Le consommateur NDK peut ajouter un décalage à la valeur fournie à distance.

[in] RemoteToken

Jeton de mémoire fourni à distance qui est un tableau opaque d’octets du consommateur NDK.

[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
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
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.
NDK_OP_FLAG_READ_FENCE
0x00000002
Indique que toutes les demandes de lecture antérieures doivent être terminées avant que le matériel commence à traiter cette demande.
NDK_OP_FLAG_RDMA_READ_LOCAL_INVALIDATE
0x00000200
Si cet indicateur est défini et que le fournisseur signale également NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED fonctionnalité d’adaptateur dans la structure NDK_ADAPTER_INFO, la réussite de la fonction NdkRead signifie que la première mémoire tampon spécifiée dans le paramètre pSgl est invalidée. L’échec de la saisie semi-automatique laisse la mémoire tampon et le jeton dans un état non défini. Cet indicateur est ignoré si le fournisseur ne signale pas NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED fonctionnalité d’adaptateur dans la structure NDK_ADAPTER_INFO.

Remarque Cet indicateur est pris en charge uniquement dans NDKPI 1.2 (Windows Server 2012 R2) et versions ultérieures.

NDK_OP_FLAG_DEFER
0x00000200
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 NdkRead retourne l’un des codes NTSTATUS suivants.

Retourner le code Description
STATUS_SUCCESS
La demande a été publiée avec succès. Une entrée d’achèvement est mise en file d’attente vers le CQ lorsque la demande de travail est terminée.
STATUS_CONNECTION_INVALID
Le QP n’est pas connecté.
STATUS_REMOTE_RESOURCES
La demande a essayé de lire au-delà de la taille de la mémoire distante.
Autres codes d’état
Une erreur s’est produite.

Remarques

NdkRead publie une demande de lecture sur une paire de files d’attente (QP).

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

exigences de publication des demandes de travail NDKPI

NDK_ADAPTER_INFO

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE