Метод 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 |