Bagikan melalui


Mengevaluasi Metode Kontrol ACPI

Metode kontrol Konfigurasi Tingkat Lanjut dan Antarmuka Daya (ACPI) adalah perangkat lunak yang mendeklarasikan dan menentukan operasi untuk mengkueri dan mengonfigurasi perangkat keras sistem. Sistem yang kompatibel dengan ACPI menyediakan serangkaian metode kontrol minimal. Metode kontrol ditulis dalam Acpi Source Language (ASL), yang dikompilasi oleh pengkompilasi ASL ke dalam ACPI Machine Language (AML), dimuat dari firmware sistem ke dalam namespace ACPI, dan ditafsirkan oleh driver ACPI.

Driver perangkat mode kernel yang mematuhi persyaratan Kernel-Mode Driver Framework (KMDF) atau Windows Driver Model (WDM) dapat mengevaluasi metode kontrol ACPI dengan menggunakan permintaan kontrol perangkat. Dimulai dengan Windows 8, driver mode pengguna yang mematuhi persyaratan User-Mode Driver Framework (UMDF) dapat menggunakan permintaan kontrol perangkat untuk mengevaluasi metode kontrol ACPI. Biasanya, driver mengevaluasi metode kontrol ACPI untuk memulai atau mengonfigurasi fungsi khusus platform. Driver dapat mengevaluasi metode kontrol ACPI dalam namespace objek perangkat fisik (PDO) yang dimuat. Untuk driver yang dimuat dalam rangkaian perangkat yang dienumerasi oleh ACPI, driver ACPI selalu menjadi driver bus yang membuat dan mengoperasikan PDO dalam rangkaian perangkat tersebut. Kemampuan ini mencakup evaluasi metode pengendalian yang didukung oleh objek anak yang merupakan keturunan dari perangkat induk.

Driver mengevaluasi metode kontrol dengan mengirim salah satu permintaan IRP_MJ_DEVICE_CONTROL berikut ke perangkat.

  • IOCTL_ACPI_EVAL_METHOD

    Permintaan ini secara sinkron mengevaluasi metode kontrol yang didukung oleh perangkat tempat permintaan dikirim. Untuk menggunakan IOCTL ini, driver untuk perangkat menyediakan buffer argumen metode input dan output, nama metode, dan objek peristiwa yang menunggu permintaan selesai. Metode harus menjadi objek turunan langsung di namespace ACPI perangkat tempat permintaan dikirim.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD

    Permintaan ini secara asinkron mengevaluasi metode kontrol yang didukung oleh perangkat tempat permintaan dikirim. Untuk menggunakan IOCTL ini, driver perangkat menyediakan buffer untuk argumen metode input dan output, nama metode, serta rutin IoCompletion yang dipanggil oleh manajer I/O setelah semua driver tingkat bawah menyelesaikan permintaan. Metode harus menjadi objek turunan langsung di namespace ACPI perangkat tempat permintaan dikirim.

  • IOCTL_ACPI_EVAL_METHOD_EX

    Permintaan ini secara sinkron mengevaluasi metode kontrol yang didukung oleh perangkat atau objek turunan perangkat tempat permintaan dikirim. Untuk menggunakan IOCTL ini, driver untuk perangkat menyediakan buffer argumen metode input dan output, jalur dan nama metode kontrol di namespace ACPI perangkat, dan objek peristiwa yang menunggu permintaan selesai.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD_EX

    Permintaan ini secara asinkron mengevaluasi metode kontrol yang didukung oleh perangkat atau objek turunan perangkat tempat permintaan dikirim. Untuk menggunakan IOCTL ini, driver untuk sebuah perangkat menyediakan buffer argumen metode input dan output, jalur dan nama metode kontrol dalam namespace ACPI perangkat, dan rutin IoCompletion yang dipanggil oleh manajer I/O setelah semua driver tingkat bawah menyelesaikan permintaan.

Untuk informasi selengkapnya tentang cara mengevaluasi metode kontrol ACPI secara sinkron, lihat Mengevaluasi Metode Kontrol ACPI Secara sinkron. Untuk informasi selengkapnya tentang cara mengevaluasi metode kontrol ACPI secara asinkron, lihat IOCTL_ACPI_ASYNC_EVAL_METHOD dan IOCTL_ACPI_ASYNC_EVAL_METHOD_EX.

Agar driver perangkat mengevaluasi metode kontrol yang bukan objek turunan langsung perangkat, driver harus menyediakan jalur dan nama metode di namespace ACPI perangkat. Untuk membantu mendapatkan jalur dan nama objek anak dari suatu perangkat, Windows mendukung permintaan IOCTL_ACPI_ENUM_CHILDREN, yang dapat digunakan oleh driver perangkat untuk mendaftarkan hal-hal berikut:

  • Perangkat dan perangkat anak langsungnya.

  • Perangkat dan semua perangkat anak turunan.

  • Objek turunan anak dari nama yang disediakan di namespace ACPI perangkat termasuk, khususnya, metode pengendalian.

Untuk informasi tentang cara menghitung perangkat dan metode di namespace perangkat, lihat Menghitung Perangkat Anak dan Metode Kontrol.

Untuk informasi tentang makro yang disediakan sistem yang dapat digunakan driver untuk membantu mengevaluasi metode kontrol, lihat Makro Metode Kontrol.

Untuk informasi selengkapnya tentang perangkat ACPI, metode kontrol, dan namespace, lihat Spesifikasi Antarmuka Konfigurasi dan Daya Lanjut.