다음을 통해 공유


버스 드라이버

버스 드라이버는 버스 컨트롤러, 어댑터 또는 브리지를 서비스합니다(가능한 드라이버 계층 그림 참조). Microsoft는 PCI, PnpISA, SCSI 및 USB와 같은 가장 일반적인 버스용 버스 드라이버를 제공합니다. IHV 또는 OEM에서 다른 버스 드라이버를 제공할 수 있습니다. 버스 드라이버는 필수 드라이버입니다. 컴퓨터의 각 버스 유형에 대해 하나의 버스 드라이버가 있습니다. 버스 드라이버는 컴퓨터에 동일한 유형의 버스가 두 개 이상 있는 경우 둘 이상의 버스를 서비스할 수 있습니다.

버스 드라이버의 주요 책임은 다음과 같습니다.

  • 버스에서 디바이스를 열거합니다.

  • 플러그 앤 플레이 IRP 및 전원 관리 IRP에 응답합니다.

  • 버스에 대한 멀티플렉스 액세스(일부 버스의 경우).

  • 일반적으로 버스에서 디바이스를 관리합니다.

버스 드라이버는 기본적으로 자식도 열거하는 기능 드라이버 입니다.

열거하는 동안 버스 드라이버는 버스의 디바이스를 식별하고 해당 디바이스에 대한 디바이스 개체를 만듭니다. (디바이스 개체에 대한 자세한 내용은 디바이스 개체 및 디바이스 스택을 참조하세요.) 버스 드라이버가 연결된 디바이스를 식별하는 데 사용하는 방법은 특정 버스에 따라 달라집니다.

버스 드라이버는 디바이스 레지스터에 액세스하여 디바이스의 전원 상태를 물리적으로 변경하는 등 버스의 디바이스를 대신하여 특정 작업을 수행합니다. 예를 들어 디바이스가 절전 모드로 설정되면 버스 드라이버는 디바이스 레지스터를 설정하여 디바이스를 적절한 디바이스 전원 상태로 설정합니다.

그러나 버스 드라이버는 버스에 연결된 자식 디바이스에 대한 읽기 및 쓰기 요청을 처리하지 않습니다. 자식 디바이스에 대한 읽기 및 쓰기 요청은 자식 디바이스의 함수 드라이버에서 처리됩니다. 자식 디바이스가 원시 모드 에서 사용되는 경우에만 부모 버스 드라이버가 디바이스에 대한 읽기 및 쓰기를 처리합니다.

버스 드라이버는 컨트롤러, 어댑터 또는 브리지의 함수 드라이버 역할을 하므로 이러한 구성 요소에 대한 디바이스 전원 정책도 관리합니다.

버스 드라이버는 SCSI 포트/미니포트 드라이버 쌍이 SCSI HBA(호스트 버스 어댑터)를 구동하는 방식인 드라이버/미니드라이버 쌍으로 구현할 수 있습니다. 이러한 드라이버 쌍에서 미니 드라이버는 DLL인 두 번째 드라이버에 연결됩니다.