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

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

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

Синтаксис

FN_VMB_CHANNEL_MAP_GPADL FnVmbChannelMapGpadl;

NTSTATUS FnVmbChannelMapGpadl(
  VMBCHANNEL Channel,
  UINT32 Flags,
  UINT32 GpadlHandle,
  PMDL *Mdl
)
{...}

Параметры

Channel

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

Flags

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

Значение Значение
VMBUS_CHANNEL_GPADL_FLAG_READ_ONLY
Сопоставление с доступом только для чтения.
 

Если это значение флага не задано, функция пытается сопоставить GPADL для доступа на запись. Если GPADL не был создан с доступом на запись, эта попытка сопоставления завершится ошибкой. Если этот флаг установлен, вызывающий объект не запрещает запись в буфер. Эта схема используется для повышения производительности динамической миграции и создания моментальных снимков.

GpadlHandle

Дескриптор GPADL для сопоставления.

Mdl

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

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

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

Комментарии

GPADL должен быть предварительно установлен клиентом, например с помощью функции VmbChannelCreateGpadlFromBuffer .

Одновременно для любого GPADL может существовать только одно сопоставление.

Вызовы этой функции необходимо связать с вызовами функции VmbChannelUnmapGpadl .

Важно!

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1803
Верхняя часть vmbuskernelmodeclientlibapi.h

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

VmbChannelCreateGpadlFromBuffer

VmbChannelUnmapGpadl