NDK_FN_ACCEPT_EX回调函数 (ndkpi.h)

NdkAcceptEx (NDK_FN_ACCEPT_EX) 函数接受通过侦听器对象的传入连接请求。

语法

NDK_FN_ACCEPT_EX NdkFnAcceptEx;

NTSTATUS NdkFnAcceptEx(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
  [in]                                      ULONG InboundReadLimit,
  [in]                                      ULONG OutboundReadLimit,
  [_In_reads_bytes_opt_(PrivateDataLength)] const PVOID pPrivateData,
  [in]                                      ULONG PrivateDataLength,
  [in, optional]                            NDK_FN_DISCONNECT_EVENT_CALLBACK_EX DisconnectEvent,
  [in, optional]                            PVOID DisconnectEventContext,
  [in]                                      NDK_FN_REQUEST_COMPLETION RequestCompletion,
  [in, optional]                            PVOID RequestContext
)
{...}

参数

[in] pNdkConnector

指向 NDK 连接器对象的指针 (NDK_CONNECTOR) 。

[in] pNdkQp

指向 NDK 队列对的指针, (QP) 对象 (要与连接关联的 NDK_QP) 。

[in] InboundReadLimit

在 QP 上允许的使用者提供的最大传入正在进行的读取操作数。 如果基础提供程序在 NDK_ADAPTER_INFO 结构中具有较低的 MaxInboundReadLimit 值,则提供程序会将使用者提供的值限制为提供程序最大值。 如果对等方具有较低的 OutboundReadLimit 值,则提供程序将使用该值作为有效的 InboundReadLimit。 使用者可以通过调用 NdkGetConnectionData 函数 (NDK_FN_GET_CONNECTION_DATA) 来检索有效的 InboundReadLimit

[in] OutboundReadLimit

在 QP 上允许的使用者提供的最大传出正在进行的读取操作数。 如果基础提供程序在 NDK_ADAPTER_INFO 结构中具有较低的 MaxOutboundReadLimit 值,则提供程序会将使用者提供的值限制为提供程序最大值。 如果对等方具有较低的 InboundReadLimit,则提供程序将使用该值作为有效的 OutboundReadLimit。 使用者可以通过调用 NdkGetConnectionData 函数来检索有效的 OutboundReadLimit (NDK_FN_GET_CONNECTION_DATA) 。

[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData

使用接受请求发送回的专用数据。

[in] PrivateDataLength

pPrivateData 参数中提供的私有数据的长度(以字节为单位)。

[in, optional] DisconnectEvent

可选断开连接通知回调函数 NdkDisconnectEventCallbackEx NDK_FN_DISCONNECT_EVENT_CALLBACK_EX的入口点。 当对等断开连接时,提供程序会调用此回调函数。

[in, optional] DisconnectEventContext

要传递给 DisconnectEvent 参数中指定的回调函数的 DisconnectEventContext 参数的上下文值。

[in] RequestCompletion

指向请求完成回调例程 NdkRequestCompletion 的指针 (NDK_FN_REQUEST_COMPLETION) 。

[in, optional] RequestContext

要传递给 RequestCompletion 参数中指定的回调函数的 Context 参数的上下文值。

返回值

NDK_FN_ACCEPT_EX 函数返回以下 NTSTATUS 代码之一。

返回代码 说明
STATUS_SUCCESS 操作已成功完成。
STATUS_PENDING 操作处于挂起状态,稍后将完成。 驱动程序将调用指定的 RequestCompletion (NDK_FN_REQUEST_COMPLETION) 函数来完成挂起的操作。
STATUS_CONNECTION_ABORTED 连接对等方放弃了挂起的连接建立。
STATUS_IO_TIMEOUT 对等方没有调用 CompleteConnect (NDK_FN_COMPLETE_CONNECT_EX) 函数来完成挂起的连接请求。
其他状态代码 出现了错误。

注解

NDK 使用者调用 NdkAcceptEx 以接受通过侦听器对象的传入连接请求。

NdkCreateListener (NDK_FN_CREATE_LISTENER) 函数创建 NDK 侦听器对象并提供 NdkConnectEventCallback 函数 (NDK_FN_CONNECT_EVENT_CALLBACK) 。

NDK 提供程序使用 NdkConnectEventCallback 函数通知使用者每个传入的连接请求。

要求

要求
最低受支持的客户端 在 NDKPI 2.1 及更高版本中受支持。
最低受支持的服务器 Windows Server 2022
目标平台 Windows
标头 ndkpi.h (包括 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另请参阅

NDK_FN_DISCONNECT_EVENT_CALLBACK_EX

NDK_FN_COMPLETE_CONNECT_EX

NDKPI 对象生存期要求

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_CONNECT_EVENT_CALLBACK

NDK_FN_CREATE_LISTENER

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REJECT

NDK_FN_REQUEST_COMPLETION

NDK_QP