Freigeben über


NDK_FN_CONNECT Rückruffunktion (ndkpi.h)

Die NdkConnect- (NDK_FN_CONNECT) initiiert eine NDK-Verbindungsanforderung.

Syntax

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
)
{...}

Parameter

[in] pNdkConnector

Ein Zeiger auf ein NDK-Verbinderobjekt (NDK_CONNECTOR).

[in] pNdkQp

Ein Zeiger auf ein NDK-Warteschlangenpaar (QP)-Objekt (NDK_QP), das der Verbindung zugeordnet werden soll.

pSrcAddress

Eine Quelladresse. Für AF_INET oder AF_INET6 pSrcAddress ist die Ip-Quelladresse und der Quell-ND-Port.

[in] SrcAddressLength

Die Größe der Quelladressendaten im pSrcAddress-Parameter in Byte.

[in] pDestAddress

Eine Zieladresse. Für AF_INET oder AF_INET6 pDestAddress ist die Ziel-IP-Adresse und der Quell-ND-Port.

[in] DestAddressLength

Die Größe der Zieladressendaten in Byte am pDestAddress Parameter.

[in] InboundReadLimit

Die vom Verbraucher bereitgestellte maximale Anzahl eingehender in Bearbeitung ausgeführter Lesevorgänge, die für den QP zulässig sind. Wenn der zugrunde liegende Anbieter einen niedrigeren MaxInboundReadLimit Wert in der NDK_ADAPTER_INFO-Struktur aufweist, wird der vom Anbieter bereitgestellte Wert auf den Maximalwert des Anbieters begrenzt. Wenn der Peer einen niedrigeren OutboundReadLimit-wert hat, verwendet der Anbieter diesen Wert als effektiven InboundReadLimit-. Der Consumer kann die effektive InboundReadLimit- abrufen, indem die funktion NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) aufgerufen wird.

[in] OutboundReadLimit

Die vom Verbraucher bereitgestellte maximale Anzahl ausgehender laufender Lesevorgänge, die für den QP zulässig sind. Wenn der zugrunde liegende Anbieter einen niedrigeren MaxOutboundReadLimit- Wert in der NDK_ADAPTER_INFO-Struktur aufweist, wird der vom Anbieter angegebene Wert für den Anbieter maximal begrenzt. Wenn der Peer einen niedrigeren InboundReadLimit-hat, verwendet der Anbieter diesen Wert als effektive OutboundReadLimit. Der Consumer kann das effektive OutboundReadLimit- abrufen, indem er die funktion NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) aufruft.

[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData

Ein Zeiger auf private Daten, die mit der Verbindungsanforderung gesendet werden.

[in] PrivateDataLength

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

[in] RequestCompletion

Ein Zeiger auf eine Anforderungsabschlussrückrufroutine NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).

[in, optional] RequestContext

Ein Kontextwert, der an den parameter Context der Rückruffunktion übergeben werden soll, die im RequestCompletion Parameter angegeben ist.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Verbindungsanforderung wurde erfolgreich abgeschlossen.
STATUS_PENDING
Der Vorgang steht aus und wird später abgeschlossen. Der Treiber ruft die angegebene RequestCompletion (NDK_FN_REQUEST_COMPLETION) -Funktion auf, um den ausstehenden Vorgang abzuschließen.
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Anforderung aufgrund unzureichender Ressourcen.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_NETWORK_UNREACHABLE
Fehler bei der Anforderung, da das Remotenetzwerk nicht erreichbar war. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_HOST_UNREACHABLE
Fehler bei der Anforderung, da das Remotehostsystem nicht erreichbar war. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_CONNECTION_REFUSED
Fehler bei der Anforderung, da das Remotesystem die Verbindungsanforderung abgelehnt hat. Dies kann auf mangelnde Listener-, Backlog-Beschränkungen oder das aktive Ablehnen der Verbindungsanforderung zurückzuführen sein. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_IO_TIMEOUT
Fehler bei der Anforderung, weil die Verbindungsanforderung ein Timeout aufgetreten ist. Der Verbindungsversuch kann wiederholt werden. Timeoutwerte werden von Netzwerk direct-Anbietern ausgewählt, um ihren jeweiligen Netzwerkmerkmalen zu entsprechen.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_SHARING_VIOLATION
Fehler bei der Anforderung, da die angegebene lokale Adresse bereits verwendet wird.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_INVALID_ADDRESS
Fehler bei der Anforderung, da die angegebene lokale Adresse keine gültige Adresse für den Adapter ist.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_TOO_MANY_ADDRESSES
Fehler bei der Anforderung, da der Consumer eine lokale Portnummer von Null angegeben hat, und der Netzwerk direct-Anbieter konnte keinen Port aus dem kurzlebigen Portraum (Ports 49152-65535) zuordnen.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
STATUS_ADDRESS_ALREADY_EXISTS
Fehler bei der Anforderung, da bereits eine Verbindung mit der Kombination aus lokaler Adresse, lokaler Port, Remoteadresse und Remoteport besteht.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
 
Andere Statuscodes
Fehler.

Bemerkungen

NdkConnect initiiert eine Verbindungsanforderung von einer lokalen Adresse an eine Remoteadresse.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Keine unterstützt,in NDIS 6.30 und höher unterstützt.
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Fenster
Header- ndkpi.h (include Ndkpi.h)
IRQL- <=DISPATCH_LEVEL

Siehe auch

anforderungen für NDKPI-Objektlebensdauer

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_DISCONNECT

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP