다음을 통해 공유


D3cold로 전환 사용

모든 버전의 Windows를 사용하면 컴퓨터가 절전 모드인 동안 디바이스가 D3cold에 있을 수 있습니다(시스템 저전력 상태 중 하나인 S1에서 S4까지). 컴퓨터가 S0을 종료하기 전에 함수 드라이버, 버스 드라이버 및 필터 드라이버가 함께 작동하여 디바이스를 D3hot으로 이동합니다. 컴퓨터가 저전력 Sx 상태로 전환되면 이 전환은 디바이스를 D3hot에서 D3cold로 이동하는 부작용이 있습니다.

Windows 8 시작하여 컴퓨터가 S0에 남아 있는 동안 디바이스가 D3cold를 입력하고 종료할 수 있습니다. 디바이스의 PPO(전원 정책 소유자)인 드라이버는 D3cold로의 이러한 전환을 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다. 필요한 경우 디바이스가 D3cold에서 절전 모드를 해제한 다음 D0으로 전환한 후 정상 작업을 다시 시작할 수 없는 한 드라이버는 디바이스에서 D3cold를 입력하도록 설정해서는 안 됩니다.

디바이스가 D3에 들어가면 처음에는 D3의 D3hot 하위 상태를 입력합니다. D3hot에서 디바이스는 D0 또는 D3cold를 입력할 수 있습니다. 절전 모드 해제 이벤트 또는 I/O 요청에 대한 응답으로 디바이스는 D3hot에서 D0 을 입력합니다. 그렇지 않으면 디바이스가 D3hot에 남아 있거나 D3hot에서 D3cold로 이동할 수 있습니다. 이러한 전환에 대한 자세한 내용은 디바이스 전원 상태의 디바이스 전원 상태 다이어그램을 참조하세요.

드라이버는 디바이스의 D3hot에서 D3cold로의 전환을 시작하지 않습니다. 대신, 이 디바이스와 공통 전원을 공유하는 다른 모든 디바이스가 D3hot에 있고 D3cold를 입력할 준비가 되면 이 전환이 발생합니다. 이러한 디바이스의 마지막이 D3hot에 들어가면 기본 버스 드라이버 및 시스템 펌웨어가 전원을 제거하고 디바이스가 D3cold를 한데 닫습니다.

디바이스의 PPO 드라이버는 D3hot에서 D3cold로 디바이스의 전환을 사용하도록 설정할지 여부를 운영 체제에 알려줍니다. 드라이버는 디바이스를 설치하는 INF 파일에서 이 정보를 제공하거나 드라이버가 런타임에 SetD3ColdSupport 루틴을 호출하여 디바이스의 D3cold 전환을 동적으로 사용하거나 사용하지 않도록 설정할 수 있습니다. 자세한 내용은 GUID_D3COLD_SUPPORT_INTERFACE 드라이버 인터페이스 사용을 참조하세요.

디바이스에서 D3cold를 입력할 수 있도록 설정하면 드라이버는 다음 동작을 보장합니다.

  • 컴퓨터가 S0에 남아 있을 때 디바이스는 D3hot에서 D3cold로의 전환을 허용할 수 있습니다.
  • D3cold에서 D0으로 돌아오면 디바이스가 제대로 작동합니다.

두 요구 사항을 충족하지 못하는 디바이스는 D3cold를 입력한 후 컴퓨터를 다시 시작하거나 절전 모드 상태가 될 때까지 사용할 수 없습니다. 디바이스가 들어오는 저전력 Dx 상태에서 절전 모드 해제 이벤트를 신호할 수 있어야 하는 경우 드라이버가 디바이스의 절전 모드 해제 신호가 D3cold에서 작동한다고 확신하지 않는 한 D3cold에 대한 항목을 사용하도록 설정하지 않아야 합니다.

디바이스를 D3cold에 배치한다고 해서 디바이스에 전원이 모두 제거된 것은 아닙니다. 버스를 통해 디바이스와 통신할 수 있는 전원만 사라집니다. 디바이스는 여전히 프로세서에 절전 모드 해제 이벤트를 알리기에 충분한 전력을 그릴 수 있습니다. 예를 들어 기본 전원이 제거된 NIC(이더넷 네트워크 인터페이스 카드)는 이더넷 케이블에서 전력을 공급할 수 있습니다.

D3cold는 버스가 디바이스와 통신하는 데 사용할 수 없는 상태이므로 드라이버는 디바이스를 D3cold에 직접 넣을 수 없습니다. 대신 드라이버는 먼저 PoRequestPowerIrp 루틴을 호출하여 D3 전원 IRP(대상 상태 = PowerDeviceD3이 있는 IRP_MN_SET_POWER 요청)를 요청하여 디바이스를 D0에서 D3hot으로 이동합니다. D3hot을 입력한 후 디바이스가 D3hot에서 D3cold로 이동하거나 이동하지 않을 수 있습니다. 부모 버스 드라이버가 버스를 끄거나 시스템 펌웨어가 하드웨어 플랫폼의 섹션으로 전원을 끄는 경우 발생하는 버스에 대한 전원이 제거될 때만 디바이스가 D3cold에 들어갑니다.