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

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

[out, optional] pOutboundReadLimit

Il numero massimo di operazioni di lettura in uscita in corso da consentire nel 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 riuscita.
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.

Commenti

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

Per accedere ai dati privati e ai valori IRD (Inbound Read Limit) effettivi e 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 cui 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 del buffer dei dati private necessarie in *pPrivateDataLength.

Nota Le dimensioni richieste del buffer dei dati privati (RDS) non indicano che il peer ha inviato tali dati privati. Il consumer NDK deve, in entrambe le estremità, disporre di uno schema comune per consentire al destinatario di determinare se sono presenti dati privati o meno nel buffer dei dati privati. RdS 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 farlo.

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 RDS in *pPrivateDataLength prima di restituire.

Requisiti

Requisito Valore
Client minimo supportato None supported,Supported in NDIS 6.30 and later.
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Windows
Intestazione ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Vedi anche

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH