IWDFDevice3::AssignS0IdleSettingsEx-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. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]
Die AssignS0IdleSettingsEx-Methode stellt vom Treiber bereitgestellte Informationen bereit, die das Framework verwendet, wenn sich ein Gerät im Leerlauf befindet und sich das System im Betriebszustand (S0) befindet.
Syntax
HRESULT AssignS0IdleSettingsEx(
[in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);
Parameter
[in] IdleSettings
Ein Zeiger auf eine WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS-Struktur , die durch einen Aufruf des WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT-Makros initialisiert wurde.
Rückgabewert
Die -Methode gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode einen der Fehlercodes zurück, die in Winerror.h definiert sind.
Hinweise
Ein Treiber kann AssignS0IdleSettingsEx jederzeit aufrufen, nachdem der Treiber IWDFDriver::CreateDevice aufgerufen hat. Vor dem Aufrufen von IWDFDriver::CreateDevice muss der Treiber IWDFDeviceInitialize::SetPowerPolicyOwnership aufrufen, wobei der fTrue-Parameter auf TRUE festgelegt ist. Ein Beispiel für diese Aufrufsequenz finden Sie unter IWDFDriver::CreateDevice.
Wenn Ihr Treiber AssignS0IdleSettingsEx mehrmals aufruft , befolgen Sie die Regeln, die im Abschnitt Hinweise von AssignS0IdleSettings beschrieben sind.
Weitere Informationen zum Herunterfahren im Leerlauf finden Sie unter Unterstützung von leerlaufbasierten Power-Down in UMDF-basierten Treibern.
Beispiele
Im folgenden Codebeispiel wird eine WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS-Struktur initialisiert und ein Leerlauftimeoutwert von 10 Sekunden festgelegt. Im Beispiel wird dann die IWDFDevice3-Schnittstelle abgerufen und AssignS0IdleSettingsEx aufgerufen.
IWDFDevice3 *pIWDFDevice3 = NULL;
HRESULT hr;
WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS idleSettings;
WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(
&idleSettings,
IdleCanWakeFromS0
);
idleSettings.IdleTimeout = 10000;
//
// Get a pointer to the IWDFDevice3 interface.
//
hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice3),
(void**) &pIWDFDevice3);
if (SUCCEEDED(hr))
{
hr = pIWDFDevice3->AssignS0IdleSettingsEx(&idleSettings
);
}
...
SAFE_RELEASE(pIWDFDevice3);
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.11 |
Kopfzeile | wudfddi.h |
DLL | WUDFx.dll |