функция обратного вызова 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.
Возвращаемый код | Описание |
---|---|
|
Объект QP был создан успешно и возвращен с помощью параметра *ppNdkQp. |
|
Операция ожидается и будет завершена позже. Поставщик вызовет функцию, указанную в параметре createCompletion (NDK_FN_CREATE_COMPLETION) для завершения ожидающей операции. |
|
Запрос завершился ошибкой, так как запрошенный InitiatorQueueDepth, MaxInitiatorRequestSge или InlineDataSize не входит в пределы, указанные в структуре NDK_ADAPTER_INFO. |
|
Сбой запроса из-за нехватки ресурсов.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Произошла ошибка. |
Замечания
Функция 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 |