Fungsi WdfDeviceWdmAssignPowerFrameworkSettings (wdfdevice.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfDeviceWdmAssignPowerFrameworkSettings mendaftarkan pengaturan kerangka kerja manajemen daya (PoFx) untuk perangkat komponen tunggal.
Sintaks
NTSTATUS WdfDeviceWdmAssignPowerFrameworkSettings(
[in] WDFDEVICE Device,
[in] PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja tempat pengaturan PoFx ditentukan.
[in] PowerFrameworkSettings
Penunjuk ke struktur WDF_POWER_FRAMEWORK_SETTINGS yang menjelaskan pengaturan PoFx driver klien.
Nilai kembali
Metode WdfDeviceWdmAssignPowerFrameworkSettings mengembalikan nilai NTSTATUS yang menunjukkan keberhasilan atau kegagalan operasi.
Menampilkan kode | Deskripsi |
---|---|
|
Ukuran struktur WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS salah. |
|
Driver panggilan bukan pemilik kebijakan daya perangkat. |
|
Nilai Pengaturan tidak valid terdeteksi. |
Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.
Keterangan
Metode WdfDeviceWdmAssignPowerFrameworkSettings hanya berlaku untuk perangkat komponen tunggal.
Sebelum memanggil metode ini, driver klien harus terlebih dahulu berhasil memanggil WdfDeviceAssignS0IdleSettings dan mengatur bidang IdleTimeoutType dari struktur WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS ke SystemManagedIdleTimeout atau SystemManagedIdleTimeoutWithHint.
Driver harus memanggil WdfDeviceWdmAssignPowerFrameworkSettings sebelum atau selama pertama kali perangkat dimulai. Karena perangkat dapat dimulai lebih dari sekali, misalnya jika penyeimbangan ulang sumber daya terjadi, driver mungkin memanggil metode ini dari dalam EvtDriverDeviceAdd atau EvtDeviceSelfManagedIoInit. Kerangka kerja memanggil fungsi-fungsi ini hanya sekali, bahkan jika perangkat dimulai lebih dari sekali.
Atau, driver dapat melacak apakah telah disebut WdfDeviceWdmAssignPowerFrameworkSettings, dan panggil dari salah satu fungsi panggilan balik berikut: EvtDevicePrepareHardware, EvtDeviceD0Entry, EvtDeviceD0EntryPostInterruptsEnabled, atau EvtDeviceSelfManagedIoRestart.
Jika driver Anda memanggil WdfDeviceWdmAssignPowerFrameworkSettings lebih dari sekali, kerangka kerja menghasilkan kesalahan pemverifikasi.
Kerangka kerja manajemen daya (PoFx) hanya tersedia di Windows 8 dan yang lebih baru. Saat berjalan pada sistem operasi yang tidak mendukung PoFx, WdfDeviceWdmAssignPowerFrameworkSettings tidak mengambil tindakan dan mengembalikan STATUS_SUCCESS.
Untuk informasi selengkapnya, lihat Mendukung Status Daya Fungsi dan Gambaran Umum Power Management Framework.
Contoh
Dalam contoh kode berikut, driver menginisialisasi struktur WDF_POWER_FRAMEWORK_SETTINGS dengan memanggil fungsi WDF_POWER_FRAMEWORK_SETTINGS_INIT . Driver kemudian secara manual mengatur beberapa anggota struktur, dan kemudian memanggil WdfDeviceWdmAssignPowerFrameworkSettings.
NTSTATUS status;
WDF_POWER_FRAMEWORK_SETTINGS poFxSettings;
WDF_POWER_FRAMEWORK_SETTINGS_INIT(&poFxSettings);
poFxSettings.EvtDeviceWdmPostPoFxRegisterDevice =
SingleCompWdmEvtDeviceWdmPostPoFxRegisterDevice;
poFxSettings.EvtDeviceWdmPrePoFxUnregisterDevice =
SingleCompWdmEvtDeviceWdmPrePoFxUnregisterDevice;
poFxSettings.Component = &component;
poFxSettings.ComponentIdleStateCallback =
SingleCompWdmIdleStateCallback;
poFxSettings.PoFxDeviceContext = (PVOID) Device;
status = WdfDeviceWdmAssignPowerFrameworkSettings(Device, &poFxSettings);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Target Platform | Universal |
Versi KMDF minimum | 1.11 |
Versi UMDF minimum | 2.33 |
Header | wdfdevice.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.) |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf) |
Lihat juga
EvtDeviceWdmPostPoFxRegisterDevice
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