Метод IWDFDevice3::AssignS0IdleSettingsEx (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.]
Метод AssignS0IdleSettingsEx предоставляет предоставленные драйвером сведения, которые платформа использует, когда устройство находится в состоянии простоя и система находится в рабочем состоянии (S0).
Синтаксис
HRESULT AssignS0IdleSettingsEx(
[in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);
Параметры
[in] IdleSettings
Указатель на структуру WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS , инициализированную вызовом макроса WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT .
Возвращаемое значение
Метод возвращает S_OK, если операция выполнена успешно. В противном случае этот метод возвращает один из кодов ошибок, определенных в Winerror.h.
Комментарии
Драйвер может вызвать AssignS0IdleSettingsEx в любой момент после вызова драйвера IWDFDriver::CreateDevice. Перед вызовом IWDFDriver::CreateDevice драйвер должен вызвать IWDFDeviceInitialize::SetPowerPolicyOwnership с параметром fTrue, равнымTRUE. Пример этой последовательности вызовов см. в разделе IWDFDriver::CreateDevice.
Если драйвер вызывает AssignS0IdleSettingsEx несколько раз, следуйте правилам, описанным в разделе Примечания статьи AssignS0IdleSettings.
Дополнительные сведения о отключении бездействующего питания см. в разделе Поддержка Power-Down простоя в драйверах на основе UMDF.
Примеры
В следующем примере кода инициализируется структура WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS и устанавливается значение времени ожидания простоя в 10 секунд. Затем в примере получается интерфейс IWDFDevice3 и вызывается метод AssignS0IdleSettingsEx.
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);
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1.11 |
Верхняя часть | wudfddi.h |
DLL | WUDFx.dll |