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


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

Функция NdkCreateQp (NDK_FN_CREATE_QP) создает объект пары очередей NDK (QP).

Синтаксис

NDK_FN_CREATE_QP NdkFnCreateQp;

NTSTATUS NdkFnCreateQp(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in, optional] PVOID QPContext,
  [in]           ULONG ReceiveQueueDepth,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [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, optional] QPContext

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

[in] ReceiveQueueDepth

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

[in] InitiatorQueueDepth

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

[in] MaxReceiveRequestSge

Максимальное количество SGEs, которые могут поддерживаться в одном запросе на получение. Это значение должно быть меньше или равно значению в элементе MaxReceiveRequestSge структуры 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 .

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

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

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

Комментарии

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

Если функция возвращает STATUS_SUCCESS, созданный объект возвращается в параметре ppNdkQp . Если NdkCreateQp возвращает 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