Bagikan melalui


Metode IWDFDevice2::AssignSxWakeSettings (wudfddi.h)

[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]

Metode AssignSxWakeSettings menyediakan informasi yang disediakan driver tentang kemampuan perangkat untuk memicu sinyal bangun saat perangkat dan sistem dalam status daya rendah.

Sintaks

HRESULT AssignSxWakeSettings(
  [in] DEVICE_POWER_STATE                    DxState,
  [in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
  [in] WDF_TRI_STATE                         Enabled
);

Parameter

[in] DxState

Enumerator berjenis DEVICE_POWER_STATE yang mengidentifikasi status daya perangkat rendah yang akan dimasukkan perangkat ketika status daya sistem turun ke status daya rendah yang dapat dibangkitkan. Nilai DxState tidak boleh PowerDeviceD0. nilai DEVICE_POWER_STATE didefinisikan dalam wdm.h.

[in] UserControlOfWakeSettings

Enumerator yang diketik WDF_POWER_POLICY_SX_WAKE_USER_CONTROL yang menunjukkan apakah pengguna memiliki kemampuan untuk mengubah pengaturan bangun perangkat.

[in] Enabled

Enumerator jenis WDF_TRI_STATE yang menunjukkan apakah perangkat dapat membangunkan sistem (yaitu, memulihkan sistem ke S0) ketika sistem dalam status daya rendah. Anggota ini bisa memiliki salah satu nilai berikut ini:

WdfTrue - Membangunkan sistem diaktifkan.

WdfFalse - Membangunkan sistem dinonaktifkan.

WdfUseDefault - Membangunkan sistem awalnya diaktifkan secara default; tetapi jika anggota UserControlOfWakeSettings diatur ke WakeAllowUserControl, pengaturan pengguna atau file INF driver akan mengambil alih nilai awal.

Jika membangunkan sistem diaktifkan dan sistem akan memasuki status daya rendah, kerangka kerja memanggil fungsi panggilan balik IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx driver sebelum perangkat memasuki status daya rendah.

Nilai kembali

AssignSxWakeSettings mengembalikan S_OK jika operasi berhasil. Jika tidak, metode mungkin mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
E_INVALIDARG
Pemanggil menentukan nilai yang tidak valid untuk parameter input.
HRESULT_FROM_NT(STATUS_INVALID_DEVICE_REQUEST)
Driver panggilan bukan pemilik kebijakan daya perangkat.
HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)
Parameter DxState menentukan status daya perangkat yang tidak valid, atau driver bus menunjukkan bahwa perangkat tidak dapat memicu sinyal bangun,
 

Metode ini mungkin mengembalikan salah satu nilai lain yang dikandung Winerror.h.

Keterangan

Pertama kali driver memanggil AssignSxWakeSettings, tindakan berikut terjadi:

  • Kerangka kerja menyimpan nilai parameter.
  • Jika parameter UserControlOfWakeSettings diatur ke WakeAllowUserControl dan jika parameter Diaktifkan diatur ke WdfUseDefault, kerangka kerja membaca registri untuk mengetahui apakah pengguna telah mengaktifkan membangunkan sistem.
Selama panggilan berikutnya ke AssignSxWakeSettings, kerangka kerja tidak menyimpan nilai parameter UserControlOfWakeSettings . Dengan kata lain, kerangka kerja melakukan langkah-langkah berikut saat pertama kali driver memanggil AssignSxWakeSettings tetapi tidak selama panggilan nanti:
  • Menyimpan nilai parameter UserControlOfWakeSettings .
  • Mencari pengaturan pengguna di registri, jika nilai parameter yang Diaktifkan adalah WdfUseDefault.
Aturan berikut berlaku untuk nilai yang Anda tentukan untuk parameter DxState :
  • Nilai tidak boleh PowerDeviceD0.
  • Jika Anda menentukan DevicePowerMaximum, kerangka kerja menggunakan nilai driver mode kernel untuk bus perangkat yang disediakan di anggota DeviceWake dari struktur WDF_DEVICE_POWER_CAPABILITIES-nya .
  • Anda tidak dapat menentukan status daya perangkat yang lebih rendah dari status daya perangkat di anggota DeviceWake dari struktur WDF_DEVICE_POWER_CAPABILITIES driver bus mode kernel. (Dengan kata lain, jika nilai DeviceWake driver bus adalah PowerDeviceD2, nilai DxState driver fungsi Anda tidak boleh PowerDeviceD3.)
Untuk informasi tentang entri registri yang mengontrol kemampuan bangun perangkat, lihat Kontrol Pengguna Perilaku Menganggur perangkat dan Bangun di UMDF.

Untuk informasi selengkapnya tentang mendukung kemampuan bangun perangkat, lihat Wake-Up Sistem Pendukung di Driver berbasis UMDF.

Contoh kode berikut mendapatkan antarmuka IWDFDevice2 lalu memanggil AssignSxWakeSettings.

    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);

Persyaratan

Persyaratan Nilai
Akhir dukungan Tidak tersedia di UMDF 2.0 dan yang lebih baru.
Target Platform Desktop
Versi UMDF minimum 1.9
Header wudfddi.h (termasuk Wudfddi.h)
DLL WUDFx.dll

Lihat juga

IWDFDevice2

IWDFDevice2::AssignS0IdleSettings