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

NdkCreateQp (NDK_FN_CREATE_QP) 関数は、NDK キュー ペア (QP) オブジェクトを作成します。

構文

NDK_FN_CREATE_QP NdkFnCreateQp;

NTSTATUS NdkFnCreateQp(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in, optional] PVOID QPContext,
  [in]           ULONG ReceiveQueueDepth,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [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, optional] QPContext

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

[in] ReceiveQueueDepth

QP で未処理の受信要求の最大数。 この値は、NDK_ADAPTER_INFO構造体の MaxReceiveQueueDepth メンバーの値以下である必要があります。

[in] InitiatorQueueDepth

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

[in] MaxReceiveRequestSge

1 つの受信要求でサポートできる SGEs の最大数。 この値は、NDK_ADAPTER_INFO構造体の MaxReceiveRequestSge メンバーの値以下である必要があります。

[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

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

戻り値

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

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

解説

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

関数がSTATUS_SUCCESSを返す場合、作成されたオブジェクトは ppNdkQp パラメーターで返されます。 NdkCreateQp が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