NDK_FN_READ コールバック関数 (ndkpi.h)
NdkRead (NDK_FN_READ) 関数は、NDK キュー ペア (QP) に読み取り要求を投稿します。
構文
NDK_FN_READ NdkFnRead;
NTSTATUS NdkFnRead(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] UINT64 RemoteAddress,
[in] UINT32 RemoteToken,
[in] ULONG Flags
)
{...}
パラメーター
[in] pNdkQp
NDK キュー ペア (QP) オブジェクト (NDK_QP) へのポインター。
[in, optional] RequestContext
この要求のNDK_RESULT構造体の RequestContext メンバーで返されるコンテキスト値。
pSgl
受信データを配置するバッファーを表す SGE 構造体 (NDK_SGE) の配列。
[in] nSge
pSgl パラメーターで指定された配列内の SGE 構造体の数。
[in] RemoteAddress
ローカル ホストのバイト順に表示されるから読み取るリモート アドレス。 NDK コンシューマーは、リモートで指定された値にオフセットを追加できます。
[in] RemoteToken
NDK コンシューマーからのバイトの不透明な配列であるリモートで提供されるメモリ トークン。
[in] Flags
許可される操作を指定するフラグのビットごとの OR。 次のフラグがサポートされています。
値 | 意味 |
---|---|
|
この要求が正常に完了しても、送信完了キューに完了イベントが生成されないことを示します。 ただし、失敗した要求では、完了キューにイベントが生成されます。 |
|
ハードウェアがこの要求の処理を開始する前に、以前のすべての読み取り要求を完了する必要があることを示します。 |
|
このフラグが設定され、プロバイダーがNDK_ADAPTER_INFO構造体NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTEDアダプター機能も報告する場合、NdkRead 関数が正常に完了すると、pSgl パラメーターで指定された最初のバッファーが無効になります。 失敗した完了により、バッファーとトークンは未定義の状態になります。 プロバイダーがNDK_ADAPTER_INFO構造のアダプター機能NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED報告しない場合、このフラグは無視されます。
メモこのフラグは、NDKPI 1.2 (Windows Server 2012 R2) 以降でのみサポートされます。 |
|
NDK プロバイダーに対して、処理のためにハードウェアへの要求を示す遅延が発生する可能性があることを示します。 このフラグの詳細については、「 NDKPI 遅延処理スキーム」を参照してください。
メモこのフラグは、NDKPI 1.2 (Windows Server 2012 R2) 以降でのみサポートされます。 |
戻り値
NdkRead 関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
要求が正常に投稿されました。 作業要求が完了すると、完了エントリが CQ にキューに入れられます。 |
|
QP が接続されていません。 |
|
要求がリモート メモリのサイズを超えて読み取ろうとしました。 |
|
エラーが発生しました。 |
解説
NdkRead は、キュー ペア (QP) に読み取り要求を投稿します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | Windows |
ヘッダー | ndkpi.h (Ndkpi.h を含む) |
IRQL | <=DISPATCH_LEVEL |