Поделиться через


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

[Некоторые сведения связаны с предварительно выпущенным продуктом, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.]

Функция VmbChannelCreateGpadlFromMdl создает список дескрипторов гостевого физического адреса (GPADL), описывающий клиентский буфер. GPADL можно использовать на сервере для доступа к буферу.

Синтаксис

FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL FnVmbChannelCreateGpadlFromMdl;

NTSTATUS FnVmbChannelCreateGpadlFromMdl(
  VMBCHANNEL Channel,
  UINT32 Flags,
  PMDL Mdl,
  UINT32 StartOffsetWithinMdl,
  UINT32 DataLengthWithinMdl,
  PUINT32 GpadlHandle
)
{...}

Параметры

Channel

Дескриптор канала.

Flags

Флаги. Возможные значения:

Ценность Значение
VMBUS_CHANNEL_GPADL_READ_ONLY
Если указать это значение, буфер доступен только для чтения. В противном случае сервер может записать в буфер. Это не мера безопасности, но может повысить производительность моментального снимка и динамической миграции.

Mdl

Указатель на цепочку списка дескрипторов памяти (MDL), описывающую буфер. Буфер может содержать несколько частей, которые связаны с помощью следующего указателя MDL.

StartOffsetWithinMdl

Смещение в байтах в MDL, с которого необходимо запустить сопоставление.

DataLengthWithinMdl

Длина в байтах цепочки буферов. Если это значение равно нулю (0), используйте до конца MDL.

GpadlHandle

Дескриптор GPADL созданного MDL. Отправьте это на сервер, чтобы использовать функцию VmbChannelMapGpadl.

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

Возвращает STATUS_SUCCESS, если операция выполнена успешно, или соответствующий код ошибки NTSTATUS в противном случае.

Замечания

Когда эта функция возвращается, конечная точка сервера может вызывать VmbChannelMapGpadl, так как VMBus уже отправит описание GPADL обратной конечной точке и получил подтверждение.

GPADL необходимо удалить с помощью функции VmbChannelDeleteGpadl.

Важный

Эта функция вызывается через клиентский интерфейс клиентской библиотеки режима ядра VMBus (KMCL), предоставляемый драйвером шины Vmbkmcl.sys. Это клиентская функция, доступ к ней осуществляется из структуры KMCL_CLIENT_INTERFACE_V1.

Дополнительные сведения см. в разделе "Примечания" KMCL_CLIENT_INTERFACE_V1.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1803
заголовка vmbuskernelmodeclientlibapi.h

См. также

VmbChannelDeleteGpadl

VmbChannelMapGpadl