Metode IAdapterPowerManagement::QueryDeviceCapabilities (portcls.h)
Metode QueryDeviceCapabilities
ini dipanggil oleh PortCls sebagai respons terhadap Plug and Play IRP_MN_QUERY_CAPABILITIES IRP.
Sintaks
NTSTATUS QueryDeviceCapabilities(
[in] PDEVICE_CAPABILITIES PowerDeviceCaps
);
Parameter
[in] PowerDeviceCaps
Penunjuk ke struktur DEVICE_CAPABILITIES yang menentukan kemampuan perangkat
Nilai kembali
QueryDeviceCapabilities
mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, metode mengembalikan kode kesalahan yang sesuai.
Keterangan
Metode ini dipanggil pada startup driver untuk mendapatkan kemampuan untuk perangkat. Metode ini meneruskan ke driver adaptor struktur kemampuan yang menentukan pemetaan antara status daya sistem dan status daya perangkat. PortCls menulis nilai default untuk pemetaan ini ke dalam struktur sebelum memanggil metode . Selama panggilan, driver adaptor memiliki kesempatan untuk mengedit pemetaan, jika perlu.
Biasanya, driver adaptor tidak boleh mengubah pengaturan ini. Jika driver adaptor harus mengambil alih default, driver adaptor dapat mengubah pemetaan ke status daya perangkat yang lebih dalam (kurang bertenaga), tetapi tidak menjadi status daya perangkat yang lebih lemah (lebih bertenaga). Misalnya, pemetaan untuk S1 (PowerSystemSleeping1) dapat diubah dari D1 ke D3, tetapi tidak ke D0.
Untuk mengisi struktur PowerDeviceCaps untuk perangkat, driver adaptor harus memanggil PcRegisterAdapterPowerManagement untuk mendaftarkan antarmuka IAdapterPowerManagement pada waktu mulai perangkat. Sistem operasi meminta perangkat sebelum memanggil rutinitas startup perangkat driver adaptor.
Untuk mengubah pemetaan antara status daya sistem dan status daya perangkat, driver adaptor mengubah nilai dalam array DeviceState dalam struktur PowerDeviceCaps . Pemetaan ini harus diubah hanya jika perlu. Contoh kode berikut menunjukkan cara memetakan pemetaan D1 ke D3:
for (i=ULONG(PowerSystemWorking); i<=ULONG(PowerSystemShutdown); i++)
{
if (PowerDeviceCaps->DeviceState[i] == PowerDeviceD1)
{
PowerDeviceCaps->DeviceState[i] = PowerDeviceD3;
}
}
Kode untuk QueryDeviceCapabilities
metode harus berada di memori halaman.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | portcls.h (termasuk Portcls.h) |