EVT_VMB_CHANNEL_STARTED Rückruffunktion (vmbuskernelmodeclientlibapi.h)

[Einige Informationen beziehen sich auf die Vorabversion, die vor der kommerziellen Freigabe möglicherweise wesentlichen Änderungen unterliegt. Microsoft übernimmt für die hier bereitgestellten Informationen keine Gewährleistung, weder ausdrücklicher noch impliziter Art.]

Die EvtVmbChannelStarted-Rückruffunktion wird an beiden Endpunkten aufgerufen, wenn ein Kanal vollständig konfiguriert ist, aber bevor Pakete übermittelt wurden. Dies tritt auf, wenn der entgegengesetzte Endpunkt den Kanal geöffnet oder erneut geöffnet hat, nachdem er geschlossen wurde.

Syntax

EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted;

void EvtVmbChannelStarted(
  [in] VMBCHANNEL Channel
)
{...}

Parameter

[in] Channel

Der Kanal, der gestartet wird.

Rückgabewert

Keine

Bemerkungen

Nachdem ein Kanal erstellt wurde, kann ein Clienttreiber mithilfe der funktion VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT Rückruffunktionen für Zustandsänderungen angeben, einschließlich EvtVmbChannelStarted.

Wenn ein angehaltener Kanal geöffnet oder ein geöffneter Kanal gestartet wird, ruft die Kernelmodus-Clientbibliothek (KMCL) EvtVmbChannelStarted auf, nachdem sie den EvtVmbChannelOpened-Rückruf aufgerufen hat . EvtVmbChannelStarted kann die Funktionen VmbPacketSend, VmbPacketSendWithExternalMdl und VmbPacketSendWithExternalPfns aufrufen, um ausgehende Pakete in die Warteschlange zu stellen. Da die eingehende Warteschlange zu diesem Zeitpunkt nicht ausgeführt wird, darf dieser Rückruf für eingehende Pakete oder Vervollständigungen nicht blockiert werden.

Die meisten Treiber, die KMCL verwenden, implementieren diesen Rückruf nicht. Eine Alternative ist die Rückruffunktion EvtVmbChannelPostStarted .

Das Warten auf den Abschluss eines gesendeten Pakets, z. B. durch die VmbChannelSendSynchronousRequest-Funktion , wird nie zurückgegeben, da pakete nicht fließen, wenn dieser Rückruf aufgerufen wird.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile vmbuskernelmodeclientlibapi.h (einschließen VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns