функция обратного вызова NDK_FN_SEND (ndkpi.h)
Функция NdkSend (NDK_FN_SEND) отправляет запрос на отправку в паре очередей NDK (QP).
Синтаксис
NDK_FN_SEND NdkFnSend;
NTSTATUS NdkFnSend(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags
)
{...}
Параметры
[in] pNdkQp
Указатель на объект пары очередей NDK (QP) (NDK_QP).
[in, optional] RequestContext
Значение контекста, возвращаемое в элементе RequestContext структуры NDK_RESULT для этого запроса.
pSgl
Массив структур SGE (NDK_SGE), представляющих буферы, в которые будут отправляться данные.
[in] nSge
Число структур SGE в массиве, указанное в параметре pSgl.
[in] Flags
Побитовое ИЛИ флагов, указывающее разрешенные операции. Поддерживаются следующие флаги:
Ценность | Значение |
---|---|
|
Указывает, что успешное завершение этого запроса не создает событие завершения в очереди исходящего завершения. Однако запросы, которые завершаются сбоем, создают событие в очереди завершения. |
|
Указывает, что все предыдущие запросы на чтение должны быть завершены, прежде чем оборудование начнет обработку этого запроса. |
|
Указывает, что очередь завершения для однорангового узла создает уведомление. Дополнительные сведения о NDK_OP_FLAG_SEND_AND_SOLICIT_EVENTсм. в разделе "Примечания". |
|
Указывает, что память, на которую ссылается SGEs, должна быть передана встроенным образом. Кроме того, значение memoryRegionToken в записях NDK_SGE может быть недопустимым. Встроенные запросы не требуют ограничения количества записей в списке SGE до значения MaxInitiatorRequestSge, указанного при создании пары очередей. Объем памяти, передаваемый встроенной, должен находиться в пределах встроенных ограничений данных пары очередей. |
|
Указывает поставщику NDK, что он может отложить запрос на оборудование для обработки. Дополнительные сведения об этом флаге см. в схемы отложенной обработки NDKPI.
Примечание Этот флаг поддерживается только в NDKPI 1.2 (Windows Server 2012 R2) и более поздних версиях. |
Возвращаемое значение
Функция NdkSend возвращает один из следующих кодов NTSTATUS.
Возвращаемый код | Описание |
---|---|
|
Запрос на отправку был успешно размещен. Запись завершения будет помещена в очередь завершения (CQ) при завершении рабочего запроса. |
|
Пара очередей (QP) не подключена. |
|
Произошла ошибка. |
Замечания
NdkSend отправляет запрос на отправку в пару очередей (QP).
Флаг NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT можно использовать, если вы выдаете несколько связанных запросов на отправку. Задайте этот флаг для последнего запроса в группе связанных запросов на отправку.
Потребитель NDK может использовать этот флаг при выдаче нескольких связанных запросов на отправку. Потребитель NDK задает этот флаг только в последнем связанном запросе на отправку. Одноранговый узел получит все запросы на отправку как обычные. Однако, когда одноранговый узел получает последний запрос на отправку (запрос с набором флагов NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT), очередь завершения для однорангового узла создает уведомление. Уведомление создается после завершения запроса на получение. Этот флаг не имеет значения для приемника (однорангового узла), если ранее не вызвал функцию NdkArmCq (NDK_FN_ARM_CQ) с типом уведомления, заданным для NDK_CQ_NOTIFY_SOLICITED.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
минимальный поддерживаемый сервер | Windows Server 2012 |
целевая платформа | Виндоус |
заголовка | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
См. также
схеме отложенной обработки NDKPI