다음을 통해 공유


이동식 디바이스 기능 개요

이동식 디바이스 기능은 버스 드라이버가 지정된 디바이스 노드(devnode)에 대한 IRP_MN_QUERY_CAPABILITIES 함수 코드에 대한 응답으로 DEVICE_CAPABILITIES 구조에서 설정한 비트(이동식)입니다.

버스 드라이버는 devnode 및 모든 자식 devnode가 컴퓨터가 실행되는 동안 부모 devnode에서 물리적으로 제거, 연결 끊기 또는 분리할 수 있는 디바이스를 구성할 때 devnode에 대한 이동식 디바이스 기능을 설정합니다. 일반적으로 devnode는 devnode 토폴로지에서 최상위 devnode인 경우 이동식으로 표시되어야 합니다.

devnode에서 이동식 디바이스 기능을 올바르게 설정하는 것이 중요합니다. 버스 드라이버가 열거 중인 devnode에 대한 컨테이너 ID를 제공할 수 없는 경우 PnP(플러그 앤 플레이) 관리자는 이동식 디바이스 기능을 사용하여 디바이스에 대해 열거된 모든 devnode에 대한 컨테이너 ID를 생성합니다.

예를 들어 마우스와 같은 단일 함수 디바이스가 USB를 통해 컴퓨터에 연결되어 있다고 가정합니다. 이 경우 USB 버스 드라이버는 새 디바이스를 감지하고, HID(USB 휴먼 인터페이스 디바이스)인 것을 감지하고, 디바이스에 대한 USB HID devnode를 만듭니다. HID devnode는 HID 디바이스가 마우스임을 감지하고 HID 규격 마우스에 대한 자식 devnode를 만듭니다. 이 시점에서 마우스가 설치되고 컴퓨터에서 작동합니다. 두 새 devnode는 모두 독립 드라이버 스택을 사용합니다.

일반적으로 디바이스의 최상위(부모) devnode는 이동식으로 설정해야 하지만 각 자식 devnode는 이동식으로 설정해서는 안 됩니다. 이전 예제에서 USB 버스 드라이버는 USB HID devnode에 대해 이동식 비트를 TRUE 로 설정하고 자식 HID 규격 마우스 devnode에 대해 이동식 비트를 FALSE 로 설정합니다.

다음 장치 관리자 스크린샷은 일반 USB 마우스에 대한 devnode 토폴로지를 보여 줍니다. 이동식으로 표시된 마우스의 devnode를 보여 줍니다.

usb 마우스에 대한 devnode 토폴로지를 보여 주는 디바이스 관리자 창의 스크린샷