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

要用於接收要求完成的 CQ (CQ) 指標, (NDK_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

單一接收要求中可支援的 SGE 數目上限。 這個值必須小於或等於 NDK_ADAPTER_INFO 結構 之 MaxReceiveRequestSge 成員中的值。

[in] MaxInitiatorRequestSge

單一啟動器要求中可支援的 SGE 數目上限。 這個值必須小於或等於 NDK_ADAPTER_INFO 結構之 MaxInitiatorRequestSge 成員中的值。

[in] InlineDataSize

可在單一傳送或寫入要求中傳送的最大內嵌數據位元組量。 此值必須小於或等於 NDK_ADAPTER_INFO 結構之 MaxInlineDataSize 成員中的值。

[in] CreateCompletion

完成建立 NDK 物件的 NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 函式的指標。

[in, optional] RequestContext

NDK 提供者傳回至 CreateCompletion 參數中指定的 NdkCreateCompletion 函式的內容值。

ppNdkQp

如果要求成功而未傳回STATUS_PENDING,則會傳回所建立 QP 物件的指標 (NDK_QP) 。 如果要求傳回STATUS_PENDING,則會忽略此參數,並使用 CreateCompletion 參數中指定的回呼傳回已建立的物件。

傳回值

NdkCreateQp 函式會傳回下列其中一個NTSTATUS代碼。

傳回碼 Description
STATUS_SUCCESS
QP 物件已成功建立,並使用 *ppNdkQp 參數傳回。
STATUS_PENDING
作業擱置中,稍後將會完成。 提供者會呼叫 CreateCompletion 參數中指定的函式, (NDK_FN_CREATE_COMPLETION) 來完成擱置作業。
STATUS_INVALID_PARAMETER
要求失敗,因為要求的 ReceiveQueueDepth、InitiatorQueueDepthMaxReceiveRequestSgeMaxInitiatorRequestSgeInlineDataSize 不在NDK_ADAPTER_INFO 結構中指定的限制內。
STATUS_INSUFFICIENT_RESOURCES
要求失敗,因為資源不足。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
 
其他狀態代碼
發生錯誤。

備註

NdkCreateQp 函式會在 QP) 物件 (建立 NDK 佇列組。 QP 是由接收佇列和啟動器佇列所組成。 接收佇列用來張貼接收要求。 啟動器佇列用於起始傳送、系結、快速註冊、讀取、寫入和無效的要求。

如果函式傳回STATUS_SUCCESS,則會在 ppNdkQp 參數中傳回建立的物件。 如果 NdkCreateQp 傳回STATUS_PENDING,則 NdkCreateCompletion (NDK_FN_CREATE_COMPLETION createCompletion 參數中指定的 ) 函式傳回所建立的物件。

規格需求

需求
最低支援的用戶端 不支援,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