NDK_FN_GET_CONNECTION_DATA Rückruffunktion (ndkpi.h)

Die Funktion NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) ruft Lesegrenzwerte und die vom Peer gesendeten privaten Daten ab.

Syntax

NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;

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

Parameter

[in] pNdkConnector

Ein Zeiger auf ein NDK-Connectorobjekt (NDK_CONNECTOR).

[out, optional] pInboundReadLimit

Die maximale Anzahl von eingehenden laufenden Lesevorgängen, die für den QP zulässig sind, wird an diesem Speicherort zurückgegeben.

[out, optional] pOutboundReadLimit

Die maximale Anzahl von ausgehenden laufenden Lesevorgängen, die für die QP zulässig sind, wird an diesem Speicherort zurückgegeben.

pPrivateData

Ein Zeiger auf private Daten, die zurückgegeben werden.

pPrivateDataLength

Die Länge der privaten Daten in Bytes, die im pPrivateData-Parameter bereitgestellt werden.

Hinweis Der Ausgabewert gibt nicht die tatsächliche Länge der im Puffer gespeicherten privaten Daten an. NDK-Consumer müssen das Format und die Länge der tatsächlichen privaten Daten aushandeln. Weitere Informationen zu privaten Daten finden Sie im Abschnitt Hinweise.
 

Rückgabewert

Die NdkGetConnectionData-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_BUFFER_TOO_SMALL
Der Wert im *pPrivateDataLength-Parameter gibt eine Puffergröße an, die zu klein war, um die privaten Verbindungsdaten zu speichern. *pPrivateDataLength wird mit der erforderlichen Größe aktualisiert.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Die NdkGetConnectionData-Funktion ruft die vom Peer gesendeten privaten Daten mit Verbindungs-, Annahme- oder Ablehnungsanforderungen und den effektiven Grenzwerten für eingehende und ausgehende Lesevorgänge ab. Diese Werte werden von den angeforderten Werten der lokalen und Remotepeers und den maximalen Grenzwerten des Anbieters abgeleitet.

Ein NDK-Consumer kann NdkGetConnectionData für ein Connectorobjekt aufrufen, das an die NDK_FN_CONNECT_EVENT_CALLBACK-Funktion übergeben wurde, um auf die privaten Daten und die effektiven IRD-Werte (IRD) und ord (Ausgangsleselimit) zuzugreifen.

Um auf die privaten Daten und die effektiven IRD- und ORD-Werte von der passiven Seite zuzugreifen, kann der Consumer NdkGetConnectionData für ein Connectorobjekt aufrufen, für das NDK_FN_CONNECT oder NDK_FN_CONNECT_WITH_SHARED_ENDPOINT erfolgreich abgeschlossen wurde. Ein NDK-Consumer ruft diese Funktion nicht auf, nachdem er die NDK_FN_ACCEPT-Funktion auf der passiven Seite oder die NDK_FN_COMPLETE_CONNECT-Funktion auf der aktiven Seite aufgerufen hat.

Wenn der pPrivateData-Parameter NULL und *pPrivateDataLength null ist, muss ein NDK-Anbieter STATUS_SUCCESS zurückgeben und die erforderliche größe des privaten Datenpuffers (RDS) in *pPrivateDataLength speichern.

Hinweis Die erforderliche Größe des privaten Datenpuffers (Private Data Buffer, RDS) gibt nicht an, dass der Peer so viele private Daten gesendet hat. Der NDK-Consumer muss auf beiden Seiten über ein gemeinsames Schema verfügen, damit das empfangende Ende feststellen kann, ob private Daten im privaten Datenpuffer vorhanden sind oder nicht. Das RDS kann für jede Verbindung unterschiedlich sein.
 
Wenn pPrivateData NULL und *pPrivateDataLength größer als 0 ist, ist dies eine ungültige Anforderung. Ein Consumer darf dies niemals tun.

Wenn pPrivateData nicht NULL ist, muss der Anbieter die privaten Daten in den Puffer bei pPrivateData kopieren, bis zum kleineren Wert von *pPrivateDataLength oder RDS in Bytes.

Wenn *pPrivateDataLength größer oder gleich RDS ist, muss der Anbieter STATUS_SUCCESS zurückgeben. Andernfalls muss der Anbieter STATUS_BUFFER_TOO_SMALL zurückgeben. In beiden Fällen muss der Anbieter das RDS in *pPrivateDataLength speichern, bevor er zurückgibt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Keine unterstützt, unterstützt in NDIS 6.30 und höher.
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Windows
Kopfzeile ndkpi.h (Ndkpi.h einschließen)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH