다음을 통해 공유


GET_D3COLD_CAPABILITY 콜백 함수(wdm.h)

GetBusDriverD3ColdSupport 루틴을 사용하면 드라이버가 열거 버스 드라이버가 D3cold 디바이스 전원 상태를 지원하는지 여부를 쿼리할 수 있습니다.

구문

GET_D3COLD_CAPABILITY GetD3coldCapability;

NTSTATUS GetD3coldCapability(
  [in, optional] PVOID Context,
  [out]          PBOOLEAN D3ColdSupported
)
{...}

매개 변수

[in, optional] Context

인터페이스별 컨텍스트 정보에 대한 포인터입니다. 호출자는 이 매개 변수를 인터페이스에 대한 D3COLD_SUPPORT_INTERFACE 구조체의 Context 멤버 값으로 설정합니다.

[out] D3ColdSupported

버스 드라이버가 D3cold를 지원하는지 여부를 나타내는 값을 루틴이 쓰는 BOOLEAN 변수에 대한 포인터입니다. 이 값이 TRUE이면 버스 드라이버가 D3cold를 지원합니다. FALSE이면 버스 드라이버가 D3cold를 지원하지 않습니다. 호출이 실패하면 루틴은 오류 상태 코드를 반환하고 이 변수에 아무 것도 쓰지 않습니다.

반환 값

GetBusDriverD3ColdSupport 루틴은 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 적절한 오류 상태 코드를 반환합니다.

설명

디바이스용 드라이버는 Windows ACPI 드라이버에서 구현하는 이 루틴의 버전을 호출합니다( Acpi.sys.). 이 루틴은 디바이스에 대한 부모 버스 드라이버를 검사하여 이 버스 드라이버가 D3cold 전원 상태를 지원하는지 여부를 확인합니다.

예를 들어 Windows 8 Microsoft는 D3cold를 지원하는 받은 편지함 USB 3.0 xHCI(eXtensible Host Controller Interface) 드라이버를 제공합니다. 일부 타사 하드웨어 공급업체는 xHCI 컨트롤러용 Windows 드라이버를 제공하지만 이러한 드라이버는 D3cold를 지원하지 않을 수 있습니다. USB 3.0 디바이스용 드라이버는 GetBusDriverD3ColdSupport 루틴을 호출하여 부모 xHCI 컨트롤러 드라이버가 D3cold를 지원하는지 여부를 확인할 수 있습니다.

버스 드라이버는 다음이 모두 true인 경우 D3cold를 지원합니다.

  • 버스 드라이버는 GUID_D3COLD_SUPPORT_INTERFACE 드라이버 인터페이스를 구현합니다.
  • 버스 드라이버는 이 인터페이스에서 GetBusDriverD3ColdSupport 루틴을 구현합니다.
  • GetBusDriverD3ColdSupport 루틴의 출력 값은 버스 드라이버가 D3cold를 지원한다는 것을 나타냅니다.
디바이스용 드라이버는 GetIdleWakeInfo 루틴을 호출하여 기본 버스 드라이버 및 ACPI 시스템 펌웨어가 디바이스에 대해 D3cold를 지원하는지 여부를 확인할 수 있습니다. 이 호출이 실패하고 코드 상태 오류를 반환하는 경우 디바이스 드라이버는 GetBusDriverD3ColdSupport 루틴을 호출하여 부모 버스 드라이버의 D3cold 지원 부족으로 인해 오류가 발생했는지 여부를 확인할 수 있습니다.

버스의 디바이스는 버스 드라이버가 이 전환을 지원하는 경우에만 D3cold 하위 상태로 전환할 수 있습니다. 버스 드라이버가 D3cold를 지원하지 않는 경우 디바이스의 함수 드라이버가 SetD3ColdSupport 루틴을 호출하여 D3cold 로의 전환을 사용하도록 설정하더라도 디바이스는 D3cold에 들어가지 않습니다. 이 경우 SetD3ColdSupport 호출은 효과가 없지만 무해합니다.

이러한 이유로 대부분의 디바이스 드라이버는 GetBusDriverD3ColdSupport 루틴을 호출할 필요가 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 wdm.h(Wdm.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport