NDK_FN_CONNECT_WITH_SHARED_ENDPOINT Rückruffunktion (ndkpi.h)
Die Funktion 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-Connectorobjekt (NDK_CONNECTOR).
[in] pNdkQp
Ein Zeiger auf ein QP-Objekt (NDK-Warteschlangenpaar) (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 die Ziel-IP-Adresse und der Ziel-ND-Port.
[in] DestAddressLength
Die Größe der Zieladressendaten am Parameter pDestAddress. in Bytes.
[in] InboundReadLimit
Die vom Consumer bereitgestellte maximale Anzahl eingehender in Bearbeitung ausgeführter Lesevorgänge, die für die QP zulässig sind. Wenn der zugrunde liegende Anbieter über einen niedrigeren MaxInboundReadLimit-Wert in der NDK_ADAPTER_INFO-Struktur verfügt, begrenzt der Anbieter den vom Consumer bereitgestellten Wert auf das Anbietermaximum. Wenn der Peer einen niedrigeren Wert für OutboundReadLimit aufweist, verwendet der Anbieter diesen Wert als effektives InboundReadLimit. Der Consumer kann das effektive InboundReadLimit abrufen, indem er die Funktion NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) aufruft.
[in] OutboundReadLimit
Die vom Consumer bereitgestellte maximale Anzahl ausgehender Lesevorgänge, die für den QP zugelassen werden sollen. Wenn der zugrunde liegende Anbieter einen niedrigeren MaxOutboundReadLimit-Wert in der NDK_ADAPTER_INFO-Struktur aufweist, begrenzt der Anbieter den angegebenen Consumerwert auf das Anbietermaximum. Wenn der Peer ein niedrigeres InboundReadLimit aufweist, verwendet der Anbieter diesen Wert als effektives OutboundReadLimit. Der Consumer kann das effektive OutboundReadLimit abrufen, indem er die NdkGetConnectionData-Funktion (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 in Bytes, die im pPrivateData-Parameter bereitgestellt werden.
[in] RequestCompletion
Ein Zeiger auf eine Rückrufroutine für die Anforderungsvervollständigung NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).
[in, optional] RequestContext
Ein Kontextwert, der an den Context-Parameter der Rückruffunktion übergeben werden soll, der im RequestCompletion-Parameter angegeben ist.
Rückgabewert
Die NdkConnectWithSharedEndpoint-Funktion 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-Funktion (NDK_FN_REQUEST_COMPLETION) auf, um den ausstehenden Vorgang abzuschließen. |
|
Fehler bei der Anforderung aufgrund unzureichender Ressourcen.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
|
|
Die Anforderung ist fehlgeschlagen, weil das Remotenetzwerk nicht erreichbar war. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
|
|
Fehler bei der Anforderung, weil das Remotesystem nicht erreichbar war. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
|
|
Die Anforderung ist fehlgeschlagen, weil das Remotesystem die Verbindungsanforderung abgelehnt hat. Dies kann auf fehlende Listener, Backloggrenzwerte oder die aktive Ablehnung der Verbindungsanforderung durch den Peer zurückzuführen sein. Der Verbindungsversuch kann wiederholt werden.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
|
|
Bei der Anforderung ist ein Fehler aufgetreten, da für die Verbindungsanforderung ein Timeout aufgetreten ist. Der Verbindungsversuch kann wiederholt werden. Timeoutwerte werden von Network Direct-Anbietern so ausgewählt, dass sie ihren jeweiligen Netzwerkeigenschaften entsprechen.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
|
|
Die Anforderung ist fehlgeschlagen, da bereits eine Verbindung mit der Kombination aus lokaler Adresse, lokalem Port, Remoteadresse und Remoteport vorhanden ist.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
|
|
Ein Fehler ist aufgetreten. |
Hinweise
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:9999) für viele ausgehende Verbindungen zu verwenden, wenn sich die Zieladressen für die Verbindungen unterscheiden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Keine unterstützt, wird in NDIS 6.30 und höher unterstützt. |
Unterstützte Mindestversion (Server) | Windows Server 2012 |
Zielplattform | Windows |
Kopfzeile | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |