다음을 통해 공유


디바이스 인터페이스 인스턴스 사용 및 사용 안 함

디바이스를 성공적으로 시작한 후 인터페이스를 등록한 드라이버는 IoSetDeviceInterfaceState를 호출하여 인터페이스 instance 사용하도록 설정합니다. 드라이버는 IoRegisterDeviceInterface에서 반환된 기호 링크 이름을 부울 값 TRUE와 함께 전달하여 인터페이스 instance 사용하도록 설정합니다.

드라이버가 디바이스를 성공적으로 시작할 수 있는 경우 PnP(플러그 앤 플레이) 관리자의 IRP_MN_START_DEVICE 요청을 처리하는 동안 이 루틴을 호출해야 합니다.

IRP_MN_START_DEVICE 요청이 완료되면 PnP 관리자는 요청된 커널 모드 또는 사용자 모드 구성 요소에 디바이스 인터페이스 도착 알림을 발급합니다. 자세한 내용은 디바이스 인터페이스 변경 알림 등록을 참조하세요.

디바이스 인터페이스 instance 사용하지 않도록 설정하기 위해 드라이버는 IoSetDeviceInterfaceState를 호출하여 IoRegisterDeviceInterfaceFALSE에서 반환된 SymbolicLinkNameEnable 값으로 전달합니다.

드라이버는 디바이스에 대한 IRP_MN_SURPRISE_REMOVAL 또는 IRP_MN_REMOVE_DEVICE 요청을 처리할 때 디바이스의 인터페이스를 사용하지 않도록 설정해야 합니다. 드라이버가 이러한 제거 IRP를 처리할 때 디바이스의 인터페이스를 사용하지 않도록 설정하지 않으면 PnP 관리자가 디바이스를 제거할 때 인터페이스를 사용하지 않도록 설정하므로 이후에 이 작업을 시도해서는 안 됩니다.

디바이스가 중지될 때(IRP_MN_STOP_DEVICE) 드라이버가 인터페이스를 사용하지 않도록 설정해서는 안 됩니다. 대신 디바이스 인터페이스를 사용하도록 설정하고 다른 IRP_MN_START_DEVICE 요청을 받을 때까지 I/O 요청을 큐에 추가해야 합니다. 마찬가지로 디바이스가 절전 모드 상태일 때 드라이버가 인터페이스를 사용하지 않도록 설정해서는 안 됩니다. 디바이스가 절전 모드 해제될 때까지 I/O 요청을 큐에 대기해야 합니다. 자세한 내용은 Wake-Up 기능이 있는 디바이스 지원을 참조하세요.