다음을 통해 공유


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(호스트 컨트롤러 인터페이스) 드라이버를 제공합니다. 일부 타사 하드웨어 공급업체는 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를 지원하지 않는 경우 디바이스의 함수 드라이버가 D3cold로의 전환을 사용하도록 설정하기 위해 SetD3ColdSupport 루틴을 호출하더라도 디바이스는 D3cold에 들어가지 않습니다. 이 경우 setD3ColdSupport 호출은 아무 효과가 없지만 무해합니다.

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

요구 사항

요구
지원되는 최소 클라이언트 Windows 8부터 사용할 수 있습니다.
대상 플랫폼 바탕 화면
헤더 wdm.h(Wdm.h 포함)
IRQL PASSIVE_LEVEL

참고 항목

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport