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


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

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

Функция VmbPacketSend отправляет данные в буфере пакетов или списке дескрипторов памяти внешних данных (MDL). Функция связывает эти данные с объектом пакета VMBus, который представляет пакет в течение всего времени существования транзакции.

Синтаксис

FN_VMB_PACKET_SEND FnVmbPacketSend;

NTSTATUS FnVmbPacketSend(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PMDL ExternalDataMdl,
  UINT32 Flags
)
{...}

Параметры

PacketObject

Дескриптор объекта пакета VMBus.

Buffer

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

BufferLength

Длина буфера в байтах в параметре буфера.

ExternalDataMdl

MDL, описывающий буфер данных, связанный с пакетом.

Flags

Флаги. Ниже приведены соответствующие флаги:

Ценность Значение
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Этот пакет нельзя считать полным, и его ресурсы не могут быть освобождены до тех пор, пока пакет завершения не возвращается из противоположной конечной точки.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
Встроенный буфер страницы и должен обрабатываться соответствующим образом, что означает, что его необходимо скопировать перед вводом уровня DPC. Проверка буферов пользовательского режима или обработка нарушений доступа является ответственностью вызывающего объекта.

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

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

Замечания

Дополнительные сведения о других способах отправки пакетов см. в разделе VmbPacketSendWithExternalMdl, VmbChannelSendSynchronousRequestи функции VmbPacketSendWithExternalPfns.

Важный

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

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

Требования

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

См. также

VmbChannelSendSynchronousRequest

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns