NDK_FN_SEND コールバック関数 (ndkpi.h)
NdkSend (NDK_FN_SEND) 関数は、NDK キュー ペア (QP) に送信要求を投稿します。
構文
NDK_FN_SEND NdkFnSend;
NTSTATUS NdkFnSend(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags
)
{...}
パラメーター
[in] pNdkQp
NDK キュー ペア (QP) オブジェクト (NDK_QP) へのポインター。
[in, optional] RequestContext
この要求のNDK_RESULT構造体の RequestContext メンバーで返されるコンテキスト値。
pSgl
送信するデータを保持するバッファーを表す SGE 構造体 (NDK_SGE) の配列。
[in] nSge
pSgl パラメーターで指定された配列内の SGE 構造体の数。
[in] Flags
許可される操作を指定するフラグのビットごとの OR。 次のフラグがサポートされています。
値 | 意味 |
---|---|
|
この要求が正常に完了しても、送信完了キューに完了イベントが生成されないことを示します。 ただし、失敗した要求では、完了キューにイベントが生成されます。 |
|
ハードウェアがこの要求の処理を開始する前に、以前のすべての読み取り要求を完了する必要があることを示します。 |
|
ピアの完了キューが通知を生成することを示します。 NDK_OP_FLAG_SEND_AND_SOLICIT_EVENTの詳細については、「解説」セクションを参照してください。 |
|
SGEs によって参照されるメモリをインラインで転送する必要があることを示します。 また、NDK_SGEエントリの MemoryRegionToken 値が無効である可能性があります。 インライン要求では、キュー ペアの作成時に指定された MaxInitiatorRequestSge 値に SGE リスト内のエントリの数を制限する必要はありません。 インラインで転送されるメモリの量は、キュー ペアのインライン データ制限内にある必要があります。 |
|
NDK プロバイダーに対して、処理のためにハードウェアへの要求を示すのを延期する可能性があることを示します。 このフラグの詳細については、「 NDKPI 遅延処理スキーム」を参照してください。
メモこのフラグは、NDKPI 1.2 (Windows Server 2012 R2) 以降でのみサポートされます。 |
戻り値
NdkSend 関数は、次の NTSTATUS コードのいずれかを返します。
リターン コード | 説明 |
---|---|
|
送信要求が正常に投稿されました。 作業要求が完了すると、完了エントリは完了キュー (CQ) にキューに入れられます。 |
|
キュー ペア (QP) が接続されていません。 |
|
エラーが発生しました。 |
解説
NdkSend は、キュー ペア (QP) に送信要求を投稿します。
関連する複数の送信要求を発行する場合は、 NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT フラグを使用できます。 関連する送信要求のグループの最後の要求に対して、このフラグを設定します。
NDK コンシューマーは、関連する複数の送信要求を発行するときに、このフラグを使用できます。 NDK コンシューマーは、最後の関連する送信要求にのみこのフラグを設定します。 ピアは、すべての送信要求を通常どおりに受信します。 ただし、ピアが最後の送信要求 ( NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT フラグが設定された要求) を受信すると、ピアの完了キューによって通知が生成されます。 通知は、受信要求が完了した後に生成されます。 このフラグは、受信者が通知の種類が NDK_CQ_NOTIFY_SOLICITED に設定された NdkArmCq (NDK_FN_ARM_CQ) 関数を以前に呼び出していない限り、受信者 (ピア ) には意味がありません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | Windows |
ヘッダー | ndkpi.h (Ndkpi.h を含む) |
IRQL | <=DISPATCH_LEVEL |