IWDFDevice2::AssignSxWakeSettings-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mithilfe von 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 Začínáme mit UMDF.]

Die Methode "AssignSxWakeSettings" bietet Treiberinformationen über die Möglichkeit eines Geräts, ein Aktivierungssignal auszulösen, während sich sowohl das Gerät als auch das System in einem Zustand mit niedriger Leistung 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-Typ-Enumerator, der den Zustand des niedrigen Gerätestroms identifiziert, in den das Gerät eingegeben wird, wenn der Systemstromzustand auf einen aufwachbaren Niedrigleistungszustand fällt. Der Wert von DxState kann nicht PowerDeviceD0 sein. DEVICE_POWER_STATE Werte werden in wdm.h definiert.

[in] UserControlOfWakeSettings

Ein WDF_POWER_POLICY_SX_WAKE_USER_CONTROL-Typ-Enumerator, der angibt, ob Benutzer die Möglichkeit haben, die Aktivierungseinstellungen des Geräts zu ändern.

[in] Enabled

Ein WDF_TRI_STATE-Typ-Enumerator, der angibt, ob das Gerät das System (das heißt, das System auf S0 wiederherstellen kann), wenn sich das System in einem Zustand mit niedriger Leistung befindet. Dieses Element kann über einen der folgenden Werte verfügen:

WdfTrue – Aufwachen des Systems ist aktiviert.

WdfFalse – Das Wachen des Systems ist deaktiviert.

WdfUseDefault – Das Aufwachen des Systems ist standardmäßig aktiviert; Wenn das Member "UserControlOfWakeSettings " jedoch auf "WakeAllowUserControl" festgelegt ist, überschreibt die INF-Datei des Benutzers die Einstellung oder die INF-Datei des Benutzers den Anfangswert.

Wenn das System aktiviert ist und das System einen Niedrigleistungszustand eingeben soll, ruft das Framework die IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx-Rückruffunktion auf, bevor das Gerät einen Zustand mit niedriger Leistung eingibt.

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 Anruftreiber ist nicht der Besitzer der Power Policy des Geräts.
HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)
Der DxState-Parameter gibt einen ungültigen Gerätestromzustand an, oder der Bustreiber gibt an, dass das Gerät kein Aktivierungssignal 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 " AssignSxWakeSettings" aufruft, treten die folgenden Aktionen auf:

  • Das Framework speichert die Parameterwerte.
  • Wenn der Parameter "UserControlOfWakeSettings " auf "WakeAllowUserControl " festgelegt ist und der Parameter "Enabled " auf WdfUseDefault festgelegt ist, liest das Framework die Registrierung vor, um herauszufinden, ob der Benutzer das Aufwachen des Systems aktiviert hat.
Während der nachfolgenden Aufrufe von AssignSxWakeSettings speichert das Framework den Wert des UserControlOfWakeSettings-Parameters nicht. Mit anderen Worten, das Framework führt die folgenden Schritte aus, wenn der Treiber "AssignSxWakeSettings " aufruft, aber nicht während späterer Aufrufe:
  • Speichert den Wert des Parameters UserControlOfWakeSettings .
  • Sucht nach einer Benutzereinstellung in der Registrierung, wenn der Wert des Aktivierten Parameters WdfUseDefault ist.
Die folgenden Regeln gelten für den Wert, den Sie für den DxState-Parameter angeben:
  • Der Wert kann nicht PowerDeviceD0 sein.
  • Wenn Sie DevicePowerMaximum angeben, verwendet das Framework den Wert, den der Kernelmodustreiber für den Im DeviceWake-Element seiner WDF_DEVICE_POWER_CAPABILITIES-Struktur bereitgestellten Bus des Geräts enthält.
  • Sie können keinen Gerätestromzustand angeben, der niedriger als der Gerätestromstatus im DeviceWake-Element der WDF_DEVICE_POWER_CAPABILITIES Struktur des Kernelmodus-Bustreibers ist. (Wenn der DeviceWake-Wert des Bustreibers PowerDeviceD2 ist, kann der DxState-Wert des Funktionstreibers nicht PowerDeviceD3 sein.)
Informationen zu Registrierungseinträgen, die die Aktivierungsfunktionen eines Geräts steuern, finden Sie unter "Benutzersteuerung der Geräte-Idle" und "Wake Behavior" in UMDF.

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

Im folgenden Codebeispiel wird die IWDFDevice2-Schnittstelle aufgerufen und dann " AssignSxWakeSettings" aufgerufen.

    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

   
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform Desktop
UMDF-Mindestversion 1.9
Header wudfddi.h (einschließlich Wudfddi.h)
DLL WUDFx.dll

Siehe auch

IWDFDevice2

IWDFDevice2::AssignS0IdleSettings