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

Функция NdkRead (NDK_FN_READ) отправляет запрос на чтение в паре очередей NDK (QP).

Синтаксис

NDK_FN_READ NdkFnRead;

NTSTATUS NdkFnRead(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           UINT64 RemoteAddress,
  [in]           UINT32 RemoteToken,
  [in]           ULONG Flags
)
{...}

Параметры

[in] pNdkQp

Указатель на объект пары очередей NDK (QP) (NDK_QP).

[in, optional] RequestContext

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

pSgl

Массив структур SGE (NDK_SGE), представляющих буферы для размещения входящих данных.

[in] nSge

Количество структур SGE в массиве, указанном в параметре pSgl .

[in] RemoteAddress

Удаленный адрес для чтения, представленный в порядке байтов локального узла. Потребитель NDK может добавить смещение к удаленно предоставленному значению.

[in] RemoteToken

Удаленный маркер памяти, представляющий собой непрозрачный массив байтов от потребителя NDK.

[in] Flags

Побитовое ИЛИ флагов, указывающее разрешенные операции. Поддерживаются следующие флаги:

Значение Значение
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Указывает, что успешное выполнение этого запроса не создает событие завершения в очереди исходящего завершения. Однако запросы, которые завершаются сбоем, создают событие в очереди завершения.
NDK_OP_FLAG_READ_FENCE
0x00000002
Указывает, что все предыдущие запросы на чтение должны быть выполнены, прежде чем оборудование начнет обрабатывать этот запрос.
NDK_OP_FLAG_RDMA_READ_LOCAL_INVALIDATE
0x00000200
Если этот флаг установлен и поставщик также сообщает о возможности адаптера NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED в структуре NDK_ADAPTER_INFO , успешное завершение функции NdkRead означает, что первый буфер, указанный в параметре pSgl , становится недействительным. Неудачное завершение оставляет буфер и маркер в неопределенном состоянии. Этот флаг игнорируется, если поставщик не сообщает о возможности адаптера NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED в структуре NDK_ADAPTER_INFO .

Примечание Этот флаг поддерживается только в NDKPI 1.2 (Windows Server 2012 R2) и более поздних версиях.

NDK_OP_FLAG_DEFER
0x00000200
Указывает поставщику NDK, что он может отложить запрос к оборудованию для обработки. Дополнительные сведения об этом флаге см. в разделе Схема отложенной обработки NDKPI.

Примечание Этот флаг поддерживается только в NDKPI 1.2 (Windows Server 2012 R2) и более поздних версиях.

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

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

Код возврата Описание
STATUS_SUCCESS
Запрос был успешно отправлен. Запись завершения будет помещена в очередь в CQ после завершения рабочего запроса.
STATUS_CONNECTION_INVALID
QP не подключен.
STATUS_REMOTE_RESOURCES
Запрос попытался считывать данные, превышающие размер удаленной памяти.
Другие коды состояния
Произошла ошибка.

Комментарии

NdkRead публикует запрос на чтение в паре очередей (QP).

Требования

Требование Значение
Минимальная версия клиента Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях.
Минимальная версия сервера Windows Server 2012
Целевая платформа Windows
Header ndkpi.h (включая Ndkpi.h)
IRQL <=DISPATCH_LEVEL

См. также раздел

Схема отложенной обработки NDKPI

Требования к публикации запросов на работу NDKPI

NDK_ADAPTER_INFO

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE