次の方法で共有


NDK_FN_CONNECTコールバック関数 (ndkpi.h)

NdkConnect (NDK_FN_CONNECT) 関数は、NDK 接続要求を開始します。

構文

NDK_FN_CONNECT NdkFnConnect;

NTSTATUS NdkFnConnect(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
                                            const PSOCKADDR pSrcAddress,
  [in]                                      ULONG SrcAddressLength,
  [in]                                      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
)
{...}

パラメーター

[in] pNdkConnector

NDK コネクタ オブジェクト (NDK_CONNECTOR) へのポインター。

[in] pNdkQp

接続に関連付ける NDK キュー ペア (QP) オブジェクト (NDK_QP) へのポインター。

pSrcAddress

送信元アドレス。 AF_INETまたは AF_INET6 pSrcAddress の場合は、ソース IP アドレスとソース ND ポートです。

[in] SrcAddressLength

pSrcAddress パラメーターのソース アドレス データのサイズ (バイト単位)。

[in] pDestAddress

宛先アドレス。 AF_INETまたは AF_INET6 pDestAddress の場合は、宛先 IP アドレスと送信元 ND ポートです。

[in] DestAddressLength

pDestAddress パラメーターの宛先アドレス データのサイズ (バイト単位)。

[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] RequestCompletion

NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION) 要求完了コールバック ルーチンへのポインター。

[in, optional] RequestContext

RequestCompletion パラメーターで指定されたコールバック関数の Context パラメーターに渡すコンテキスト値。

戻り値

NdkConnect 関数は、次のいずれかの NTSTATUS コードを返します。

リターン コード 形容
STATUS_SUCCESS
接続要求が正常に完了しました。
STATUS_PENDING
操作は保留中であり、後で完了します。 ドライバーは、指定した RequestCompletion (NDK_FN_REQUEST_COMPLETION) 関数を呼び出して、保留中の操作を完了します。
STATUS_INSUFFICIENT_RESOURCES
リソースが不足しているため、要求が失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_NETWORK_UNREACHABLE
リモート ネットワークに到達できなかったため、要求は失敗しました。 接続の試行は再試行できます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_HOST_UNREACHABLE
リモート ホスト システムに到達できなかったため、要求が失敗しました。 接続の試行は再試行できます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_CONNECTION_REFUSED
リモート システムが接続要求を拒否したため、要求が失敗しました。 これは、リスナーの不足、バックログの制限、または接続要求をアクティブに拒否しているピアが原因である可能性があります。 接続の試行は再試行できます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_IO_TIMEOUT
接続要求がタイムアウトしたため、要求は失敗しました。接続の試行が再試行される可能性があります。 タイムアウト値は、それぞれのネットワーク特性に合わせてネットワーク ダイレクト プロバイダーによって選択されます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_SHARING_VIOLATION
指定されたローカル アドレスが既に使用されているため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_INVALID_ADDRESS
指定されたローカル アドレスがアダプターの有効なアドレスではないため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_TOO_MANY_ADDRESSES
コンシューマーがローカル ポート番号 0 を指定し、ネットワーク ダイレクト プロバイダーが一時ポート領域 (ポート 49152 から 65535) からポートを割り当てられなかったため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
STATUS_ADDRESS_ALREADY_EXISTS
ローカル アドレス、ローカル ポート、リモート アドレス、およびリモート ポートの組み合わせとの接続が既に存在するため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
 
その他の状態コードの
エラーが発生しました。

備考

NdkConnect 、ローカル アドレスからリモート アドレスへの接続要求を開始します。

必要条件

要件 価値
サポートされる最小クライアント サポートされていません。NDIS 6.30 以降でサポートされています。
サポートされる最小サーバー Windows Server 2012
ターゲット プラットフォーム ウィンドウズ
ヘッダー ndkpi.h (Ndkpi.h を含む)
IRQL <=DISPATCH_LEVEL

関連項目

NDKPI オブジェクトの有効期間の要件

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_DISCONNECT

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP