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