Fungsi WdfDeviceAssignS0IdleSettings (wdfdevice.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfDeviceAssignS0IdleSettings menyediakan informasi yang disediakan driver yang digunakan kerangka kerja saat perangkat menganggur dan sistem dalam status berfungsi (S0).
Sintaks
NTSTATUS WdfDeviceAssignS0IdleSettings(
[in] WDFDEVICE Device,
[in] PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja.
[in] Settings
Penunjuk ke struktur WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS yang disediakan penelepon.
Nilai kembali
Jika operasi berhasil, WdfDeviceAssignS0IdleSettings mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:
Menampilkan kode | Deskripsi |
---|---|
|
Driver panggilan bukan pemilik kebijakan daya perangkat. |
|
Nilai Pengaturan tidak valid terdeteksi. |
|
Ukuran struktur WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS salah. |
|
Nilai ini dikembalikan jika salah satu hal berikut ini terjadi:
|
Metode ini mungkin mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Jika driver mengatur anggota IdleTimeoutTypedari WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS ke SystemManagedIdleTimeout atau SystemManagedIdleTimeoutWithHint, driver harus memanggil WdfDeviceAssignS0IdleSettings sebelum kembali dari EvtDeviceD0Entry. Biasanya, driver pertama kali memanggil WdfDeviceAssignS0IdleSettings dari EvtDriverDeviceAdd.
Panggilan tambahan ke WdfDeviceAssignS0IdleSettings dapat dilakukan kapan saja. Namun, setelah driver menetapkan nilai anggota IdleTimeoutType dalam panggilan pertamanya ke WdfDeviceAssignS0IdleSettings, itu tidak boleh mengubah nilai ini dalam panggilan nanti ke metode ini.
Jika driver mendaftar untuk pemberitahuan asinkron di EvtDriverDeviceAdd (misalnya dengan memanggil PoRegisterPowerSettingCallback atau IoRegisterPlugPlayNotification), driver tidak boleh memanggil WdfDeviceAssignS0IdleSettings dari dalam rutinitas panggilan balik driver yang terdaftar.
Untuk informasi selengkapnya, lihat Mendukung Power-Down Menganggur.
Contoh
Contoh kode berikut menginisialisasi struktur WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS , menetapkan nilai batas waktu diam 10 detik, dan memanggil WdfDeviceAssignS0IdleSettings.
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS idleSettings;
NTSTATUS status = STATUS_SUCCESS;
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(
&idleSettings,
IdleCanWakeFromS0
);
idleSettings.IdleTimeout = 10000;
status = WdfDeviceAssignS0IdleSettings(
device,
&idleSettings
);
if (!NT_SUCCESS(status)) {
return status;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfdevice.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), FDOPowerPolicyOwnerAPI(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NonFDONotPowerPolicyOwnerAPI(kmdf) |