NDK_FN_CONNECT_WITH_SHARED_ENDPOINT función de devolución de llamada (ndkpi.h)
La función NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT) inicia una solicitud de conexión de NDK desde una dirección local compartida a una dirección remota.
Sintaxis
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
)
{...}
Parámetros
[in] pNdkConnector
Puntero a un objeto de conector NDK (NDK_CONNECTOR).
[in] pNdkQp
Puntero a un objeto de par de cola NDK (QP) (NDK_QP) que se va a asociar a la conexión.
[in] pNdkSharedEndpoint
Puntero a un objeto de punto de conexión compartido NDK (NDK_SHARED_ENDPOINT) que determina la dirección local de la conexión.
pDestAddress
Una dirección de destino. Para AF_INET o AF_INET6 pDestAddress es la dirección IP de destino y el puerto ND de destino.
[in] DestAddressLength
Tamaño, en bytes, de los datos de dirección de destino en el parámetro pDestAddress.
[in] InboundReadLimit
Número máximo proporcionado por el consumidor de operaciones de lectura entrantes en curso que se permiten en el QP. Si el proveedor subyacente tiene un valor MaxInboundReadLimit inferior en la estructura de NDK_ADAPTER_INFO , el proveedor limitará el valor proporcionado por el consumidor al máximo del proveedor. Si el elemento del mismo nivel tiene un valor OutboundReadLimit inferior, el proveedor usará ese valor como inboundReadLimit efectivo. El consumidor puede recuperar inboundReadLimit efectivo llamando a la función NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).
[in] OutboundReadLimit
El número máximo proporcionado por el consumidor de las operaciones de lectura en curso salientes para permitir en el QP. Si el proveedor subyacente tiene un valor MaxOutboundReadLimit inferior en la estructura de NDK_ADAPTER_INFO , el proveedor limitará el valor proporcionado por el consumidor al máximo del proveedor. Si el elemento del mismo nivel tiene un valor InboundReadLimit inferior, el proveedor usará ese valor como OutboundReadLimit efectivo. El consumidor puede recuperar el outboundReadLimit efectivo llamando a la función NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).
[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData
Puntero a datos privados que se envían con la solicitud de conexión.
[in] PrivateDataLength
Longitud, en bytes, de los datos privados que se proporcionan en el parámetro pPrivateData .
[in] RequestCompletion
Puntero a una rutina de devolución de llamada de finalización de solicitudes NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).
[in, optional] RequestContext
Valor de contexto que se va a pasar al parámetro Context de la función de devolución de llamada especificada en el parámetro RequestCompletion .
Valor devuelto
La función NdkConnectWithSharedEndpoint devuelve uno de los siguientes códigos NTSTATUS.
Código devuelto | Descripción |
---|---|
|
La solicitud de conexión se completó correctamente. |
|
La operación está pendiente y se completará más adelante. El controlador llamará a la función RequestCompletion (NDK_FN_REQUEST_COMPLETION) especificada para completar la operación pendiente. |
|
Error en la solicitud debido a recursos insuficientes.
Importante La solicitud puede producir un error en línea, así como de forma asincrónica con este código de estado.
|
|
Error en la solicitud porque no se pudo acceder a la red remota. Es posible que se vuelva a intentar el intento de conexión.
Importante La solicitud puede producir un error en línea, así como de forma asincrónica con este código de estado.
|
|
Error en la solicitud porque no se pudo acceder al sistema remoto. Es posible que se vuelva a intentar el intento de conexión.
Importante La solicitud puede producir un error en línea, así como de forma asincrónica con este código de estado.
|
|
Error en la solicitud porque el sistema remoto rechazó la solicitud de conexión. Esto puede deberse a la falta de clientes de escucha, límites de trabajo pendiente o al mismo nivel que rechaza activamente la solicitud de conexión. Es posible que se vuelva a intentar el intento de conexión.
Importante La solicitud puede producir un error en línea, así como de forma asincrónica con este código de estado.
|
|
Error en la solicitud porque se agota el tiempo de espera de la solicitud de conexión. Es posible que se vuelva a intentar el intento de conexión. Los proveedores de Network Direct seleccionan los valores de tiempo de espera para que coincidan con sus respectivas características de red.
Importante La solicitud puede producir un error en línea, así como de forma asincrónica con este código de estado.
|
|
Error en la solicitud porque ya existe una conexión con la combinación de dirección local, puerto local, dirección remota y puerto remoto.
Importante La solicitud puede producir un error en línea, así como de forma asincrónica con este código de estado.
|
|
Se produjo un error. |
Comentarios
NdkConnectWithSharedEndpoint inicia una solicitud de conexión desde una dirección local compartida a una dirección remota específica. NdkConnectWithSharedEndpoint permite a un consumidor de NDK usar la misma dirección local (por ejemplo, 10.1.1.1:9999) para muchas conexiones salientes cuando las direcciones de destino de las conexiones son diferentes.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Ninguno compatible, compatible con NDIS 6.30 y versiones posteriores. |
Servidor mínimo compatible | Windows Server 2012 |
Plataforma de destino | Windows |
Encabezado | ndkpi.h (incluya Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |