Поделиться через


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

См. также раздел

IWDFDevice2::AssignS0IdleSettings

IWDFDevice3

WdfDeviceAssignS0IdleSettings