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 |
---|---|
|
Der Aufrufer hat einen ungültigen Wert für einen Eingabeparameter angegeben. |
|
Der aufrufende Treiber ist nicht der Besitzer der Energierichtlinie. |
|
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.
- Speichert den Wert des UserControlOfWakeSettings-Parameters.
- Sucht nach einer Benutzereinstellung in der Registrierung, wenn der Wert des Parameters EnabledWdfUseDefaultist.
- 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.)
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 |