функция обратного вызова 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.
Код возврата | Описание |
---|---|
|
Объект CQ был успешно создан и возвращен с параметром *ppNdkCq . |
|
Операция находится в состоянии ожидания и будет завершена позже. Поставщик вызовет функцию, указанную в параметре CreateCompletion (NDK_FN_CREATE_COMPLETION), для завершения ожидающей операции. |
|
Запрос завершился ошибкой, так как запрошенное значение CqDepth больше значения MaxCqDepth , указанного в структуре NDK_ADAPTER_INFO . |
|
Запрос завершился сбоем из-за нехватки ресурсов.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Произошла ошибка. |
Комментарии
Функция 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 |
См. также раздел
Требования к времени существования объекта NDKPI