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

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

Функция обратного вызова EvtVmbChannelProcessPacket вызывается, когда пакет поступает во входящий кольцевой буфер.

Синтаксис

EVT_VMB_CHANNEL_PROCESS_PACKET EvtVmbChannelProcessPacket;

void EvtVmbChannelProcessPacket(
  [in] VMBCHANNEL Channel,
  [in] VMBPACKETCOMPLETION Packet,
  [in] PVOID Buffer,
  [in] UINT32 BufferLength,
  [in] UINT32 Flags
)
{...}

Параметры

[in] Channel

Канал, по которому поступает пакет.

[in] Packet

Контекст завершения, который идентифицирует этот пакет в клиентской библиотеке режима ядра (KMCL), когда транзакция может быть прекращена.

[in] Buffer

Пакет, отправленный противоположной конечной точкой. Это значение не содержит заголовки VMBus и KMCL.

[in] BufferLength

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

[in] Flags

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

Значение Значение
VMBUS_CHANNEL_PROCESS_PACKET_FLAGS
0x1
Пакет ссылается на внешние данные. Эти данные можно получить с помощью функции VmbChannelPacketGetExternalData .

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

None

Remarks

Драйвер клиента регистрирует свою реализацию этой функции обратного вызова с помощью функции VmbChannelInitSetProcessPacketCallbacks .

При каждом вызове этой функции необходимо в конечном итоге вызывать функцию VmbChannelPacketComplete .

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

Требования

Требование Значение
Целевая платформа Windows
Header vmbuskernelmodeclientlibapi.h (включая VmbusKernelModeClientLibApi.h)
IRQL <=DISPATCH_LEVEL

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

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData