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

Функция NdkCreateQpWithSrq (NDK_FN_CREATE_QP_WITH_SRQ) создает объект пары очередей NDK (QP) с объектом общей очереди получения NDK (SRQ).

Синтаксис

NDK_FN_CREATE_QP_WITH_SRQ NdkFnCreateQpWithSrq;

NTSTATUS NdkFnCreateQpWithSrq(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in]           NDK_SRQ *pSrq,
  [in, optional] PVOID QPContext,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxInitiatorRequestSge,
  [in]           ULONG InlineDataSize,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_QP **ppNdkQp
)
{...}

Параметры

[in] pNdkPd

Указатель на объект домена защиты NDK (NDK_PD).

[in] pReceiveCq

Указатель на очередь завершения (CQ), используемую для завершения запросов на получение (NDK_CQ).

[in] pInitiatorCq

Указатель на CQ, используемый для завершения запросов инициатора.

[in] pSrq

Указатель на объект общей очереди получения NDK (SRQ) (NDK_SRQ) для отправки запросов на получение.

[in, optional] QPContext

Значение контекста, возвращаемое в элементе QPContextструктуры NDK_RESULT для всех запросов, размещенных по этому запросу.

[in] InitiatorQueueDepth

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

[in] MaxInitiatorRequestSge

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

[in] InlineDataSize

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

[in] CreateCompletion

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

[in, optional] RequestContext

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

ppNdkQp

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

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

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

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

Комментарии

Функция NdkCreateQpWithSrq создает объект пары очередей NDK (QP) с общей очередью получения (SRQ). QP состоит из очереди получения и очереди инициатора. Очередь получения используется для отправки запросов на получение. Очередь инициатора используется для инициации отправки, привязки, быстрой регистрации, чтения, записи и отмены запросов.

Если функция возвращает STATUS_SUCCESS, созданный объект возвращается в параметре ppNdkQp . Если NdkCreateQpWithSrq возвращает STATUS_PENDING, созданный объект возвращается функцией NdkCreateCompletion (NDK_FN_CREATE_COMPLETION), указанной в параметре CreateCompletion .

Требования

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

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

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

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT

NDK_SRQ