NDK_FN_GET_CONNECTION_DATA función de devolución de llamada (ndkpi.h)

La función NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) obtiene valores de límite de lectura y los datos privados enviados por el mismo nivel.

Sintaxis

NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;

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

Parámetros

[in] pNdkConnector

Puntero a un objeto de conector NDK (NDK_CONNECTOR).

[out, optional] pInboundReadLimit

El número máximo de operaciones de lectura entrantes en curso que se permiten en el QP se devuelve en esta ubicación.

[out, optional] pOutboundReadLimit

El número máximo de operaciones de lectura en curso salientes para permitir en el QP se devuelve en esta ubicación.

pPrivateData

Puntero a datos privados que se devuelven.

pPrivateDataLength

Longitud, en bytes, de los datos privados que se proporcionan en el parámetro pPrivateData .

Nota El valor de salida no indica la longitud real de los datos privados almacenados en el búfer. Los consumidores de NDK deben negociar el formato y la longitud de los datos privados reales. Para obtener más información sobre los datos privados, vea la sección Comentarios.
 

Valor devuelto

La función NdkGetConnectionData devuelve uno de los siguientes códigos NTSTATUS.

Código devuelto Descripción
STATUS_SUCCESS
La operación se ha completado correctamente.
STATUS_BUFFER_TOO_SMALL
El valor del parámetro *pPrivateDataLength especificó un tamaño de búfer demasiado pequeño para contener los datos privados de conexión. *pPrivateDataLength se actualiza con el tamaño necesario.
Otros códigos de estado
Se produjo un error.

Comentarios

La función NdkGetConnectionData obtiene los datos privados enviados por el mismo nivel con solicitudes de conexión, aceptación o rechazo y los valores efectivos de límite de lectura de entrada y salida. Estos valores se derivan de los valores solicitados de los pares locales y remotos y los límites máximos del proveedor.

Para acceder a los datos privados y a los valores efectivos de límite de lectura de entrada (IRD) y de límite de lectura saliente (ORD) del lado activo, un consumidor de NDK puede llamar a NdkGetConnectionData para un objeto de conector que se pasó a la función NDK_FN_CONNECT_EVENT_CALLBACK .

Para acceder a los datos privados y los valores de IRD y ORD efectivos desde el lado pasivo, el consumidor puede llamar a NdkGetConnectionData para un objeto de conector para el que NDK_FN_CONNECT o NDK_FN_CONNECT_WITH_SHARED_ENDPOINT completado correctamente Un consumidor NDK no llamará a esta función después de llamar a la función NDK_FN_ACCEPT en el lado pasivo o la función NDK_FN_COMPLETE_CONNECT en el lado activo.

Si el parámetro pPrivateData es NULL y *pPrivateDataLength es cero, un proveedor de NDK debe devolver STATUS_SUCCESS y almacenar el tamaño de búfer de datos privado necesario (RDS) en *pPrivateDataLength.

Nota El tamaño de búfer de datos privados (RDS) necesario no indica que el elemento del mismo nivel ha enviado tantos datos privados. El consumidor de NDK debe, en ambos extremos, tener un esquema común para permitir que el extremo receptor determine si hay datos privados o no en el búfer de datos privados. RdS puede ser diferente para cada conexión.
 
Si pPrivateData es NULL y *pPrivateDataLength es mayor que cero, se trata de una solicitud no válida. Un consumidor nunca debe hacerlo.

Si pPrivateData no es NULL, el proveedor debe copiar los datos privados en el búfer en pPrivateData hasta el menor de *pPrivateDataLength o RDS en bytes.

Si *pPrivateDataLength es mayor o igual que RDS, el proveedor debe devolver STATUS_SUCCESS. De lo contrario, el proveedor debe devolver STATUS_BUFFER_TOO_SMALL. En ambos casos, el proveedor debe almacenar el RDS en *pPrivateDataLength antes de devolverlo.

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

Consulte también

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH