Bagikan melalui


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)

Lihat juga

DEVICE_CAPABILITIES

IAdapterPowerManagement

IRP_MN_QUERY_CAPABILITIES

PcRegisterAdapterPowerManagement