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