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


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

Функция NdkCreateQpWithSrq (NDK_FN_CREATE_QP_WITH_SRQ) создает объект пары очередей NDK (QP) с объектом NDK shared receive queue (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 (PD) (NDK_PD).

[in] pReceiveCq

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

[in] pInitiatorCq

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

[in] pSrq

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

[in, optional] QPContext

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

[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
целевая платформа Виндоус
заголовка ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

См. также

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

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT

NDK_SRQ