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


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

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

[in] Flags

Флаги. Возможные значения включают следующие:

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

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

Никакой

Замечания

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

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

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

Требования

Требование Ценность
целевая платформа Виндоус
заголовка vmbuskernelmodeclientlibapi.h (include VmbusKernelModeClientLibApi.h)
IRQL <=DISPATCH_LEVEL

См. также

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData