функция обратного вызова NDK_FN_BIND (ndkpi.h)
Функция NdkBind (NDK_FN_BIND) привязывает окно памяти к определенному подрегиону области памяти (MR).
Синтаксис
NDK_FN_BIND NdkFnBind;
NTSTATUS NdkFnBind(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
[in] NDK_MR *pMr,
[in] NDK_MW *pMw,
[in] PVOID VirtualAddress,
[in] SIZE_T Length,
[in] ULONG Flags
)
{...}
Параметры
[in] pNdkQp
Указатель на объект пары очередей NDK (QP) (NDK_QP).
[in, optional] RequestContext
Значение контекста, возвращаемое в RequestContext член структуры NDK_RESULT для этого запроса.
[in] pMr
Указатель на объект области памяти NDK (MR) (NDK_MR).
[in] pMw
Указатель на объект окна памяти NDK (MW) (NDK_MW).
[in] VirtualAddress
Виртуальный адрес, который должен быть больше или равен виртуальному адресу MDL для MR и меньше виртуального адреса MDL для MR плюс значение в параметре Length.
Используйте макрос MmGetMdlVirtualAddress для получения виртуального адреса MDL для MR.
[in] Length
Длина MR для привязки к МВТ.
[in] Flags
Побитовое ИЛИ флагов, указывающее разрешенные операции. Поддерживаются следующие флаги:
Возвращаемое значение
Функция NdkBind возвращает один из следующих кодов NTSTATUS.
Возвращаемый код | Описание |
---|---|
|
Запрос был успешно размещен. Запись завершения будет помещена в очередь в CQ после завершения рабочего запроса. |
|
Пара очередей (QP) не подключена. |
|
Область памяти не разрешает тип доступа, запрошенный для окна памяти. Для флага NDK_OP_FLAG_ALLOW_WRITE требуется область памяти, зарегистрированная с помощью флага NDK_MR_FLAG_ALLOW_LOCAL_WRITE. |
|
Произошла ошибка. |
Замечания
NdkBind привязывает окно памяти (МВТ) к определенной подрегиону области памяти (MR).
Адрес в параметре VirtualAddress должен быть адресом в виртуальном регионе, который описывается цепочкой MDL, указанной во время регистрации памяти. Адрес должен рассматриваться поставщиком как индекс в регионе памяти. Адрес не должен использоваться поставщиком в качестве допустимого виртуального адреса для чтения или записи содержимого буфера.
После возвращения этого вызова удаленный маркер будет доступен с помощью функции NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW).
Эта функция не поддерживает виртуальный адрес на основе нуля.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
минимальный поддерживаемый сервер | Windows Server 2012 |
целевая платформа | Виндоус |
заголовка | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
См. также
схеме отложенной обработки NDKPI
требования к публикации рабочего запроса NDKPI