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 |
---|---|
|
La richiesta di connessione è stata completata correttamente. |
|
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. |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 |