次の方法で共有


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

QPContext この QP 経由でポストされるすべての要求の NDK_RESULT 構造体のメンバーで返されるコンテキスト値。

[in] InitiatorQueueDepth

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

[in] MaxInitiatorRequestSge

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

[in] InlineDataSize

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

[in] CreateCompletion

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

[in, optional] RequestContext

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

ppNdkQp

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

戻り値

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

リターン コード 形容
STATUS_SUCCESS
QP オブジェクトが正常に作成され、*ppNdkQp パラメーターで返されました。
STATUS_PENDING
操作は保留中であり、後で完了します。 プロバイダーは、CreateCompletion パラメーター (NDK_FN_CREATE_COMPLETION) で指定された関数を呼び出して、保留中の操作を完了します。
STATUS_INVALID_PARAMETER
要求された InitiatorQueueDepth、MaxInitiatorRequestSge 、または 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
ターゲット プラットフォーム ウィンドウズ
ヘッダー 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