WdfPdoInitRemovePowerDependencyOnParent 함수(wdfpdo.h)
WdfPdoInitRemovePowerDependencyOnParent 메서드는 주의 섹션에 설명된 전원 종속성을 제거합니다.
구문
void WdfPdoInitRemovePowerDependencyOnParent(
PWDFDEVICE_INIT DeviceInit
);
매개 변수
DeviceInit
WDFDEVICE_INIT 구조체에 대한 포인터입니다.
반환 값
없음
설명
일반적으로 프레임워크에서는 자식 디바이스가 D0에 들어가기 전에 부모 버스 드라이버가 D0 디바이스 전원 상태를 입력해야 하며, 마찬가지로 부모가 D0을 떠나기 전에 자식 디바이스가 D0을 종료해야 합니다.
그러나 특히 자식 디바이스가 실제 하드웨어를 나타내지 않는 가상 디바이스인 경우 이 동작은 바람직하지 않을 수 있습니다. S0 유휴 전원이 낮아지면 자식 디바이스의 전원 상태가 부모와 관련이 없을 수 있습니다. 실제로 자식 디바이스는 S0 유휴 검색을 수행할 이유가 없을 수 있습니다. 이 경우 부모 디바이스가 자식 디바이스의 전원 상태에 종속되는 대신 I/O 활동에 따라 D0와 Dx 간에 전환하는 것이 좋습니다.
전원 종속성을 제거하면 버스 드라이버에 다음과 같은 영향을 줍니다.
- 부모 디바이스가 Dx에 있는 동안 PDO PnP/전원 콜백이 실행될 수 있습니다.
- 부모 디바이스가 Dx에 있는 동안 PDO enable/disable-wake-at-bus 콜백이 실행될 수 있습니다.
- PDO의 전원 관리 큐(PDO가 전원 정책 소유자라고 가정)에서 FDO의 비전력 관리 큐로 전달된 요청은 버스 드라이버가 Dx에 있는 동안 디스패치될 수 있습니다.
- 자식 스택은 부모 스택과 독립적으로 전원 상태 전환을 수행합니다. 여기에는 자식 스택이 해당 S-IRP를 수신하고 부모 스택이 자체 D-IRP 처리를 완료하기 전에 D-IRP 처리를 완료할 수 있는 빠른 다시 시작과 같은 시나리오가 포함됩니다.
전원 종속성을 제거하기 위해 버스 드라이버는 자식 디바이스에 대한 PDO를 만들 때 WdfPdoInitRemovePowerDependencyOnParent 를 호출할 수 있습니다.
부모 버스 드라이버가 부모 디바이스 스택의 전원 정책 소유자가 아닌 경우 이 함수는 아무 작업도 수행하지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10, 버전 2004 |
최소 KMDF 버전 | 1.29 |
머리글 | wdfpdo.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(KMDF) |
IRQL | PASSIVE_LEVEL |