Freigeben über


IAudioSessionEvents::OnSessionDisconnected-Methode (audiopolicy.h)

Die OnSessionDisconnected-Methode benachrichtigt den Client, dass die Audiositzung getrennt wurde.

Syntax

HRESULT OnSessionDisconnected(
  [in] AudioSessionDisconnectReason DisconnectReason
);

Parameter

[in] DisconnectReason

Der Grund, warum die Audiositzung getrennt wurde. Der Aufrufer legt diesen Parameter auf einen der in der folgenden Tabelle gezeigten AudioSessionDisconnectReason-Enumerationswerte fest.

Wert BESCHREIBUNG
DisconnectReasonDeviceRemoval Der Benutzer hat das Audioendpunktgerät entfernt.
DisconnectReasonServerShutdown Der Windows-Audiodienst wurde beendet.
DisconnectReasonFormatChanged Das Streamformat wurde für das Gerät geändert, mit dem die Audiositzung verbunden ist.
DisconnectReasonSessionLogoff Der Benutzer hat die Windows-Terminal Services(WTS)-Sitzung abgemeldet, in der die Audiositzung ausgeführt wurde.
DisconnectReasonSessionDisconnected Die WTS-Sitzung, in der die Audiositzung ausgeführt wurde, wurde getrennt.
DisconnectReasonExclusiveModeOverride Die Audiositzung im freigegebenen Modus wurde getrennt, um das Audioendpunktgerät für eine Verbindung im exklusiven Modus verfügbar zu machen.
 

Weitere Informationen zu WTS-Sitzungen finden Sie in der Dokumentation zu Windows SDK.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

Beim Trennen einer Sitzung schließt der Sitzungs-Manager die Streams, die zu dieser Sitzung gehören, und ungültig alle ausstehenden Anforderungen für Dienste in diesen Streams. Der Client sollte auf eine Trennung reagieren, indem er alle Verweise auf die IAudioClient-Schnittstelle für einen geschlossenen Datenstrom freigibt und alle Verweise auf die Dienstschnittstellen freigibt, die er zuvor über Aufrufe der IAudioClient::GetService-Methode abgerufen hat.

Nach der Trennung geben viele der Methoden in den WASAPI-Schnittstellen, die an geschlossene Datenströme in der getrennten Sitzung gebunden sind, fehlercode AUDCLNT_E_DEVICE_INVALIDATED zurück (siehe z. B. IAudioClient::GetCurrentPadding). Informationen zum Wiederherstellen nach diesem Fehler finden Sie unter Wiederherstellen nach einem Invalid-Device Fehler.

Wenn der Windows-Audiodienst unerwartet beendet wird, hat er keine Möglichkeit, Clients zu benachrichtigen, dass er heruntergefahren wird. In diesem Fall erfahren Clients, dass der Dienst beendet wurde, wenn sie eine Methode wie IAudioClient::GetCurrentPadding aufrufen, die erkennt, dass der Dienst nicht mehr ausgeführt wird und fehlercode AUDCLNT_E_SERVICE_NOT_RUNNING.

Ein Client kann kein Ereignis mit getrennter Sitzung generieren. Das System ist immer die Quelle dieses Ereignistyps. Daher verfügt diese Methode im Gegensatz zu einigen anderen IAudioSessionEvents-Methoden nicht über einen Kontextparameter.

Ein Codebeispiel, das die Methoden in der IAudioSessionEvents-Schnittstelle implementiert, finden Sie unter Audiositzungsereignisse.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile audiopolicy.h

Weitere Informationen

IAudioClient-Schnittstelle

IAudioClient::GetService

IAudioSessionEvents-Schnittstelle