PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK 콜백 함수(wdm.h)
ComponentIdleConditionCallback 콜백 루틴은 지정된 구성 요소가 활성 상태에서 유휴 상태로의 전환을 완료했음을 드라이버에 알릴 수 있습니다.
통사론
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK PoFxComponentIdleConditionCallback;
void PoFxComponentIdleConditionCallback(
[in] PVOID Context,
[in] ULONG Component
)
{...}
매개 변수
[in] Context
디바이스 컨텍스트에 대한 포인터입니다. 디바이스 드라이버는 이 컨텍스트를 사용하여 디바이스의 현재 전원 상태에 대한 정보를 저장합니다. 디바이스 드라이버는 드라이버가 PoFx(전원 관리 프레임워크)에 디바이스를 등록하는 데 사용한 PO_FX_DEVICE 구조체의 DeviceContext 멤버에 이 포인터를 지정했습니다. 이 컨텍스트는 PoFx에 불투명합니다.
[in] Component
구성 요소를 식별하는 인덱스입니다. 이 매개 변수는 디바이스 드라이버가 PoFx에 디바이스를 등록하는 데 사용한 PO_FX_DEVICE 구조의 구성 요소 배열에 대한 인덱스입니다. 구성 요소 배열에 N 요소가 포함된 경우 구성 요소 인덱스의 범위는 0에서 N-1까지입니다.
반환 값
없음
발언
드라이버가 더 이상 활성 상태인 구성 요소에 액세스할 필요가 없는 경우 드라이버는 PoFxIdleComponent 루틴을 호출하여 구성 요소를 유휴 상태로 전환해야 합니다. PoFxIdleComponent 호출에 대한 응답으로 PoFx는 유휴 상태로의 전환을 시작한 다음 ComponentIdleConditionCallback 루틴을 호출하여 이 전환이 완료되면 드라이버에 알립니다.
드라이버는 모든 ComponentIdleConditionCallback 콜백에 대한 응답으로 PoFxCompleteIdleCondition 호출해야 합니다. PoFxCompleteIdleCondition 호출은 ComponentIdleConditionCallback 콜백 중에 또는 콜백이 반환된 후에 발생할 수 있습니다. 드라이버는 PoFxCompleteIdleCondition호출하기 전에 하드웨어 구성 요소에 대한 액세스가 필요한 모든 작업을 완료해야 합니다. 이 호출 후에는 구성 요소가 F0 전원 상태로 유지되지 않을 수 있습니다.
구성 요소가 활성 상태인 경우에만 구성 요소에 안전하게 액세스할 수 있습니다. 구성 요소의 Fx 전원 상태를 사용하여 구성 요소에 액세스할 수 있는지 여부를 결정하지 마세요. 구성 요소가 F0 상태이고 유휴 상태인 경우 구성 요소가 다른 Fx 상태로 전환하려고 할 수 있습니다.
예제
ComponentIdleConditionCallback 콜백 루틴을 정의하려면 먼저 정의하는 콜백 루틴의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 콜백 함수 형식 집합을 제공합니다. 콜백 함수 형식을 사용하여 함수를 선언하면 드라이버 , SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 코드 분석을데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.
예를 들어 MyComponentIdleConditionCallback
명명된 ComponentIdleConditionCallback 콜백 루틴을 정의하려면 다음 코드 예제와 같이 PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK 형식을 사용합니다.
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK MyComponentIdleConditionCallback;
그런 다음 다음과 같이 콜백 루틴을 구현합니다.
_Use_decl_annotations_
VOID
MyComponentIdleConditionCallback(
PVOID Context,
ULONG Component
)
{
// Function body
}
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK 함수 형식은 Wdm.h 헤더 파일에 정의됩니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 _Use_decl_annotations_
주석을 추가해야 합니다.
_Use_decl_annotations_
주석은 헤더 파일의 PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK 함수 형식에 적용되는 주석이 사용되는지 확인합니다. 함수 선언 요구 사항에 대한 자세한 내용은 WDM 드라이버함수 역할 형식을 사용하여 함수 선언을 참조하세요.
_Use_decl_annotations_
대한 자세한 내용은 함수 동작 주석참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8부터 지원됩니다. |
대상 플랫폼 | 바탕 화면 |
헤더 | wdm.h(Wudfwdm.h 포함) |
IRQL | IRQL <= DISPATCH_LEVEL 호출합니다. |