ACPI 컨트롤 메서드 평가

ACPI(고급 구성 및 전원 인터페이스) 제어 방법은 시스템 하드웨어를 쿼리하고 구성하는 작업을 선언하고 정의하는 소프트웨어입니다. ACPI 호환 시스템은 최소한의 제어 메서드 집합을 제공합니다. 제어 메서드는 ASL(ACPI 원본 언어)로 작성되고, ASL 컴파일러에서 AML(ACPI Machine Language)으로 컴파일되고, 시스템 펌웨어에서 ACPI 네임스페이스로 로드되고, ACPI 드라이버에서 해석됩니다.

KMDF(커널 모드 드라이버 프레임워크) 또는 WDM(Windows 드라이버 모델)의 요구 사항을 준수하는 커널 모드 디바이스 드라이버는 디바이스 제어 요청을 사용하여 ACPI 제어 방법을 평가할 수 있습니다. Windows 8 시작하여 UMDF(사용자 모드 드라이버 프레임워크)의 요구 사항을 준수하는 사용자 모드 드라이버는 디바이스 제어 요청을 사용하여 ACPI 제어 메서드를 평가할 수 있습니다. 일반적으로 드라이버는 ACPI 제어 메서드를 평가하여 플랫폼별 함수를 시작하거나 구성합니다. 드라이버는 로드되는 PDO(물리적 디바이스 개체) 의 네임스페이스 내에서 ACPI 제어 메서드를 평가할 수 있습니다. ACPI 열거형 디바이스의 디바이스 스택에 로드된 드라이버의 경우 ACPI 드라이버는 항상 디바이스 스택에서 PDO를 만들고 작동하는 버스 드라이버입니다. 이 기능에는 부모 디바이스의 하위 항목인 자식 개체에서 지원하는 제어 메서드 평가가 포함됩니다.

드라이버는 다음 IRP_MJ_DEVICE_CONTROL 요청 중 하나를 디바이스에 전송하여 제어 메서드를 평가합니다.

  • IOCTL_ACPI_EVAL_METHOD

    이 요청은 요청이 전송되는 디바이스에서 지원하는 제어 메서드를 동기적으로 평가합니다. 이 IOCTL을 사용하기 위해 디바이스용 드라이버는 입력 및 출력 메서드 인수 버퍼, 메서드 이름 및 요청이 완료되기를 기다리는 이벤트 개체를 제공합니다. 메서드는 요청이 전송되는 디바이스의 ACPI 네임스페이스에 있는 직접 자식 개체여야 합니다.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD

    이 요청은 요청이 전송되는 디바이스에서 지원하는 제어 메서드를 비동기적으로 평가합니다. 이 IOCTL을 사용하기 위해 디바이스용 드라이버는 입력 및 출력 메서드 인수 버퍼, 메서드 이름 및 I/O 관리자가 모든 하위 수준 드라이버가 요청을 완료한 후 호출하는 IoCompletion 루틴을 제공합니다. 메서드는 요청이 전송되는 디바이스의 ACPI 네임스페이스에 있는 직접 자식 개체여야 합니다.

  • IOCTL_ACPI_EVAL_METHOD_EX

    이 요청은 디바이스 또는 요청이 전송되는 디바이스의 하위 자식 개체에서 지원하는 제어 메서드를 동기적으로 평가합니다. 이 IOCTL을 사용하기 위해 디바이스용 드라이버는 입력 및 출력 메서드 인수 버퍼, 디바이스의 ACPI 네임스페이스에 있는 컨트롤 메서드의 경로 및 이름 및 요청이 완료되기를 기다리는 이벤트 개체를 제공합니다.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD_EX

    이 요청은 디바이스 또는 요청이 전송되는 디바이스의 하위 자식 개체에서 지원하는 제어 메서드를 비동기적으로 평가합니다. 이 IOCTL을 사용하려면 디바이스용 드라이버가 입력 및 출력 메서드 인수 버퍼, 디바이스의 ACPI 네임스페이스에 있는 컨트롤 메서드의 경로 및 이름, 모든 하위 수준 드라이버가 요청을 완료한 후 I/O 관리자가 호출하는 IoCompletion 루틴을 제공합니다.

ACPI 제어 메서드를 동기적으로 평가하는 방법에 대한 자세한 내용은 동기적으로 ACPI 제어 메서드 평가를 참조하세요. ACPI 제어 메서드를 비동기적으로 평가하는 방법에 대한 자세한 내용은 IOCTL_ACPI_ASYNC_EVAL_METHODIOCTL_ACPI_ASYNC_EVAL_METHOD_EX.

디바이스의 드라이버가 디바이스의 직제 자식 개체가 아닌 제어 메서드를 평가하려면 드라이버가 디바이스의 ACPI 네임스페이스에 있는 메서드의 경로와 이름을 제공해야 합니다. Windows는 디바이스의 자식 개체의 경로와 이름을 가져오기 위해 디바이스용 드라이버가 다음을 열거하는 데 사용할 수 있는 IOCTL_ACPI_ENUM_CHILDREN 요청을 지원합니다.

  • 디바이스 및 직동 자식 디바이스.

  • 디바이스 및 모든 하위 자식 디바이스입니다.

  • 특히 제어 메서드를 포함하여 디바이스의 ACPI 네임스페이스에 제공된 이름의 하위 자식 개체입니다.

디바이스의 네임스페이스에서 디바이스 및 메서드를 열거하는 방법에 대한 자세한 내용은 자식 디바이스 열거 및 제어 메서드를 참조하세요.

드라이버가 제어 메서드를 평가하는 데 사용할 수 있는 시스템 제공 매크로에 대한 자세한 내용은 제어 메서드 매크로를 참조하세요.

ACPI 디바이스, 제어 메서드 및 네임스페이스에 대한 자세한 내용은 고급 구성 및 전원 인터페이스 사양을 참조하세요.