NDK_FN_CONNECT_WITH_SHARED_ENDPOINT fonction de rappel (ndkpi.h)

La fonction NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT) lance une demande de connexion NDK d’une adresse locale partagée à une adresse distante.

Syntaxe

NDK_FN_CONNECT_WITH_SHARED_ENDPOINT NdkFnConnectWithSharedEndpoint;

NTSTATUS NdkFnConnectWithSharedEndpoint(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
  [in]                                      NDK_SHARED_ENDPOINT *pNdkSharedEndpoint,
                                            const PSOCKADDR pDestAddress,
  [in]                                      ULONG DestAddressLength,
  [in]                                      ULONG InboundReadLimit,
  [in]                                      ULONG OutboundReadLimit,
  [_In_reads_bytes_opt_(PrivateDataLength)] const PVOID pPrivateData,
  [in]                                      ULONG PrivateDataLength,
  [in]                                      NDK_FN_REQUEST_COMPLETION RequestCompletion,
  [in, optional]                            PVOID RequestContext
)
{...}

Paramètres

[in] pNdkConnector

Pointeur vers un objet connecteur NDK (NDK_CONNECTOR).

[in] pNdkQp

Pointeur vers un objet de paire de files d’attente (QP) NDK (NDK_QP) à associer à la connexion.

[in] pNdkSharedEndpoint

Pointeur vers un objet de point de terminaison partagé NDK (NDK_SHARED_ENDPOINT) qui détermine l’adresse locale de la connexion.

pDestAddress

Adresse de destination. Par AF_INET ou AF_INET6 pDestAddress est l’adresse IP de destination et le port ND de destination.

[in] DestAddressLength

Taille, en octets, des données d’adresse de destination au niveau du paramètre pDestAddress.

[in] InboundReadLimit

Nombre maximal d’opérations de lecture entrantes en cours fournies par le consommateur à autoriser sur le QP. Si le fournisseur sous-jacent a une valeur MaxInboundReadLimit inférieure dans la structure NDK_ADAPTER_INFO , le fournisseur limite la valeur fournie par le consommateur à la valeur maximale du fournisseur. Si l’homologue a une valeur OutboundReadLimit inférieure, le fournisseur utilise cette valeur comme inboundReadLimit effectif. Le consommateur peut récupérer la propriété InboundReadLimit effective en appelant la fonction NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).

[in] OutboundReadLimit

Nombre maximal d’opérations de lecture sortantes en cours fournies par le consommateur à autoriser sur le QP. Si le fournisseur sous-jacent a une valeur MaxOutboundReadLimit inférieure dans la structure NDK_ADAPTER_INFO , le fournisseur limite la valeur fournie par le consommateur à la valeur maximale du fournisseur. Si l’homologue a un inboundReadLimit inférieur, le fournisseur utilise cette valeur comme OutboundReadLimit effectif. Le consommateur peut récupérer le OutboundReadLimit effectif en appelant la fonction NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).

[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData

Pointeur vers des données privées envoyées avec la demande de connexion.

[in] PrivateDataLength

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

[in] RequestCompletion

Pointeur vers une routine de rappel de fin de requête NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).

[in, optional] RequestContext

Valeur de contexte à passer au paramètre Context de la fonction de rappel spécifiée dans le paramètre RequestCompletion .

Valeur retournée

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

Code de retour Description
STATUS_SUCCESS
La demande de connexion a été effectuée avec succès.
STATUS_PENDING
L’opération est en attente et sera terminée ultérieurement. Le pilote appelle la fonction RequestCompletion (NDK_FN_REQUEST_COMPLETION) spécifiée pour terminer l’opération en attente.
STATUS_INSUFFICIENT_RESOURCES
La demande a échoué en raison de ressources insuffisantes.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
STATUS_NETWORK_UNREACHABLE
La demande a échoué, car le réseau distant n’était pas accessible. La tentative de connexion peut être retentée.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
STATUS_HOST_UNREACHABLE
La demande a échoué, car le système distant n’était pas accessible. La tentative de connexion peut être retentée.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
STATUS_CONNECTION_REFUSED
La demande a échoué, car le système distant a refusé la demande de connexion. Cela peut être dû à l’absence d’écouteur, aux limites du backlog ou au rejet actif de la demande de connexion par l’homologue. La tentative de connexion peut être retentée.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
STATUS_IO_TIMEOUT
La demande a échoué, car la demande de connexion a expiré. La tentative de connexion peut être retentée. Les valeurs de délai d’expiration sont sélectionnées par les fournisseurs Network Direct pour correspondre à leurs caractéristiques réseau respectives.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
STATUS_ADDRESS_ALREADY_EXISTS
La demande a échoué, car une connexion avec la combinaison de l’adresse locale, du port local, de l’adresse distante et du port distant existe déjà.
Important La requête peut échouer en ligne et de manière asynchrone avec ce code status.
 
Autres codes status
Une erreur est survenue.

Remarques

NdkConnectWithSharedEndpoint lance une demande de connexion à partir d’une adresse locale partagée vers une adresse distante spécifique. NdkConnectWithSharedEndpoint permet à un consommateur NDK d’utiliser la même adresse locale (par exemple, 10.1.1.1 :9999) pour de nombreuses connexions sortantes lorsque les adresses de destination des connexions sont différentes.

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

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

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP

NDK_SHARED_ENDPOINT