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


функция обратного вызова 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
Если указать это значение, буфер будет доступен только для чтения. В противном случае сервер может выполнять запись в буфер. Это не является мерой безопасности, но может повысить производительность snapshot и динамической миграции.

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