NDK_FN_CREATE_SRQ回调函数 (ndkpi.h)

NdkCreateSrq (NDK_FN_CREATE_SRQ) 函数 (SRQ) 对象创建 NDK 共享接收队列。

语法

NDK_FN_CREATE_SRQ NdkFnCreateSrq;

NTSTATUS NdkFnCreateSrq(
  [in]           NDK_PD *pNdkPd,
  [in]           ULONG SrqDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [in]           ULONG NotifyThreshold,
  [in, optional] NDK_FN_SRQ_NOTIFICATION_CALLBACK SrqNotification,
  [in, optional] PVOID SrqNotificationContext,
  [in, optional] GROUP_AFFINITY *Affinity,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_SRQ **ppNdkSrq
)
{...}

参数

[in] pNdkPd

指向 NDK 保护域的指针 (PD) 对象 (NDK_PD) 。

[in] SrqDepth

可通过 SRQ 完成的最大接收请求数。 此值必须小于或等于在 NDK_ADAPTER_INFO 结构中指定的 MaxSrqDepth 成员中的值。

[in] MaxReceiveRequestSge

单个接收请求中支持的最大 SGE 数。 此值必须小于或等于在 NDK_ADAPTER_INFO 结构中指定的 MaxReceiveRequestSge 成员中的值。

[in] NotifyThreshold

触发 SRQ 通知回调的排队接收请求的最小数量。

[in, optional] SrqNotification

可选的 NdkSrqNotificationCallback 函数 (NDK_FN_SRQ_NOTIFICATION_CALLBACK) ,如果排队的接收请求计数低于 NotifyThreshold 参数中指定的阈值,提供程序会调用该函数。

[in, optional] SrqNotificationContext

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

[in, optional] Affinity

关联掩码 (GROUP_AFFINITY) ,指定使用者将选择运行 NdkSrqNotificationCallback 回调的首选处理器。 如果其基础硬件允许,提供程序应遵循处理器首选项,但使用者不能假定 NdkSrqNotificationCallback 回调将仅在首选处理器上发生。 如果没有首选处理器,请将 Affinity 设置为 NULL。

[in] CreateCompletion

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

[in, optional] RequestContext

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

ppNdkSrq

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

返回值

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

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

注解

NdkCreateSrq 函数 (SRQ) 对象创建 NDK 共享接收队列。 如果函数返回STATUS_SUCCESS,则会在 ppNdkSrq 参数中返回创建的对象。 如果 NdkCreateSrq 返回STATUS_PENDING,则创建的 对象由 NdkCreateCompletion (NDK_FN_CREATE_COMPLETIONcreateCompletion 参数中指定的) 函数返回。

要求

要求
最低受支持的客户端 不支持,在 NDIS 6.30 及更高版本中受支持。
最低受支持的服务器 Windows Server 2012
目标平台 Windows
标头 ndkpi.h (包括 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另请参阅

GROUP_AFFINITY

NDKPI 对象生存期要求

NDK_ADAPTER_INFO

NDK_FN_CREATE_COMPLETION

NDK_FN_SRQ_NOTIFICATION_CALLBACK

NDK_PD

NDK_SRQ