NDK_FN_CREATE_QP回调函数 (ndkpi.h)
NdkCreateQp (NDK_FN_CREATE_QP) 函数 (QP) 对象创建 NDK 队列对。
语法
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) ,用于接收请求完成 (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
单个发起程序请求中可支持的最大 SG 数。 此值必须小于或等于 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 参数中指定的回调返回创建的对象。
返回值
NdkCreateQp 函数返回以下 NTSTATUS 代码之一。
返回代码 | 说明 |
---|---|
|
已成功创建 QP 对象,并使用 *ppNdkQp 参数返回。 |
|
操作处于挂起状态,稍后将完成。 提供程序将调用 CreateCompletion 参数中指定的函数 (NDK_FN_CREATE_COMPLETION) 来完成挂起的操作。 |
|
请求失败,因为请求的 ReceiveQueueDepth、 InitiatorQueueDepth、 MaxReceiveRequestSge、 MaxInitiatorRequestSge 或 InlineDataSize 不在 NDK_ADAPTER_INFO 结构中指定的限制内。 |
|
由于资源不足,请求失败。
重要 请求可能会因此状态代码而以异步方式内联失败。
|
|
出现了错误。 |
注解
NdkCreateQp 函数 (QP) 对象创建 NDK 队列对。 QP 由接收队列和发起程序队列组成。 接收队列用于发布接收请求。 发起程序队列用于启动发送、绑定、快速注册、读取、写入和使请求失效。
如果函数返回STATUS_SUCCESS,则会在 ppNdkQp 参数中返回创建的对象。 如果 NdkCreateQp 返回STATUS_PENDING,则创建的对象由 NdkCreateCompletion (NDK_FN_CREATE_COMPLETIONcreateCompletion 参数中指定的) 函数返回。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 不支持,NDIS 6.30 及更高版本支持。 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | Windows |
标头 | ndkpi.h (包括 Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |