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 コードを返します。
リターン コード | 形容 |
---|---|
|
接続要求が正常に完了しました。 |
|
操作は保留中であり、後で完了します。 ドライバーは、指定した RequestCompletion (NDK_FN_REQUEST_COMPLETION) 関数を呼び出して、保留中の操作を完了します。 |
|
リソースが不足しているため、要求が失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
リモート ネットワークに到達できなかったため、要求は失敗しました。 接続の試行は再試行できます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
リモート ホスト システムに到達できなかったため、要求が失敗しました。 接続の試行は再試行できます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
リモート システムが接続要求を拒否したため、要求が失敗しました。 これは、リスナーの不足、バックログの制限、または接続要求をアクティブに拒否しているピアが原因である可能性があります。 接続の試行は再試行できます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
接続要求がタイムアウトしたため、要求は失敗しました。接続の試行が再試行される可能性があります。 タイムアウト値は、それぞれのネットワーク特性に合わせてネットワーク ダイレクト プロバイダーによって選択されます。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
指定されたローカル アドレスが既に使用されているため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
指定されたローカル アドレスがアダプターの有効なアドレスではないため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
コンシューマーがローカル ポート番号 0 を指定し、ネットワーク ダイレクト プロバイダーが一時ポート領域 (ポート 49152 から 65535) からポートを割り当てられなかったため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
ローカル アドレス、ローカル ポート、リモート アドレス、およびリモート ポートの組み合わせとの接続が既に存在するため、要求は失敗しました。
重要な 要求は、この状態コードを使用してインラインで、また非同期的に失敗する可能性があります。
|
|
エラーが発生しました。 |
備考
NdkConnect 、ローカル アドレスからリモート アドレスへの接続要求を開始します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされる最小サーバー | Windows Server 2012 |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | ndkpi.h (Ndkpi.h を含む) |
IRQL | <=DISPATCH_LEVEL |