때때로, 드라이버가 있는 스택과 다른 스택에 있는 디바이스의 구성 공간에서 정보를 얻어야 할 때가 있습니다. 예를 들어 PCI-PCI 브리지의 구성 공간에 비트를 설정하려고 하며 브리지의 PDO에 대한 포인터가 없다고 가정합니다. 운영 체제는 PCI-PCI 브리지를 열거하고 시스템의 모든 브리지에 대해 PDO를 만들지만 이러한 디바이스에 대한 디바이스 인터페이스를 등록하지는 않습니다. 따라서 디바이스 인터페이스 메커니즘을 사용하여 이러한 브리지의 구성 공간에 액세스할 수 없습니다. 디바이스 인터페이스에 대한 자세한 내용은 디바이스 인터페이스 소개를 참조하세요.
드라이버가 다른 드라이버 스택에 속하는 하드웨어에 액세스하는 한 가지 방법은 필터 드라이버를 작성하는 것입니다. 예를 들어 브리지 하드웨어에 액세스하려면 브리지의 구성 공간에 필요한 작업을 구현하는 필터 드라이버를 디자인할 수 있습니다. 브리지 하드웨어의 가능한 하드웨어 ID를 지정하는 INF 파일도 제공해야 합니다. INF 파일을 사용하면 PnP 관리자가 브리지의 디바이스 ID를 감지할 때 필터 드라이버를 브리지의 드라이버 스택에 로드할 수 있습니다.
또는 디바이스의 공동 설치 관리자에서 SetupDiXxx 함수를 사용하여 프로그래밍 방식으로 필터를 설치할 수 있습니다.
필터 드라이버는 BUS_INTERFACE_STANDARD 인터페이스를 사용하여 브리지에 액세스할 수 있습니다.
BUS_INTERFACE_STANDARD 사용하여 PCI 구성 공간에 액세스하는 방법을 보여 주는 샘플 구현은 PCIDRV 드라이버 샘플을 참조하세요.