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


функция обратного вызова 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

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

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

Возвращаемый код Описание
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