enumerasi WDF_POWER_POLICY_S0_IDLE_CAPABILITIES (wdfdevice.h)
[Berlaku untuk KMDF dan UMDF]
Enumerasi WDF_POWER_POLICY_S0_IDLE_CAPABILITIES mengidentifikasi kemampuan yang dapat didukung perangkat saat memasuki status berdaya rendah saat sedang diam.
Sintaks
typedef enum _WDF_POWER_POLICY_S0_IDLE_CAPABILITIES {
IdleCapsInvalid = 0,
IdleCannotWakeFromS0,
IdleCanWakeFromS0,
IdleUsbSelectiveSuspend
} WDF_POWER_POLICY_S0_IDLE_CAPABILITIES;
Konstanta
IdleCapsInvalid Nilai: 0 Hanya untuk penggunaan internal. |
IdleCannotWakeFromS0 Perangkat tidak dapat membangunkan dirinya dari status daya rendah saat sistem dalam status berfungsi (S0). |
IdleCanWakeFromS0 Perangkat dapat membangunkan dirinya dari status daya rendah saat sistem dalam status berfungsi (S0). |
IdleUsbSelectiveSuspend Perangkat terhubung ke bus USB dan mendukung penangguhan selektif USB. Gunakan nilai ini jika perangkat yang terhubung dengan USB Anda mendukung idling dan bangun sendiri saat komputer dalam keadaan berfungsi. Jika perangkat USB Anda hanya mendukung idling, gunakan IdleCannotWakeFromS0. (Driver untuk perangkat USB tidak boleh menentukan IdleCanWakeFromS0.) Lihat contoh kode di bagian Contoh berikut. Untuk Windows XP, kerangka kerja mendukung penangguhan selektif USB hanya jika struktur USB_CONFIGURATION_DESCRIPTOR perangkat menunjukkan bahwa perangkat mendukung bangun jarak jauh. Untuk Windows Vista dan versi Windows yang lebih baru, kerangka kerja mendukung selektif USB menangguhkan apakah perangkat mendukung bangun jarak jauh atau tidak. |
Keterangan
Enumerasi WDF_POWER_POLICY_S0_IDLE_CAPABILITIES digunakan dalam struktur WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS.
Contoh
Contoh kode berikut menunjukkan cara mengaktifkan dukungan diam untuk perangkat USB. Dalam setiap kasus, nilai pengembalian STATUS_POWER_STATE_INVALID berarti driver bus telah melaporkan bahwa perangkat tidak dapat bangun sendiri.
Contoh KMDF
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(&idleSettings,
IdleUsbSelectSuspend);
status = WdfDeviceAssignS0IdleSettings(device,
&idleSettings);
if (status == STATUS_POWER_STATE_INVALID){
//
// The device probably does not support wake.
// It might support idle without wake.
//
idleSettings.IdleCaps = IdleCannotWakeFromS0;
status = WdfDeviceAssignS0IdleSettings(device,
&IdleSettings);
if (!NT_SUCCESS(status) {...}
}
else {...}
Contoh UMDF
hr = pIWDFDevice2->AssignS0IdleSettings(IdleUsbSelectSuspend,
PowerDeviceD3,
IDLEWAKE_TIMEOUT_MSEC,
IdleAllowUserControl,
WdfTrue);
if (hr == HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)){
//
// The device probably does not support wake.
// It might support idle without wake.
//
hr = pIWDFDevice2->AssignS0IdleSettings(IdleCannotWakeFromS0,
PowerDeviceD3,
IDLEWAKE_TIMEOUT_MSEC,
IdleAllowUserControl,
WdfTrue);
if (!SUCCEEDED(hr)) {...}
}
else {...}
Persyaratan
Persyaratan | Nilai |
---|---|
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 1.11 |
Header | wdfdevice.h (termasuk Wdf.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk