Partager via


NDK_FN_CONNECT fonction de rappel (ndkpi.h)

La fonction NdkConnect (NDK_FN_CONNECT) lance une demande de connexion NDK.

Syntaxe

NDK_FN_CONNECT NdkFnConnect;

NTSTATUS NdkFnConnect(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
                                            const PSOCKADDR pSrcAddress,
  [in]                                      ULONG SrcAddressLength,
  [in]                                      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 NDK (QP) (NDK_QP) à associer à la connexion.

pSrcAddress

Adresse source. Pour AF_INET ou AF_INET6 pSrcAddress est l’adresse IP source et le port ND source.

[in] SrcAddressLength

Taille, en octets, des données d’adresse source au paramètre pSrcAddress.

[in] pDestAddress

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

[in] DestAddressLength

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

[in] InboundReadLimit

Nombre maximal d’opérations de lecture entrantes en cours fournies par le consommateur pour permettre le QP. Si le fournisseur sous-jacent a une valeur inférieure MaxInboundReadLimit dans la structure NDK_ADAPTER_INFO, le fournisseur limite la valeur fournie par le consommateur au maximum du fournisseur. Si l’homologue a une valeur inférieure OutboundReadLimit, le fournisseur utilise cette valeur comme valeur effective InboundReadLimit. Le consommateur peut récupérer le inboundReadLimit effectif 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 pour permettre le QP. Si le fournisseur sous-jacent a une valeur inférieure MaxOutboundReadLimit dans la structure NDK_ADAPTER_INFO, le fournisseur limite la valeur fournie par le consommateur au maximum du fournisseur. Si l’homologue a une inférieureInboundReadLimit, le fournisseur utilise cette valeur comme effectiveOutboundReadLimit. Le consommateur peut récupérer la OutboundReadLimit effective 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 à transmettre au paramètre Context de la fonction de rappel spécifiée dans le paramètre RequestCompletion.

Valeur de retour

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

Retourner le code 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 requête a échoué en raison de ressources insuffisantes.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_NETWORK_UNREACHABLE
La requête a échoué, car le réseau distant n’a pas été accessible. La tentative de connexion peut être retentée.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_HOST_UNREACHABLE
La requête a échoué, car le système hôte distant n’était pas accessible. La tentative de connexion peut être retentée.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_CONNECTION_REFUSED
La demande a échoué, car le système distant a refusé la demande de connexion. Cela peut être dû à un manque d’écouteur, de limites de backlog ou de l’homologue qui rejette activement la demande de connexion. La tentative de connexion peut être retentée.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_IO_TIMEOUT
La requête 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, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_SHARING_VIOLATION
La requête a échoué, car l’adresse locale spécifiée est déjà en cours d’utilisation.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_INVALID_ADDRESS
La requête a échoué, car l’adresse locale spécifiée n’est pas une adresse valide pour l’adaptateur.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_TOO_MANY_ADDRESSES
La requête a échoué, car le consommateur a spécifié un numéro de port local de zéro, et le fournisseur Network Direct n’a pas pu allouer un port à partir de l’espace de port éphémère (ports 49152-65535).
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
STATUS_ADDRESS_ALREADY_EXISTS
La requête a échoué, car une connexion avec la combinaison d’adresses locales, de port local, d’adresse distante et de port distant existe déjà.
Important La requête peut échouer en ligne, ainsi que de manière asynchrone avec ce code d’état.
 
Autres codes d’état
Une erreur s’est produite.

Remarques

NdkConnect lance une demande de connexion d’une adresse locale à une adresse distante.

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

exigences de durée de vie des objets NDKPI

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_DISCONNECT

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP