다음을 통해 공유


디바이스의 D3cold 기능

디바이스에 대한 PPO(전원 정책 소유자)인 드라이버가 디바이스가 D3cold를 입력하도록 설정하기 전에(컴퓨터가 S0에 남아 있을 때) 드라이버가 디바이스가 응답 중인지 확인하고 디바이스가 D3cold에 진입한 후에도 계속 올바르게 작동해야 합니다.

PnP(플러그 앤 플레이) 디바이스의 경우 운영 체제는 일반적으로 부모 버스 드라이버에서 디바이스의 D3cold 기능에 대한 정보를 가져옵니다.

예를 들어 디바이스가 PCI 또는 PCI Express 버스에 연결된 경우 디바이스의 PCI 구성 공간에는 디바이스의 기능을 나타내는 전원 관리 레지스터 블록이 포함됩니다. 이 블록의 기능 플래그는 디바이스가 전원 관리 이벤트에 신호를 보낼 수 있는 디바이스 전원 상태 또는 PME(절전 모드 해제 이벤트의 PCI 용어)를 지정합니다. 이러한 상태에는 D3hot 및 D3cold가 포함될 수 있습니다. PCI 전원 관리에 대한 자세한 내용은 PCI Bus 전원 관리 인터페이스 사양을 참조하세요.

디바이스가 들어오는 저전력 Dx 상태에서 절전 모드 해제 이벤트를 신호할 수 있어야 하는 경우 디바이스, 부모 버스 컨트롤러 및 하드웨어 플랫폼이 D3cold에서 절전 모드 해제 이벤트 신호를 지원하지 않는 한 디바이스는 D3cold를 입력하지 않아야 합니다.

디바이스에 대한 KMDF 드라이버는 WdfDeviceAssignS0IdleSettings 메서드를 호출하여 디바이스가 절전 모드 해제 이벤트를 신호할 수 있는 가장 낮은 전원 디바이스 전원 상태에서 유휴 상태를 설정할 수 있도록 합니다. KMDF 버전 1.11부터 WdfDeviceAssignS0IdleSettings 는 가능한 저전력 Dx 상태 범위에 D3cold를 포함합니다. 이 방법을 사용하면 디바이스, 부모 버스 드라이버 및 ACPI 시스템 펌웨어가 D3cold의 절전 모드 해제 이벤트를 지원하는 경우에만 디바이스가 D3cold에서 유휴 상태로 전환할 수 있습니다.

디바이스의 WDM 드라이버는 디바이스가 유휴 상태일 때 디바이스를 이동할 저전력 Dx 상태를 결정해야 합니다. 반면, WdfDeviceAssignS0IdleSettings 는 드라이버가 없도록 이 Dx 상태를 자동으로 선택합니다. 디바이스가 들어오는 저전력 Dx 상태에서 절전 모드 해제 이벤트를 신호할 수 있어야 하는 경우 드라이버는 GetIdleWakeInfo 루틴을 호출하여 디바이스가 절전 모드 해제 이벤트에 신호를 보낼 수 있는 가장 낮은 전원 디바이스 전원 상태를 결정할 수 있습니다. 이 정보를 얻기 위해 GetIdleWakeInfo 는 기본 버스 드라이버 및 ACPI 시스템 펌웨어를 쿼리합니다. GetIdleWakeInfo의 정보에 따라 드라이버는 SetD3ColdSupport 루틴을 호출하여 디바이스의 D3cold 전환을 사용하거나 사용하지 않도록 설정할 수 있습니다.

디바이스에 D3cold에서 절전 모드 해제 이벤트를 알리는 기능이 필요하지 않을 수 있습니다. 대신 디바이스는 소프트웨어 시작 작업에 대한 응답으로만 D3cold에서 D0으로 전환해야 할 수 있습니다. 예를 들어 드라이버가 디바이스에 대한 I/O 요청을 수신하는 경우 드라이버가 디바이스를 절전 모드 해제해야 할 수 있습니다. 몇 가지 예외를 제외하고, 이러한 디바이스에 대한 드라이버는 디바이스가 D3cold를 입력하도록 설정할 수 있습니다. 가능한 예외는 D3cold에서 D0으로 전환하는 데 많은 시간이 필요한 디바이스입니다. 예를 들어 디스플레이 디바이스에는 D3cold를 입력하고 디바이스가 D3cold를 종료한 후 복원되기 전에 저장해야 하는 많은 양의 메모리가 포함될 수 있습니다.

D3cold에 대한 ACPI 지원에 대한 자세한 내용은 D3cold에 대한 펌웨어 요구 사항을 참조하세요.