NDK_FN_GET_CONNECTION_DATA回调函数 (ndkpi.h)
NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) 函数获取读取限制值和对等方发送的私有数据。
语法
NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;
NTSTATUS NdkFnGetConnectionData(
[in] NDK_CONNECTOR *pNdkConnector,
[out, optional] ULONG *pInboundReadLimit,
[out, optional] ULONG *pOutboundReadLimit,
PVOID pPrivateData,
ULONG *pPrivateDataLength
)
{...}
参数
[in] pNdkConnector
指向 NDK 连接器对象的指针 (NDK_CONNECTOR) 。
[out, optional] pInboundReadLimit
在此位置返回对 QP 允许的传入正在进行的读取操作的最大数目。
[out, optional] pOutboundReadLimit
在此位置返回允许对 QP 执行的最大传出正在进行的读取操作数。
pPrivateData
指向返回的私有数据的指针。
pPrivateDataLength
pPrivateData 参数中提供的私有数据的长度(以字节为单位)。
返回值
NdkGetConnectionData 函数返回以下 NTSTATUS 代码之一。
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
*pPrivateDataLength 参数中的值指定的缓冲区大小太小,无法保存连接专用数据。 *pPrivateDataLength 更新为所需大小。 |
|
出现了错误。 |
注解
NdkGetConnectionData 函数获取由具有连接、接受或拒绝请求以及有效入站和出站读取限制值的对等方发送的专用数据。 这些值派生自本地和远程对等方请求的值以及提供程序的最大限制。
若要从活动端访问私有数据和有效的入站读取限制 (IRD) 和出站读取限制 (ORD) 值,NDK 使用者可以为传递给 NDK_FN_CONNECT_EVENT_CALLBACK 函数的连接器对象调用 NdkGetConnectionData。
若要从被动端访问私有数据以及有效的 IRD 和 ORD 值,使用者可以为NDK_FN_CONNECT或NDK_FN_CONNECT_WITH_SHARED_ENDPOINT成功完成的连接器对象调用 NdkGetConnectionDataNDK_FN_COMPLETE_CONNECTNDK_FN_ACCEPT。
如果 pPrivateData 参数为 NULL 且 *pPrivateDataLength 为零,则 NDK 提供程序必须返回STATUS_SUCCESS并将所需的专用数据缓冲区大小 (RDS) 存储在 *pPrivateDataLength 中。
如果 pPrivateData 不为 NULL,则提供程序必须将专用数据复制到 pPrivateData 的缓冲区,最大为 *pPrivateDataLength 或 RDS (以字节为单位)。
如果 *pPrivateDataLength 大于或等于 RDS,则提供程序必须返回STATUS_SUCCESS。 否则,提供程序必须返回STATUS_BUFFER_TOO_SMALL。 在这两种情况下,提供程序必须在返回之前将 RDS 存储在 *pPrivateDataLength 中。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 不支持,NDIS 6.30 及更高版本支持。 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | Windows |
标头 | ndkpi.h (包括 Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |