функция обратного вызова 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_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, что он может отложить запрос к оборудованию для обработки. Дополнительные сведения об этом флаге см. в разделе Схема отложенной обработки NDKPI.
Примечание Этот флаг поддерживается только в NDKPI 1.2 (Windows Server 2012 R2) и более поздних версиях. |
Возвращаемое значение
Функция NdkRead возвращает один из следующих кодов NTSTATUS.
Код возврата | Описание |
---|---|
|
Запрос был успешно отправлен. Запись завершения будет помещена в очередь в CQ после завершения рабочего запроса. |
|
QP не подключен. |
|
Запрос попытался считывать данные, превышающие размер удаленной памяти. |
|
Произошла ошибка. |
Комментарии
NdkRead публикует запрос на чтение в паре очередей (QP).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Windows |
Header | ndkpi.h (включая Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
См. также раздел
Схема отложенной обработки NDKPI