Freigeben über


IWDFDevice2::AssignSxWakeSettings-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF-.]

Die AssignSxWakeSettings--Methode stellt Treiberinformationen über die Fähigkeit eines Geräts zum Auslösen eines Wakesignals bereit, während sich sowohl das Gerät als auch das System in einem Energiesparzustand befinden.

Syntax

HRESULT AssignSxWakeSettings(
  [in] DEVICE_POWER_STATE                    DxState,
  [in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
  [in] WDF_TRI_STATE                         Enabled
);

Parameter

[in] DxState

Ein DEVICE_POWER_STATE-typed-Enumerator, der den niedrigen Geräteleistungszustand identifiziert,, in den das Gerät wechselt, wenn der Systemstromzustand in einen weckbaren Energiesparzustand fällt. Der Wert von DxState kann nicht PowerDeviceD0werden. DEVICE_POWER_STATE Werte werden in wdm.h definiert.

[in] UserControlOfWakeSettings

Ein WDF_POWER_POLICY_SX_WAKE_USER_CONTROL-typed-Enumerator, der angibt, ob Benutzer die Aktivierungseinstellungen des Geräts ändern können.

[in] Enabled

Ein WDF_TRI_STATE-typed-Enumerator, der angibt, ob das Gerät das System reaktivieren kann (d. h. das System auf S0 wiederherstellen), wenn sich das System in einem Energiesparzustand befindet. Dieses Element kann einen der folgenden Werte aufweisen:

WdfTrue – Das Aufwachen des Systems ist aktiviert.

WdfFalse – Das Aufwachen des Systems ist deaktiviert.

WdfUseDefault- – Das Aufwachen des Systems ist standardmäßig aktiviert; wenn der UserControlOfWakeSettings Member jedoch auf WakeAllowUserControlfestgelegt ist, überschreibt die EINSTELLUNG oder die INF-Datei des Benutzers den Anfangswert.

Wenn das System aktiviert ist und das System in einen Energiesparzustand wechselt, ruft das Framework die IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx Rückruffunktion auf, bevor das Gerät in einen Energiesparzustand wechselt.

Rückgabewert

AssignSxWakeSettings gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
E_INVALIDARG
Der Aufrufer hat einen ungültigen Wert für einen Eingabeparameter angegeben.
HRESULT_FROM_NT(STATUS_INVALID_DEVICE_REQUEST)
Der aufrufende Treiber ist nicht der Besitzer der Energierichtlinie.
HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)
Der parameter DxState gibt einen ungültigen Energiezustand des Geräts an, oder der Bustreiber gibt an, dass das Gerät kein Wakesignal auslösen kann,
 

Diese Methode gibt möglicherweise einen der anderen Werte zurück, die Winerror.h enthält.

Bemerkungen

Wenn ein Treiber zum ersten Mal AssignSxWakeSettingsaufruft, treten die folgenden Aktionen auf:

  • Das Framework speichert die Parameterwerte.
  • Wenn der parameter UserControlOfWakeSettings auf WakeAllowUserControl festgelegt ist und der Parameter Enabled auf WdfUseDefaultfestgelegt ist, liest das Framework die Registrierung vor, um herauszufinden, ob der Benutzer das System aktiviert hat.
Bei nachfolgenden Aufrufen von AssignSxWakeSettingsspeichert das Framework nicht den Wert des UserControlOfWakeSettings-Parameters. Das Framework führt also die folgenden Schritte aus, wenn der Treiber zum ersten Mal AssignSxWakeSettings aufruft, aber nicht während späterer Aufrufe:
  • Speichert den Wert des UserControlOfWakeSettings-Parameters.
  • Sucht nach einer Benutzereinstellung in der Registrierung, wenn der Wert des Parameters EnabledWdfUseDefaultist.
Die folgenden Regeln gelten für den Wert, den Sie für den parameter DxState angeben:
  • Der Wert kann nicht PowerDeviceD0werden.
  • Wenn Sie DevicePowerMaximumangeben, verwendet das Framework den Wert, den der Kernelmodustreiber für den Im DeviceWake Member seiner WDF_DEVICE_POWER_CAPABILITIES Struktur bereitgestellten Bus des Geräts angibt.
  • Sie können keinen Geräte-Energiezustand angeben, der niedriger als der Gerätestromzustand im DeviceWake Mitglied der WDF_DEVICE_POWER_CAPABILITIES Struktur des Kernelmodusbustreibers ist. (Wenn der DeviceWake-Wert des Bustreibers Wert PowerDeviceD2ist, kann der DxState-Wert des Funktionstreibers nicht PowerDeviceD3.)
Informationen zu Registrierungseinträgen, die die Wake-Funktionen eines Geräts steuern, finden Sie unter Benutzersteuerung des Geräte-Idle- und Wake-Verhaltens in UMDF-.

Weitere Informationen zur Unterstützung der Aktivierungsfunktionen eines Geräts finden Sie unter Unterstützende System-Wake-Up in UMDF-basierten Treibern.

Im folgenden Codebeispiel wird die IWDFDevice2-schnittstelle und anschließend AssignSxWakeSettingsaufgerufen.

    IWDFDevice2 *pIWDFDevice2 = NULL;
    HRESULT hr;

    //
    // Get a pointer to the IWDFDevice2 interface.
    //
    hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
                                     (void**) &pIWDFDevice2);
    if (SUCCEEDED(hr)) 
    {
        hr = pIWDFDevice2->AssignSxWakeSettings(PowerDeviceMaximum,
                                                WakeAllowUserControl,
                                                WdfUseDefault);
    }
...
    SAFE_RELEASE(pIWDFDevice2);

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform- Desktop
Mindest-UMDF-Version 1.9
Header- wudfddi.h (include Wudfddi.h)
DLL- WUDFx.dll

Siehe auch

IWDFDevice2-

IWDFDevice2::AssignS0IdleSettings