NDK_FN_CREATE_CQ callback function (ndkpi.h)
The NdkCreateCq (NDK_FN_CREATE_CQ) function creates an NDK completion queue (CQ) object.
Syntax
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
)
{...}
Parameters
[in] pNdkAdapter
A pointer to an NDK adapter object (NDK_ADAPTER).
[in] CqDepth
The maximum number of completion entries that the CQ can hold. This value must be less than or equal to the MaxCqDepth value that is specified in the NDK_ADAPTER_INFO structure.
[in] CqNotification
A pointer to the NdkCqNotificationCallback function (NDK_FN_CQ_NOTIFICATION_CALLBACK) that the provider uses to notify the consumer when request completions are queued in the CQ. The provider will not call NdkCqNotificationCallback unless the consumer arms the notification with the NdkArmCq (NDK_FN_ARM_CQ) function.
[in, optional] CqNotificationContext
A context value that the NDK provider passes back to the NdkCqNotificationCallback function that is specified in the CqNotification parameter.
[in, optional] Affinity
An affinity mask (GROUP_AFFINITY) that provides preferred processors that the consumer would choose to run the NdkCqNotificationCallback callbacks. Providers should honor the processor preferences if their underlying hardware allows it, but consumers cannot assume that NdkCqNotificationCallback callbacks will occur only on the preferred processors. Set Affinity to NULL if there are no preferred processors.
[in] CreateCompletion
A pointer to an NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) function that completes the creation of an NDK object.
[in, optional] RequestContext
A context value that the NDK provider passes back to the NdkCreateCompletion function that is specified in the CreateCompletion parameter.
ppNdkCq
A pointer to a completion queue (CQ) object (NDK_CQ) is returned in this location if the request succeeds without returning STATUS_PENDING. If NdkCreateCq returns STATUS_PENDING this parameter is ignored and the created object is returned with the callback that is specified in the CreateCompletion parameter.
Return value
The NDK_FN_CREATE_CQ function returns one of the following NTSTATUS codes.
Return code | Description |
---|---|
|
The CQ object was created successfully and returned with the *ppNdkCq parameter. |
|
The operation is pending and will be completed later. The provider will call the function specified in the CreateCompletion parameter(NDK_FN_CREATE_COMPLETION) to complete the pending operation. |
|
The request failed because the requested CqDepth value is greater than the MaxCqDepth value that is specified in the NDK_ADAPTER_INFO structure. |
|
The request failed due to insufficient resources.
Important The request can fail inline as well as asynchronously with this status code.
|
|
An error occurred. |
Remarks
The NdkCreateCq function creates an NDK completion queue (CQ) object. If the function returns STATUS_SUCCESS, the created object is returned in the ppNdkCq parameter. If NdkCreateCq returns STATUS_PENDING, the created object is returned by the NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) function that is specified in the CreateCompletion parameter.
Requirements
Requirement | Value |
---|---|
Minimum supported client | None supported,Supported in NDIS 6.30 and later. |
Minimum supported server | Windows Server 2012 |
Target Platform | Windows |
Header | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
See also
NDKPI Object Lifetime Requirements