다음을 통해 공유


PnP 디바이스에 대한 상태 전환

PnP 시스템에서 디바이스는 구성되고, 시작되고, 리소스의 균형을 다시 조정하기 위해 중지되고, 제거될 수 있는 다양한 PnP 상태를 통해 전환됩니다. 이 섹션에서는 PnP 디바이스 상태에 대한 개요를 제공합니다. 개요는 드라이버에 필요한 PnP 지원의 대부분에 대한 로드맵입니다. 이 설명서의 다른 부분에서는 각 상태 전환을 자세히 설명합니다.

다음 그림에서는 디바이스의 PnP 상태와 디바이스가 한 상태에서 다른 상태로 전환하는 방법을 보여 줍니다.

플러그 앤 플레이 관점에서 디바이스 상태를 보여 주는 다이어그램

이전 그림의 왼쪽 위에서 시작하여 사용자가 디바이스를 삽입했거나 디바이스가 부팅 시 존재했기 때문에 PnP 디바이스가 시스템에 물리적으로 존재합니다. 디바이스는 아직 시스템 소프트웨어에 알려지지 않았습니다.

디바이스에 대한 소프트웨어 구성을 시작하려면 PnP 관리자와 부모 버스 드라이버가 디바이스를 열거합니다. PnP 관리자는 사용자 모드 구성 요소의 도움을 받아 함수 드라이버 및 선택적 필터 드라이버를 포함하여 디바이스의 드라이버를 식별합니다. PnP 관리자는 드라이버가 아직 로드되지 않은 경우 각 드라이버의 DriverEntry 루틴을 호출합니다. PnP 디바이스를 보고하고 열거하는 방법에 대한 자세한 내용은 실행 중인 시스템에 PnP 디바이스 추가를 참조하세요.

드라이버가 초기화되면 디바이스를 초기화할 준비가 되어 있어야 합니다. PnP 관리자는 드라이버가 제어하는 각 디바이스에 대해 드라이버의 AddDevice 루틴을 호출합니다.

드라이버가 PnP 관리자로부터 IRP_MN_START_DEVICE 요청을 받으면 드라이버는 디바이스를 시작하고 디바이스에 대한 I/O 요청을 처리할 준비가 됩니다. IRP_MN_START_DEVICE 요청을 처리하는 방법에 대한 자세한 내용은 디바이스 시작을 참조하세요.

PnP 관리자가 활성 디바이스의 하드웨어 리소스를 다시 구성해야 하는 경우 IRP_MN_QUERY_STOP_DEVICEIRP_MN_STOP_DEVICE 요청을 디바이스의 드라이버에 보냅니다. 하드웨어 리소스를 다시 구성한 후 PnP 관리자는 드라이버에 IRP_MN_START_DEVICE 요청을 전송하여 디바이스를 다시 시작하도록 지시합니다. 중지 IRP 처리에 대한 자세한 내용은 디바이스 중지를 참조하세요. (부팅 구성 디바이스의 드라이버는 이전 그림에 표시되지 않지만 디바이스가 시작되기 전에 IRP_MN_QUERY_STOP_DEVICEIRP_MN_STOP_DEVICE 요청을 받을 수 있습니다.)

Windows 98/Me에서 PnP 관리자는 디바이스를 사용하지 않도록 설정할 때 IRP_MN_QUERY_STOP_DEVICEIRP_MN_STOP_DEVICE 요청을 보냅니다. 또한 이러한 시스템의 드라이버는 시작에 실패한 후 IRP_MN_STOP_DEVICE 요청을 받습니다.

PnP 디바이스가 시스템에서 물리적으로 제거되거나 이미 제거된 경우 PnP 관리자는 디바이스의 드라이버에 다양한 제거 IRP를 전송하여 디바이스의 소프트웨어 표현(디바이스 개체 등)을 제거하도록 지시합니다. IRP 제거 처리에 대한 자세한 내용은 디바이스 제거를 참조하세요.

모든 드라이버 디바이스가 제거된 후 PnP 관리자는 드라이버의 언로드 루틴을 호출하고 드라이버를 언로드합니다.