функция обратного вызова 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
Флаги. Возможные значения:
Значение | Значение |
---|---|
|
Пакет ссылается на внешние данные. Эти данные можно получить с помощью функции VmbChannelPacketGetExternalData . |
Возвращаемое значение
None
Remarks
Драйвер клиента регистрирует свою реализацию этой функции обратного вызова с помощью функции VmbChannelInitSetProcessPacketCallbacks .
При каждом вызове этой функции необходимо в конечном итоге вызывать функцию VmbChannelPacketComplete .
Эту функцию обратного вызова можно вызывать в DISPATCH_LEVEL или ниже, если канал не настроен для отсрочки обработки пакетов в рабочий поток.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | vmbuskernelmodeclientlibapi.h (включая VmbusKernelModeClientLibApi.h) |
IRQL | <=DISPATCH_LEVEL |