NDK_FN_CONNECT_WITH_SHARED_ENDPOINT Rückruffunktion (ndkpi.h)
Die NdkConnectWithSharedEndpoint- (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT) initiiert eine NDK-Verbindungsanforderung von einer freigegebenen lokalen Adresse an eine Remoteadresse.
Syntax
NDK_FN_CONNECT_WITH_SHARED_ENDPOINT NdkFnConnectWithSharedEndpoint;
NTSTATUS NdkFnConnectWithSharedEndpoint(
[in] NDK_CONNECTOR *pNdkConnector,
[in] NDK_QP *pNdkQp,
[in] NDK_SHARED_ENDPOINT *pNdkSharedEndpoint,
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.
[in] pNdkSharedEndpoint
Ein Zeiger auf ein freigegebenes NDK-Endpunktobjekt (NDK_SHARED_ENDPOINT), das die lokale Adresse für die Verbindung bestimmt.
pDestAddress
Eine Zieladresse. Für AF_INET oder AF_INET6 pDestAddress ist die Ziel-IP-Adresse und der Ziel-ND-Port.
[in] DestAddressLength
Die Größe der Zieladressendaten in Bytes an der 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 funktion NdkConnectWithSharedEndpoint gibt einen der folgenden NTSTATUS-Codes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Verbindungsanforderung wurde erfolgreich abgeschlossen. |
|
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. |
|
Fehler bei der Anforderung aufgrund unzureichender Ressourcen.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
|
|
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.
|
|
Fehler bei der Anforderung, da das Remotesystem nicht erreichbar war. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann inline und asynchron mit diesem Statuscode fehlschlagen.
|
|
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.
|
|
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.
|
|
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.
|
|
Fehler. |
Bemerkungen
NdkConnectWithSharedEndpoint initiiert eine Verbindungsanforderung von einer freigegebenen lokalen Adresse an eine bestimmte Remoteadresse. NdkConnectWithSharedEndpoint ermöglicht es einem NDK-Consumer, dieselbe lokale Adresse (z. B. 10.1.1.1.1:9999) für viele ausgehende Verbindungen zu verwenden, wenn die Zieladressen für die Verbindungen unterschiedlich sind.
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