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 関数 (NDK_FN_GET_CONNECTION_DATA) を呼び出すことによって、有効な OutboundReadLimit を取得できます。

[_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) を提供します。

NdkConnectEventCallback 関数は、各受信接続要求についてコンシューマーに通知するために、NDK プロバイダーによって使用されます。

要件

要件
サポートされている最小のクライアント 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