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 (QP) NDK (NDK_QP).

[in, optional] RequestContext

Valeur de contexte à retourner 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 laquelle placer 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 qui est présentée dans l’ordre d’octets 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 d’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 l’exécution 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 .

Note 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 l’indication de la demande au matériel pour traitement. Pour plus d’informations sur cet indicateur, consultez Schéma de traitement différé NDKPI.

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

Valeur retournée

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

Code de retour 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 une fois la demande de travail 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 status
Une erreur est survenue.

Remarques

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

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

Schéma de traitement différé NDKPI

Conditions d’affichage des demandes de travail NDKPI

NDK_ADAPTER_INFO

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE