NDK_FN_CONNECT funzione di callback (ndkpi.h)
La funzione NdkConnect (NDK_FN_CONNECT) avvia una richiesta di connessione NDK.
Sintassi
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
)
{...}
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.
pSrcAddress
Indirizzo di origine. Per AF_INET o AF_INET6 pSrcAddress è l'indirizzo IP di origine e la porta ND di origine.
[in] SrcAddressLength
Dimensioni, in byte, dei dati dell'indirizzo di origine nel parametro pSrcAddress .
[in] pDestAddress
Indirizzo di destinazione. Per AF_INET o AF_INET6 pDestAddress è l'indirizzo IP di destinazione e la porta ND di origine .
[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 NdkConnect 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. È possibile ripetere il tentativo di connessione.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
|
|
La richiesta non è riuscita perché il sistema host remoto non è raggiungibile. È possibile ripetere il tentativo di connessione.
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. È possibile ripetere il tentativo di connessione.
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é l'indirizzo locale specificato è già in uso.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
|
|
La richiesta non è riuscita perché l'indirizzo locale specificato non è un indirizzo valido per l'adapter.
Importante La richiesta può non riuscire inline e in modo asincrono con questo codice di stato.
|
|
La richiesta non è riuscita perché il consumer ha specificato un numero di porta locale pari a zero e il provider Network Direct non è riuscito a allocare una porta dallo spazio della porta temporaneo (porte 49152-65535).
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
NdkConnect avvia una richiesta di connessione da un indirizzo locale a un indirizzo remoto.
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 |