NDK_FN_CREATE_CQ コールバック関数 (ndkpi.h)
NdkCreateCq (NDK_FN_CREATE_CQ) 関数は、NDK 完了キュー (CQ) オブジェクトを作成します。
構文
NDK_FN_CREATE_CQ NdkFnCreateCq;
NTSTATUS NdkFnCreateCq(
[in] NDK_ADAPTER *pNdkAdapter,
[in] ULONG CqDepth,
[in] NDK_FN_CQ_NOTIFICATION_CALLBACK CqNotification,
[in, optional] PVOID CqNotificationContext,
[in, optional] GROUP_AFFINITY *Affinity,
[in] NDK_FN_CREATE_COMPLETION CreateCompletion,
[in, optional] PVOID RequestContext,
NDK_CQ **ppNdkCq
)
{...}
パラメーター
[in] pNdkAdapter
NDK アダプター オブジェクト (NDK_ADAPTER) へのポインター。
[in] CqDepth
CQ が保持できる完了エントリの最大数。 この値は、NDK_ADAPTER_INFO構造体で指定された MaxCqDepth 値以下である必要があります。
[in] CqNotification
要求の完了が CQ でキューに登録されたときにプロバイダーがコンシューマーに通知するために使用する NdkCqNotificationCallback 関数 (NDK_FN_CQ_NOTIFICATION_CALLBACK) へのポインター。 コンシューマーが NdkArmCq (NDK_FN_ARM_CQ) 関数を使用して通知を行わない限り、プロバイダーは NdkCqNotificationCallback を呼び出しません。
[in, optional] CqNotificationContext
NDK プロバイダーが CqNotification パラメーターで指定された NdkCqNotificationCallback 関数に返すコンテキスト値。
[in, optional] Affinity
コンシューマーが NdkCqNotificationCallback コールバックの実行を選択する優先プロセッサを提供するアフィニティ マスク (GROUP_AFFINITY)。 基になるハードウェアで許可されている場合、プロバイダーはプロセッサの基本設定を優先する必要がありますが、 コンシューマーは、NdkCqNotificationCallback コールバックが優先プロセッサでのみ発生すると想定することはできません。 優先プロセッサがない場合は、 Affinity を NULL に設定します。
[in] CreateCompletion
NDK オブジェクトの作成を完了する NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 関数へのポインター。
[in, optional] RequestContext
NDK プロバイダーが CreateCompletion パラメーターで指定された NdkCreateCompletion 関数に戻すコンテキスト値。
ppNdkCq
STATUS_PENDINGを返さずに要求が成功した場合は、この場所に完了キュー (CQ) オブジェクト (NDK_CQ) へのポインターが返されます。 NdkCreateCq が STATUS_PENDINGを返す場合、このパラメーターは無視され、CreateCompletion パラメーターで指定されたコールバックを使用して作成されたオブジェクトが返されます。
戻り値
NDK_FN_CREATE_CQ関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
CQ オブジェクトが正常に作成され、 *ppNdkCq パラメーターを指定して返されました。 |
|
操作は保留中であり、後で完了します。 プロバイダーは、 CreateCompletion パラメーター (NDK_FN_CREATE_COMPLETION) で指定された関数を呼び出して、保留中の操作を完了します。 |
|
要求された CqDepth 値が、NDK_ADAPTER_INFO構造体で指定されている MaxCqDepth 値より大きいため、要求は失敗しました。 |
|
リソースが不足しているため、要求は失敗しました。
大事な 要求はインラインで失敗し、この状態コードを使用して非同期的に失敗する可能性があります。
|
|
エラーが発生しました。 |
解説
NdkCreateCq 関数は、NDK 完了キュー (CQ) オブジェクトを作成します。 関数が STATUS_SUCCESSを返す場合、作成されたオブジェクトは ppNdkCq パラメーターで返されます。 NdkCreateCq がSTATUS_PENDINGを返す場合、CreateCompletion パラメーターで指定された NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 関数によって作成されたオブジェクトが返されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | Windows |
ヘッダー | ndkpi.h (Ndkpi.h を含む) |
IRQL | <=DISPATCH_LEVEL |