Partager via


NDK_FN_GET_CONNECTION_DATA fonction de rappel (ndkpi.h)

La fonction NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) obtient les 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 .

Note 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 retournée

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

Code de retour Description
STATUS_SUCCESS
L’opération s’est terminée avec succès.
STATUS_BUFFER_TOO_SMALL
La valeur dans le 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 status
Une erreur est survenue.

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, ainsi que 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 effectives de limite de lecture entrante (IRD) et de limite de lecture sortante (ORD) du côté actif, un consommateur NDK peut appeler NdkGetConnectionData pour un objet connecteur qui a été 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’appellera pas cette fonction après avoir appelé la fonction NDK_FN_ACCEPT côté passif ou la fonction NDK_FN_COMPLETE_CONNECT du 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 (RDS) requise dans *pPrivateDataLength.

Note La taille de la mémoire tampon de données privées (RDS) requise n’indique pas que l’homologue a envoyé autant de données privées. Le consommateur NDK doit, aux deux extrémités, disposer d’un schéma commun pour permettre à la fin de la 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. Les services Bureau à distance peuvent être différents 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’a pas la valeur NULL, le fournisseur doit copier les données privées dans la mémoire tampon sur pPrivateData jusqu’à la plus petite de *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 service RDS dans *pPrivateDataLength avant de revenir.

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

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH