次の方法で共有


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

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

[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 つのイニシエーター要求でサポートできる 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 パラメーターで指定されたコールバックと共に返されます。

戻り値

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
ターゲット プラットフォーム ウィンドウズ
ヘッダー ndkpi.h (Ndkpi.h を含む)
IRQL <=DISPATCH_LEVEL

関連項目

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

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT