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. Par AF_INET ou AF_INET6 pSrcAddress correspond à l’adresse IP source et au 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 à 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 au maximum du fournisseur. Si l’homologue a une valeur OutboundReadLimit inférieure, le fournisseur l’utilisera comme valeur InboundReadLimit effective. Le consommateur peut récupérer l’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 à 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 au maximum 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 les 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 NdkConnect retourne l’un des codes NTSTATUS suivants.
Code de retour | Description |
---|---|
|
La demande de connexion a été effectuée avec succès. |
|
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. |
|
La demande a échoué en raison de ressources insuffisantes.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande a échoué, car le réseau distant n’était pas accessible. La tentative de connexion peut être retentée.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande a échoué, car le système hôte distant n’était pas accessible. La tentative de connexion peut être retentée.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande a échoué, car le système distant a refusé la demande de connexion. Cela peut être dû à l’absence d’écouteur, à des limites de backlog ou au rejet actif de la demande de connexion par l’homologue. La tentative de connexion peut être retentée.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande a échoué, car le délai de 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 demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande a échoué, car l’adresse locale spécifiée est déjà en cours d’utilisation.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande a échoué, car l’adresse locale spécifiée n’est pas une adresse valide pour l’adaptateur.
Important La demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
La demande 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 demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
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 demande peut échouer en ligne et de manière asynchrone avec ce code status.
|
|
Une erreur est survenue. |
Remarques
NdkConnect lance une demande de connexion à partir d’une adresse locale à une adresse distante.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge, pris 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 (inclure Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |