Partager via


NDK_FN_GET_CONNECTION_DATA fonction de rappel (ndkpi.h)

La fonction NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) obtient des valeurs de limite de lecture et les données privées envoyées par l’homologue.

Syntaxe

NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;

NTSTATUS NdkFnGetConnectionData(
  [in]            NDK_CONNECTOR *pNdkConnector,
  [out, optional] ULONG *pInboundReadLimit,
  [out, optional] ULONG *pOutboundReadLimit,
                  PVOID pPrivateData,
                  ULONG *pPrivateDataLength
)
{...}

Paramètres

[in] pNdkConnector

Pointeur vers un objet connecteur NDK (NDK_CONNECTOR).

[out, optional] pInboundReadLimit

Le nombre maximal d’opérations de lecture entrantes en cours à autoriser sur le QP est retourné à cet emplacement.

[out, optional] pOutboundReadLimit

Le nombre maximal d’opérations de lecture sortantes en cours à autoriser sur le QP est retourné à cet emplacement.

pPrivateData

Pointeur vers des données privées retournées.

pPrivateDataLength

Longueur, en octets, des données privées fournies dans le paramètre pPrivateData.

Remarque La valeur de sortie n’indique pas la longueur réelle des données privées stockées dans la mémoire tampon. Les consommateurs NDK doivent négocier le format et la longueur des données privées réelles. Pour plus d’informations sur les données privées, consultez la section Remarques.
 

Valeur de retour

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

Retourner le code Description
STATUS_SUCCESS
L’opération s’est terminée avec succès.
STATUS_BUFFER_TOO_SMALL
La valeur du paramètre *pPrivateDataLength a spécifié une taille de mémoire tampon trop petite pour contenir les données privées de connexion. *pPrivateDataLength est mis à jour avec la taille requise.
Autres codes d’état
Une erreur s’est produite.

Remarques

La fonction NdkGetConnectionData obtient les données privées envoyées par l’homologue avec les demandes de connexion, d’acceptation ou de rejet et les valeurs de limite de lecture entrantes et sortantes effectives. Ces valeurs sont dérivées des valeurs demandées des homologues locaux et distants et des limites maximales du fournisseur.

Pour accéder aux données privées et aux valeurs de limite de lecture entrante effectives (IRD) et de limite de lecture sortante (ORD) du côté actif, un consommateur NDK peut appeler NdkGetConnectionData pour un objet connecteur passé à la fonction NDK_FN_CONNECT_EVENT_CALLBACK.

Pour accéder aux données privées et aux valeurs IRD et ORD effectives du côté passif, le consommateur peut appeler NdkGetConnectionData pour un objet connecteur pour lequel NDK_FN_CONNECT ou NDK_FN_CONNECT_WITH_SHARED_ENDPOINT terminé avec succès un consommateur NDK n’appelle pas cette fonction après qu’il appelle la fonction NDK_FN_ACCEPT côté passif ou la fonction NDK_FN_COMPLETE_CONNECT côté actif.

Si le paramètre pPrivateData a la valeur NULL et *pPrivateDataLength est égal à zéro, un fournisseur NDK doit retourner STATUS_SUCCESS et stocker la taille de mémoire tampon de données privée requise (RDS) dans *pPrivateDataLength.

Remarque La taille de mémoire tampon de données privée requise (RDS) n’indique pas que l’homologue a envoyé ces données privées. Le consommateur NDK doit, à la fois, disposer d’un schéma commun pour permettre à la fin de réception de déterminer s’il existe des données privées ou non dans la mémoire tampon de données privée. La RDS peut être différente pour chaque connexion.
 
Si pPrivateData a la valeur NULL et *pPrivateDataLength est supérieur à zéro, il s’agit d’une requête non valide. Un consommateur ne doit jamais faire cela.

Si pPrivateData n’est pas NULL, le fournisseur doit copier les données privées dans la mémoire tampon à pPrivateData jusqu’à la plus petite *pPrivateDataLength ou RDS en octets.

Si *pPrivateDataLength est supérieur ou égal à RDS, le fournisseur doit retourner STATUS_SUCCESS. Sinon, le fournisseur doit retourner STATUS_BUFFER_TOO_SMALL. Dans les deux cas, le fournisseur doit stocker le RDS dans *pPrivateDataLength avant de retourner.

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

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH