Condividi tramite


NDK_FN_GET_CONNECTION_DATA funzione di callback (ndkpi.h)

La funzione NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) ottiene i valori limite di lettura e i dati privati inviati dal peer.

Sintassi

NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;

NTSTATUS NdkFnGetConnectionData(
  [in]            NDK_CONNECTOR *pNdkConnector,
  [out, optional] ULONG *pInboundReadLimit,
  [out, optional] ULONG *pOutboundReadLimit,
                  PVOID pPrivateData,
                  ULONG *pPrivateDataLength
)
{...}

Parametri

[in] pNdkConnector

Puntatore a un oggetto connettore NDK (NDK_CONNECTOR).

[out, optional] pInboundReadLimit

In questa posizione viene restituito il numero massimo di operazioni di lettura in ingresso da consentire sul QP.

[out, optional] pOutboundReadLimit

Il numero massimo di operazioni di lettura in uscita in corso da consentire sul QP viene restituito in questa posizione.

pPrivateData

Puntatore a dati privati restituiti.

pPrivateDataLength

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

Nota Il valore di output non indica la lunghezza effettiva dei dati privati archiviati nel buffer. I consumer NDK devono negoziare il formato e la lunghezza dei dati privati effettivi. Per altre informazioni sui dati privati, vedere la sezione Osservazioni.
 

Valore restituito

La funzione NdkGetConnectionData restituisce uno dei codici NTSTATUS seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
Operazione completata correttamente.
STATUS_BUFFER_TOO_SMALL
Il valore nel parametro *pPrivateDataLength ha specificato una dimensione del buffer troppo piccola per contenere i dati privati della connessione. *pPrivateDataLength viene aggiornato con le dimensioni necessarie.
Altri codici di stato
Si è verificato un errore.

Osservazioni

La funzione NdkGetConnectionData ottiene i dati privati inviati dal peer con connessioni, accettare o rifiutare le richieste e i valori effettivi del limite di lettura in ingresso e in uscita. Questi valori sono derivati dai valori richiesti dai peer locali e remoti e dai limiti massimi del provider.

Per accedere ai dati privati e al limite di lettura in ingresso effettivo (IRD) e ai valori ORD (Outbound Read Limit) dal lato attivo, un consumer NDK può chiamare NdkGetConnectionData per un oggetto connettore passato alla funzione NDK_FN_CONNECT_EVENT_CALLBACK.

Per accedere ai dati privati e ai valori IRD e ORD effettivi dal lato passivo, il consumer può chiamare NdkGetConnectionData per un oggetto connettore per il quale NDK_FN_CONNECT o NDK_FN_CONNECT_WITH_SHARED_ENDPOINT completato correttamente Un consumer NDK non chiamerà questa funzione dopo che chiama la funzione NDK_FN_ACCEPT sul lato passivo o la funzione NDK_FN_COMPLETE_CONNECT sul lato attivo.

Se il parametro pPrivateData è NULL e *pPrivateDataLength è zero, un provider NDK deve restituire STATUS_SUCCESS e archiviare le dimensioni necessarie del buffer dei dati privati (RDS) in *pPrivateDataLength.

Nota La dimensione del buffer dati privato richiesta (RDS) non indica che il peer ha inviato tali dati privati. Il consumer NDK deve, in entrambe le estremità, disporre di uno schema comune per consentire alla fine della ricezione di determinare se sono presenti dati privati o meno nel buffer di dati privati. Il di Servizi Desktop remoto potrebbe essere diverso per ogni connessione.
 
Se pPrivateData è NULL e *pPrivateDataLength è maggiore di zero, si tratta di una richiesta non valida. Un consumer non deve mai eseguire questa operazione.

Se pPrivateData non è NULL, il provider deve copiare i dati privati nel buffer in pPrivateData fino al più piccolo di *pPrivateDataLength o RDS in byte.

Se *pPrivateDataLength è maggiore o uguale a rds, il provider deve restituire STATUS_SUCCESS. In caso contrario, il provider deve restituire STATUS_BUFFER_TOO_SMALL. In entrambi i casi, il provider deve archiviare il rds in *pPrivateDataLength prima di restituire.

Fabbisogno

Requisito Valore
client minimo supportato Nessuna supportata, supportata in NDIS 6.30 e versioni successive.
server minimo supportato Windows Server 2012
piattaforma di destinazione Finestre
intestazione ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Vedere anche

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH