NDK_FN_CREATE_QP_WITH_SRQ回调函数 (ndkpi.h)

NdkCreateQpWithSrq (NDK_FN_CREATE_QP_WITH_SRQ) 函数使用 NDK 共享接收队列 (SRQ) 对象创建一个 NDK 队列对 (QP) 对象。

语法

NDK_FN_CREATE_QP_WITH_SRQ NdkFnCreateQpWithSrq;

NTSTATUS NdkFnCreateQpWithSrq(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in]           NDK_SRQ *pSrq,
  [in, optional] PVOID QPContext,
  [in]           ULONG InitiatorQueueDepth,
  [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) 的指针,用于 (NDK_CQ) 接收 请求完成。

[in] pInitiatorCq

指向要用于发起方请求完成的 CQ 的指针。

[in] pSrq

指向 NDK 共享接收队列的指针, (SRQ) 对象 (NDK_SRQ) 来发布接收请求。

[in, optional] QPContext

要在此 QP 上发布的所有请求的 NDK_RESULT 结构的 QPContext 成员中返回的上下文值。

[in] InitiatorQueueDepth

可通过 QP 完成的最大发起程序请求数。 此值必须小于或等于 NDK_ADAPTER_INFO 结构的 MaxInitiatorQueueDepth 成员中的值。

[in] MaxInitiatorRequestSge

单个发起程序请求中可支持的最大 SGE 数。 此值必须小于或等于 NDK_ADAPTER_INFO 结构的 MaxInitiatorRequestSge 成员中的值。

[in] InlineDataSize

可在单个发送或写入请求中发送的最大内联数据量(以字节为单位)。 此值必须小于或等于 NDK_ADAPTER_INFO 结构的 MaxInlineDataSize 成员中的值。

[in] CreateCompletion

指向 NdkCreateCompletion (NDK_FN_CREATE_COMPLETION 完成 NDK 对象的创建) 函数的指针。

[in, optional] RequestContext

NDK 提供程序传递回 CreateCompletion 参数中指定的 NdkCreateCompletion 函数的上下文值。

ppNdkQp

如果请求成功但不返回STATUS_PENDING,则会在此位置返回指向已创建的 QP 对象的指针 (NDK_QP) 。 如果请求返回STATUS_PENDING则忽略此参数,并使用 CreateCompletion 参数中指定的回调返回创建的对象。

返回值

NdkCreateQpWithSrq 函数返回以下 NTSTATUS 代码之一。

返回代码 说明
STATUS_SUCCESS
QP 对象已成功创建,并返回了 *ppNdkQp 参数。
STATUS_PENDING
操作处于挂起状态,稍后将完成。 提供程序将调用 CreateCompletion 参数中指定的函数 (NDK_FN_CREATE_COMPLETION) 来完成挂起的操作。
STATUS_INVALID_PARAMETER
请求失败,因为请求的 InitiatorQueueDepthMaxInitiatorRequestSgeInlineDataSize 不在 NDK_ADAPTER_INFO 结构中指定的限制内。
STATUS_INSUFFICIENT_RESOURCES
由于资源不足,请求失败。
重要 请求可能会内联失败,也可能会以异步方式失败,并显示此状态代码。
 
其他状态代码
出现了错误。

注解

NdkCreateQpWithSrq 函数 (QP) 对象创建一个 NDK 队列对,该对象具有共享接收队列 (SRQ) 。 QP 由接收队列和发起方队列组成。 接收队列用于发布接收请求。 发起方队列用于启动发送、绑定、快速注册、读取、写入和使请求失效。

如果函数返回STATUS_SUCCESS,则会在 ppNdkQp 参数中返回创建的对象。 如果 NdkCreateQpWithSrq 返回STATUS_PENDING,则创建的 对象由 NdkCreateCompletion (NDK_FN_CREATE_COMPLETIONcreateCompletion 参数中指定的) 函数返回。

要求

要求
最低受支持的客户端 不支持,在 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

NDK_SRQ