PO_FX_DEVICE_V1 구조체(wdm.h)

PO_FX_DEVICE 구조는 PoFx(전원 관리 프레임워크)에 대한 디바이스의 전원 특성을 설명합니다.

구문

typedef struct _PO_FX_DEVICE_V1 {
  ULONG                                      Version;
  ULONG                                      ComponentCount;
  PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK ComponentActiveConditionCallback;
  PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK   ComponentIdleConditionCallback;
  PPO_FX_COMPONENT_IDLE_STATE_CALLBACK       ComponentIdleStateCallback;
  PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK      DevicePowerRequiredCallback;
  PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK  DevicePowerNotRequiredCallback;
  PPO_FX_POWER_CONTROL_CALLBACK              PowerControlCallback;
  PVOID                                      DeviceContext;
  PO_FX_COMPONENT_V1                         Components[ANYSIZE_ARRAY];
} PO_FX_DEVICE_V1, *PPO_FX_DEVICE_V1;

멤버

Version

이 구조체의 버전 번호입니다. 드라이버가 PoFx에 성능 상태 지원을 등록하는 경우 이 멤버를 PO_FX_VERSION_V2 설정합니다. 그렇지 않으면 이 멤버를 PO_FX_VERSION_V1 설정합니다.

ComponentCount

Components 배열의 요소 수입니다 . 또한 이 멤버는 디바이스의 구성 요소 수를 지정합니다.

ComponentActiveConditionCallback

디바이스 드라이버에서 구현하는 ComponentActiveConditionCallback 콜백 루틴에 대한 포인터입니다.

ComponentIdleConditionCallback

디바이스 드라이버에서 구현하는 ComponentIdleConditionCallback 콜백 루틴에 대한 포인터입니다.

ComponentIdleStateCallback

디바이스 드라이버에서 구현하는 ComponentIdleStateCallback 콜백 루틴에 대한 포인터입니다.

DevicePowerRequiredCallback

디바이스 드라이버에서 구현하는 DevicePowerRequiredCallback 콜백 루틴에 대한 포인터입니다.

DevicePowerNotRequiredCallback

디바이스 드라이버에서 구현하는 DevicePowerNotRequiredCallback 콜백 루틴에 대한 포인터입니다.

PowerControlCallback

디바이스 드라이버에서 구현하는 PowerControlCallback 콜백 루틴에 대한 포인터입니다.

DeviceContext

호출자가 할당한 디바이스 컨텍스트에 대한 포인터입니다. 이 포인터는 이 구조체에서 가리키는 각 드라이버 구현 콜백 함수에 매개 변수로 전달됩니다. 디바이스 드라이버는 이 컨텍스트를 사용하여 디바이스의 현재 전원 상태에 대한 정보를 저장합니다. 이 컨텍스트는 PoFx에 불투명합니다.

Components[ANYSIZE_ARRAY]

이 멤버는 하나 이상의 PO_FX_COMPONENT 요소 배열에서 첫 번째 요소입니다. 배열에 둘 이상의 요소가 포함된 경우 추가 요소는 즉시 PO_FX_DEVICE 구조체를 따릅니다. 배열에는 디바이스의 각 구성 요소에 대해 하나의 요소가 포함됩니다. 각 구성 요소의 Fx 전원 상태는 디바이스에 있는 다른 구성 요소의 Fx 전원 상태와 독립적으로 제어할 수 있습니다. ANYSIZE_ARRAY 상수는 Ntdef.h 헤더 파일에서 1로 정의됩니다.

설명

PoFx에 디바이스를 등록하기 위해 드라이버는 PoFxRegisterDevice 루틴을 호출하고 디바이스를 설명하는 PO_FX_DEVICE 구조체에 대한 포인터인 매개 변수로 제공합니다.

Components 배열의 각 요소는 디바이스에 있는 한 구성 요소의 전원 상태 특성을 설명합니다. 디바이스의 각 구성 요소는 구성 요소 배열 인덱스로 식별됩니다. PoFxActivateComponentPoFxCompleteIdleCondition과 같은 루틴은 구성 요소의 배열 인덱스를 사용하여 구성 요소를 식별합니다.

디바이스 드라이버는 6개의 콜백 루틴을 모두 구현할 필요가 없습니다. 드라이버가 해당 콜백 루틴을 구현하지 않는 경우 드라이버는 PO_FX_DEVICE 구조의 함수 포인터를 NULL로 설정할 수 있습니다. 그러나 특정 콜백 루틴을 구현해야 합니다. 특히 디바이스의 하나 이상의 구성 요소에 둘 이상의 Fx 상태가 있는 경우 드라이버는 ComponentIdleStateCallback, ComponentActiveConditionCallbackComponentIdleConditionCallback 루틴을 구현해야 합니다. 그렇지 않으면 디바이스 등록이 실패하고 PoFxRegisterDevice가STATUS_INVALID_PARAMETER 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 부터 지원합니다.
머리글 wdm.h(Wudfwdm.h 포함)

추가 정보

ComponentActiveConditionCallback

ComponentIdleConditionCallback

ComponentIdleStateCallback

DevicePowerNotRequiredCallback

DevicePowerRequiredCallback

PO_FX_COMPONENT

PoFxActivateComponent

PoFxCompleteIdleCondition

PoFxRegisterDevice

PowerControlCallback