Energie- und Zustandsänderungen in AVStream
Wenn AVStream eine IRP_MN_SET_POWER-Anforderung empfängt, ruft es die AVStrMiniDeviceSetPower-Rückrufroutine eines Minitreibers auf, sofern der Minitreiber eine bereitgestellt hat.
Wenn AVStream eine set-Anforderung der KSPROPERTY_CONNECTION_STATE-Eigenschaft empfängt, ruft er die RÜCKRUFroutine AVStrMiniPinSetDeviceState eines Minitreibers auf, sofern der Minitreiber eine bereitgestellt hat.
Wenn das System aus einem Standbyzustand reaktiviert wird, kann AVStream die Rückrufroutinen AVStrMiniPinSetDeviceState und AVStrMiniDeviceSetPower eines Minitreibers in umgekehrter Reihenfolge aufrufen. Beispielsweise kann AVStrMiniPinSetDeviceStatevorAVStrMiniDeviceSetPower aufgerufen werden.
Daher muss der Fahrer bereit sein, eine solche Umkehrung der erwarteten Rückrufreihenfolge zu bewältigen.
Diese Umkehrung tritt nicht auf, wenn das System in einen Ruhezustand heruntergefahren wird. Beim Herunterschalten erfolgen diese beiden Rückrufroutinen immer in der erwarteten Reihenfolge. Beispielsweise wird AVStrMiniPinSetDeviceState immer vor AVStrMiniDeviceSetPower aufgerufen.
Wenn diese Umkehrung auftritt, sieht die gesamte Sequenz wie folgt aus:
Zuerst tritt die Abschaltsequenz auf:
AVStrMiniPinSetDeviceState wird mit einer Anforderung aufgerufen, den Gerätestatus von KSSTATE_RUN in KSSTATE_PAUSE zu ändern.
AVStrMiniDeviceSetPower wird mit einer Anforderung aufgerufen, den Energiezustand von D0 in D2/D3 zu ändern.
An diesem Punkt befindet sich das System in einem Ruhezustand.
Als Nächstes erfolgt die Einschaltsequenz:
AVStrMiniDeviceSetPower wird mit einer Anforderung aufgerufen, den Energiezustand von D2/D3 in D0 zu ändern.
AVStrMiniPinSetDeviceState wird mit einer Anforderung aufgerufen, den Gerätestatus von KSSTATE_PAUSE in KSSTATE_RUN zu ändern.
In diesem Szenario sind die Schritte 5 und 6 die Schritte, die von der erwarteten Reihenfolge umgekehrt werden.
Wenn eine Anwendung streamingt und das System eine Herunterschaltsequenz initiiert, wird ein ausgeführtes Aufzeichnungsdiagramm immer in einen Pausenzustand versetzt. Wenn das Diagramm bereits beendet wurde, bleibt es angehalten.