다음을 통해 공유


전원 관리에 대한 디바이스 개체 플래그 설정

AddDevice 루틴에서 각 드라이버는 디바이스 개체(필터 디바이스 개체(DO), 기능 디바이스 개체(FDO) 또는 PDO(물리적 디바이스 개체)를 만들고 디바이스 개체의 DO_XXX 플래그를 설정하여 디바이스 특성 및 드라이버 구성을 설명합니다. 다음 디바이스 개체 플래그는 전원 관리와 관련이 있습니다.

깃발 설명
도_전력_급등 디바이스가 처음 켜질 때 디바이스가 소모하는 전류가 급증함을 나타냅니다. 이 서지 또는 돌입 전류는 짧은 기간 동안 지속되며, 그 후 기기에서 소모하는 전류는 더 낮은 작동 수준으로 떨어집니다.
DO_POWER_PAGABLE 드라이버가 페이지 가능임을 나타냅니다. Windows 2000부터 페이징할 수 있는 드라이버는 DO_POWER_PAGABLE 플래그를 설정해야 합니다. 전원 관리자는 IRQL = PASSIVE_LEVEL 이러한 드라이버를 호출합니다. 페이지 가능 드라이버에 대한 자세한 내용은 페이지 가능하게 만드는 방법을 참고하세요.

디바이스 개체 플래그는 일반적으로 디바이스에 대한 PDO를 만들 때 버스 드라이버에 의해 설정됩니다. 그러나 일부 함수 드라이버는 AddDevice 루틴의 일부로 이러한 플래그의 값을 변경해야 할 수 있습니다. Windows Vista부터 운영 체제에서 디바이스 스택 내의 모든 디바이스 개체에 동일한 전원 관련 플래그가 설정되지 않아도 됩니다. 그러나 Windows Server 2003, Windows XP 및 Windows 2000에서는 디바이스 스택의 모든 디바이스 개체에 동일한 전원 관련 플래그가 설정되어 있어야 합니다.

Windows 2000부터 페이징 경로에 있는 디바이스의 드라이버는 DO_POWER_PAGABLE 플래그를 설정해서는 안 됩니다. 드라이버는 페이징 파일의 I/O 작업에 참여하는 경우 "페이징 경로"에 있습니다. 이 플래그를 설정하지 않은 드라이버는 IRQL = DISPATCH_LEVEL 호출할 수 있어야 합니다. 자세한 내용은 디스패치 루틴 제약 조건을 참조하세요.

일반적으로 드라이버는 DO_POWER_PAGABLE 플래그에 대한 버스 드라이버의 값을 변경해서는 안 되며, 하위 수준 드라이버가 이 플래그를 지운 경우 드라이버는 이 플래그를 설정해서는 안 됩니다. PnP 페이징 요청을 포함하는 전환을 처리할 때(일반적으로 IRP_MJ_PNP에 대한 응답으로 IRP_MN_DEVICE_USAGE_NOTIFICATION 요청이 있을 경우), 스토리지 드라이버는 플래그의 설정 및 해제를 신중하게 순서대로 진행해야 합니다.

시작 시 전원이 필요한 디바이스의 드라이버는 DO_DEVICE_INITIALIZING 플래그를 지우기 전에 디바이스 개체에서 DO_POWER_INRUSH 플래그를 설정해야 합니다. 일반적으로 장치 스택에 있는 드라이버 중 하나, 즉 버스 드라이버(PDO)만 장치에 대한 DO_POWER_INRUSH 플래그를 설정해야 합니다. 플래그는 전원 공급 장치의 오버로드를 방지하기 위해 이러한 디바이스를 다른 디바이스와 순서대로 한 번에 하나씩 전원을 켜야 한다는 것을 전원 관리자에게 알립니다. 전원 관리자는 언제든지 시스템의 어느 곳에서도 하나의 전원 돌입 IRP만 활성화되도록 합니다.

Windows Vista부터 드라이버는 DO_POWER_PAGABLE 플래그와 DO_POWER_INRUSH 플래그를 모두 설정할 수 있습니다. Windows Server 2003, Windows XP 및 Windows 2000에서 드라이버는 DO_POWER_PAGABLE 플래그와 DO_POWER_INRUSH 플래그를 둘 다 설정할 수 없습니다.