Bagikan melalui


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
STATUS_INFO_LENGTH_MISMATCH
Ukuran struktur WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS salah.
STATUS_INVALID_DEVICE_REQUEST
Driver panggilan bukan pemilik kebijakan daya perangkat.
STATUS_INVALID_PARAMETER
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

EvtDeviceWdmPrePoFxUnregisterDevice

WDF_POWER_FRAMEWORK_SETTINGS

WDF_POWER_FRAMEWORK_SETTINGS_INIT