NDK_FN_CONNECT_WITH_SHARED_ENDPOINT funzione di callback (ndkpi.h)

La funzione NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT) avvia una richiesta di connessione NDK da un indirizzo locale condiviso a un indirizzo remoto.

Sintassi

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
)
{...}

Parametri

[in] pNdkConnector

Puntatore a un oggetto connettore NDK (NDK_CONNECTOR).

[in] pNdkQp

Puntatore a un oggetto QP (NDK Queue Pair) (NDK_QP) da associare alla connessione.

[in] pNdkSharedEndpoint

Puntatore a un oggetto endpoint condiviso NDK (NDK_SHARED_ENDPOINT) che determina l'indirizzo locale per la connessione.

pDestAddress

Indirizzo di destinazione. Per AF_INET o AF_INET6 pDestAddress è l'indirizzo IP di destinazione e la porta ND di destinazione.

[in] DestAddressLength

Dimensioni, in byte, dei dati dell'indirizzo di destinazione nel parametro pDestAddress.

[in] InboundReadLimit

Numero massimo fornito dal consumer delle operazioni di lettura in ingresso in corso per consentire il QP. Se il provider sottostante ha un valore MassimoInboundReadLimit inferiore nella struttura NDK_ADAPTER_INFO , il provider limiterà il valore fornito dal consumer al massimo del provider. Se il peer ha un valore outboundReadLimit inferiore, il provider userà tale valore come InboundReadLimit effettivo. Il consumer può recuperare l'effettivo InboundReadLimit chiamando la funzione NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).

[in] OutboundReadLimit

Numero massimo di operazioni di lettura in uscita fornite dal consumer per consentire le operazioni di lettura in uscita per consentire il QP. Se il provider sottostante ha un valore MassimoOutboundReadLimit inferiore nella struttura NDK_ADAPTER_INFO , il provider limiterà il valore fornito dal consumer al massimo del provider. Se il peer ha un valore InboundReadLimit inferiore, il provider userà tale valore come outboundReadLimit effettivo. Il consumer può recuperare l'effettivo OutboundReadLimit chiamando la funzione NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).

[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData

Puntatore ai dati privati inviati con la richiesta di connessione.

[in] PrivateDataLength

Lunghezza, in byte, dei dati privati forniti nel parametro pPrivateData .

[in] RequestCompletion

Puntatore a una routine di callback del completamento della richiesta NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).

[in, optional] RequestContext

Valore di contesto da passare al parametro Context della funzione callback specificata nel parametro RequestCompletion .

Valore restituito

La funzione NdkConnectWithSharedEndpoint restituisce uno dei codici NTSTATUS seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
La richiesta di connessione è stata completata correttamente.
STATUS_PENDING
L'operazione è in sospeso e verrà completata in un secondo momento. Il driver chiamerà la funzione RequestCompletion (NDK_FN_REQUEST_COMPLETION) specificata per completare l'operazione in sospeso.
STATUS_INSUFFICIENT_RESOURCES
La richiesta non è riuscita a causa di risorse insufficienti.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
 
STATUS_NETWORK_UNREACHABLE
La richiesta non è riuscita perché la rete remota non è raggiungibile. Il tentativo di connessione può essere riprovato.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
 
STATUS_HOST_UNREACHABLE
La richiesta non è riuscita perché il sistema remoto non è raggiungibile. Il tentativo di connessione può essere riprovato.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
 
STATUS_CONNECTION_REFUSED
La richiesta non è riuscita perché il sistema remoto ha rifiutato la richiesta di connessione. Ciò può essere dovuto alla mancanza di listener, limiti del backlog o del peer che rifiuta attivamente la richiesta di connessione. Il tentativo di connessione può essere riprovato.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
 
STATUS_IO_TIMEOUT
La richiesta non è riuscita perché la richiesta di connessione è stata timeout. Il tentativo di connessione può essere riprovato. I valori di timeout vengono selezionati dai provider Di rete diretta per corrispondere alle rispettive caratteristiche di rete.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
 
STATUS_ADDRESS_ALREADY_EXISTS
La richiesta non è riuscita perché esiste già una connessione con la combinazione di indirizzi locali, porta locale, indirizzo remoto e porta remota.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
 
Altri codici di stato
Si è verificato un errore.

Commenti

NdkConnectWithSharedEndpoint avvia una richiesta di connessione da un indirizzo locale condiviso a un indirizzo remoto specifico. NdkConnectWithSharedEndpoint consente a un consumer NDK di usare lo stesso indirizzo locale (ad esempio 10.1.1.1.9999) per molte connessioni in uscita quando gli indirizzi di destinazione per le connessioni sono diversi.

Requisiti

Requisito Valore
Client minimo supportato Nessuna supportata, supportata in NDIS 6.30 e versioni successive.
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Windows
Intestazione ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Vedi anche

Requisiti di durata dell'oggetto ND KPI

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP

NDK_SHARED_ENDPOINT