次の方法で共有


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

NdkCreateQpWithSrq (NDK_FN_CREATE_QP_WITH_SRQ) 関数は、NDK 共有受信キュー (SRQ) オブジェクトを持つ NDK キュー ペア (QP) オブジェクトを作成します。

構文

NDK_FN_CREATE_QP_WITH_SRQ NdkFnCreateQpWithSrq;

NTSTATUS NdkFnCreateQpWithSrq(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in]           NDK_SRQ *pSrq,
  [in, optional] PVOID QPContext,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxInitiatorRequestSge,
  [in]           ULONG InlineDataSize,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_QP **ppNdkQp
)
{...}

パラメーター

[in] pNdkPd

NDK 保護ドメイン (PD) オブジェクト (NDK_PD) へのポインター。

[in] pReceiveCq

受信要求の完了 (NDK_CQ) に使用する完了キュー (CQ) へのポインター。

[in] pInitiatorCq

イニシエーター要求の完了に使用する CQ へのポインター。

[in] pSrq

受信要求を投稿する NDK 共有受信キュー (SRQ) オブジェクト (NDK_SRQ) へのポインター。

[in, optional] QPContext

この QP に対してポストされるすべての要求について、NDK_RESULT構造体の QPContext メンバーで返されるコンテキスト値。

[in] InitiatorQueueDepth

QP で未処理にできるイニシエーター要求の最大数。 この値は、NDK_ADAPTER_INFO構造体の MaxInitiatorQueueDepth メンバーの値以下である必要があります。

[in] MaxInitiatorRequestSge

1 つのイニシエーター要求でサポートできる SG の最大数。 この値は、NDK_ADAPTER_INFO構造体の MaxInitiatorRequestSge メンバーの値以下である必要があります。

[in] InlineDataSize

1 回の送信または書き込み要求で送信できるインライン データの最大量 (バイト単位)。 この値は、NDK_ADAPTER_INFO構造体の MaxInlineDataSize メンバーの値以下である必要があります。

[in] CreateCompletion

NDK オブジェクトの作成を完了する NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 関数へのポインター。

[in, optional] RequestContext

NDK プロバイダーが CreateCompletion パラメーターで指定された NdkCreateCompletion 関数に戻すコンテキスト値。

ppNdkQp

要求がSTATUS_PENDINGを返さずに成功した場合、作成された QP オブジェクト (NDK_QP) へのポインターがこの場所に返されます。 要求が STATUS_PENDINGを返す場合、このパラメーターは無視され、 CreateCompletion パラメーターで指定されたコールバックを使用して作成されたオブジェクトが返されます。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
QP オブジェクトが正常に作成され、 *ppNdkQp パラメーターを指定して返されました。
STATUS_PENDING
操作は保留中であり、後で完了します。 プロバイダーは、 CreateCompletion パラメーター (NDK_FN_CREATE_COMPLETION) で指定された関数を呼び出して、保留中の操作を完了します。
STATUS_INVALID_PARAMETER
要求された InitiatorQueueDepthMaxInitiatorRequestSge 、または InlineDataSize、NDK_ADAPTER_INFO 構造体で指定されている制限内にないため、要求は失敗しました。
STATUS_INSUFFICIENT_RESOURCES
リソースが不足しているため、要求は失敗しました。
大事な 要求はインラインで失敗し、この状態コードを使用して非同期的に失敗する可能性があります。
 
その他の状態コード
エラーが発生しました。

解説

NdkCreateQpWithSrq 関数は、共有受信キュー (SRQ) を持つ NDK キュー ペア (QP) オブジェクトを作成します。 QP は、受信キューとイニシエーター キューで構成されます。 受信キューは、受信要求を投稿するために使用されます。 イニシエーター キューは、送信、バインド、高速登録、読み取り、書き込み、無効化の要求を開始するために使用されます。

関数が STATUS_SUCCESSを返す場合、作成されたオブジェクトは ppNdkQp パラメーターで返されます。 NdkCreateQpWithSrq がSTATUS_PENDINGを返す場合、CreateCompletion パラメーターで指定された NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 関数によって作成されたオブジェクトが返されます。

要件

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

こちらもご覧ください

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

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT

NDK_SRQ