функция обратного вызова NDK_FN_CREATE_CQ (ndkpi.h)

Функция NdkCreateCq (NDK_FN_CREATE_CQ) создает объект очереди завершения NDK (CQ).

Синтаксис

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
)
{...}

Параметры

[in] pNdkAdapter

Указатель на объект адаптера NDK (NDK_ADAPTER).

[in] CqDepth

Максимальное количество записей завершения, которые может хранить CQ. Это значение должно быть меньше или равно значению MaxCqDepth , указанному в структуре NDK_ADAPTER_INFO .

[in] CqNotification

Указатель на функцию NdkCqNotificationCallback (NDK_FN_CQ_NOTIFICATION_CALLBACK), которую поставщик использует для уведомления потребителя, когда завершение запроса помещается в очередь в CQ. Поставщик не будет вызывать NdkCqNotificationCallback , если потребитель не предоставит уведомление с помощью функции NdkArmCq (NDK_FN_ARM_CQ).

[in, optional] CqNotificationContext

Значение контекста, которое поставщик NDK передает обратно в функцию NdkCqNotificationCallback , указанную в параметре CqNotification .

[in, optional] Affinity

Маска сходства (GROUP_AFFINITY), которая предоставляет предпочтительные процессоры, которые потребитель выберет для выполнения обратных вызовов NdkCqNotificationCallback . Поставщики должны учитывать предпочтения процессора, если это позволяет их базовое оборудование, но потребители не могут предполагать, что обратные вызовы NdkCqNotificationCallback будут выполняться только на предпочтительных процессорах. Задайте для параметра Affinity значение NULL, если нет предпочтительных процессоров.

[in] CreateCompletion

Указатель на функцию NdkCreateCompletion (NDK_FN_CREATE_COMPLETION), которая завершает создание объекта NDK.

[in, optional] RequestContext

Значение контекста, которое поставщик NDK передает обратно в функцию NdkCreateCompletion , указанную в параметре CreateCompletion .

ppNdkCq

Указатель на объект очереди завершения (CQ) (NDK_CQ) возвращается в этом расположении, если запрос завершается успешно, не возвращая STATUS_PENDING. Если NdkCreateCq возвращает STATUS_PENDING этот параметр игнорируется, а созданный объект возвращается с обратным вызовом, указанным в параметре CreateCompletion .

Возвращаемое значение

Функция NDK_FN_CREATE_CQ возвращает один из следующих кодов NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Объект CQ был успешно создан и возвращен с параметром *ppNdkCq .
STATUS_PENDING
Операция находится в состоянии ожидания и будет завершена позже. Поставщик вызовет функцию, указанную в параметре CreateCompletion (NDK_FN_CREATE_COMPLETION), для завершения ожидающей операции.
STATUS_INVALID_PARAMETER
Запрос завершился ошибкой, так как запрошенное значение CqDepth больше значения MaxCqDepth , указанного в структуре NDK_ADAPTER_INFO .
STATUS_INSUFFICIENT_RESOURCES
Запрос завершился сбоем из-за нехватки ресурсов.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
 
Другие коды состояния
Произошла ошибка.

Комментарии

Функция NdkCreateCq создает объект очереди завершения NDK (CQ). Если функция возвращает STATUS_SUCCESS, созданный объект возвращается в параметре ppNdkCq . Если NdkCreateCq возвращает STATUS_PENDING, созданный объект возвращается функцией NdkCreateCompletion (NDK_FN_CREATE_COMPLETION), указанной в параметре CreateCompletion .

Требования

Требование Значение
Минимальная версия клиента Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях.
Минимальная версия сервера Windows Server 2012
Целевая платформа Windows
Header ndkpi.h (включая Ndkpi.h)
IRQL <=DISPATCH_LEVEL

См. также раздел

GROUP_AFFINITY

Требования к времени существования объекта NDKPI

NDK_ADAPTER

NDK_ADAPTER_DISPATCH

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_ARM_CQ

NDK_FN_CQ_NOTIFICATION_CALLBACK

NDK_FN_CREATE_COMPLETION