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

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

Функция VmbChannelSendSynchronousRequest отправляет пакет в противоположную конечную точку и ожидает ответа.

Синтаксис

FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST FnVmbChannelSendSynchronousRequest;

NTSTATUS FnVmbChannelSendSynchronousRequest(
  VMBCHANNEL Channel,
  PVOID Buffer,
  UINT32 BufferSize,
  PMDL ExternalDataMdl,
  UINT32 Flags,
  PVOID CompletionBuffer,
  PUINT32 CompletionBufferSize,
  PLARGE_INTEGER Timeout
)
{...}

Параметры

Channel

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

Buffer

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

BufferSize

Размер отправляемых данных в байтах.

ExternalDataMdl

Список дескрипторов памяти (MDL), описывающий дополнительный буфер для отправки.

Flags

Стандартные флаги.

CompletionBuffer

Буфер, в котором хранятся результаты пакета завершения.

CompletionBufferSize

Размер значения CompletionBuffer в байтах. Это значение должно быть округлено до ближайших 8 байт, иначе функция завершается ошибкой. При успешном выполнении возвращает количество байтов, записанных в CompletionBuffer.

Timeout

Время ожидания в стиле маршрутизации KeWaitForSingleObject . По истечении этого времени пакет отменяется. Если время ожидания равно нулю (0), если пакет не помещается в кольцевой буфер, он не помещается в очередь.

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

Код возврата Описание
STATUS_SUCCESS
Функции успешно завершены.
STATUS_BUFFER_OVERFLOW
Пакет не помещается в буфер и не помещается в очередь.
STATUS_CANCELLED
Пакет был отменен.
STATUS_DEVICE_REMOVED
Канал завершает работу.

Комментарии

Клиенты могут выполнять эту функцию с любым сочетанием параметров.

Корневой каталог может вызывать этот метод, только если *Timeout == 0 флаг VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION не установлен.

Важно!

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

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

Требования

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

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

KeWaitForSingleObject