Поделиться через


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

Функция NdkCreateSrq (NDK_FN_CREATE_SRQ) создает объект общей очереди получения NDK (SRQ).

Синтаксис

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 (NDK_PD).

[in] SrqDepth

Максимальное количество запросов на получение, которые могут быть невыполненными в течение SRQ. Это значение должно быть меньше или равно значению в элементе MaxSrqDepth , указанному в структуре NDK_ADAPTER_INFO .

[in] MaxReceiveRequestSge

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

[in] NotifyThreshold

Минимальное количество запросов на получение в очереди для активации обратных вызовов уведомлений SRQ.

[in, optional] SrqNotification

Необязательная функция NdkSrqNotificationCallback (NDK_FN_SRQ_NOTIFICATION_CALLBACK), которую поставщик вызывает, если количество запросов на получение в очереди ниже порогового значения, указанного в параметре NotifyThreshold .

[in, optional] SrqNotificationContext

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

[in, optional] Affinity

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

[in] CreateCompletion

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

[in, optional] RequestContext

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

ppNdkSrq

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

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

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

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

Комментарии

Функция NdkCreateSrq создает объект общей очереди получения NDK (SRQ). Если функция возвращает STATUS_SUCCESS, созданный объект возвращается в параметре ppNdkSrq . Если NdkCreateSrq возвращает 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_INFO

NDK_FN_CREATE_COMPLETION

NDK_FN_SRQ_NOTIFICATION_CALLBACK

NDK_PD

NDK_SRQ