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