Compartilhar via


Obtendo informações de configuração de outras pilhas de driver

Às vezes, você precisa obter informações do espaço de configuração de um dispositivo cujo driver está em uma pilha diferente daquela em que o driver está. Por exemplo, suponha que você queira definir um bit no espaço de configuração de uma ponte PCI para PCI e não tenha um ponteiro para o PDO da ponte. Embora o sistema operacional enumera pontes PCI para PCI e cria um PDO para cada ponte no sistema, ele não registra interfaces de dispositivo para esses dispositivos. Portanto, você não pode usar o mecanismo de interface do dispositivo para acessar o espaço de configuração dessas pontes. Para obter mais informações sobre interfaces de dispositivo, consulte Introdução às interfaces de dispositivo.

Uma maneira de um driver acessar o hardware pertencente a outras pilhas de driver é escrever um driver de filtro. Para acessar o hardware da ponte, por exemplo, você pode criar um driver de filtro que implementa as operações necessárias no espaço de configuração da ponte. Você também deve fornecer um arquivo INF que especifica as possíveis IDs de hardware do hardware de ponte, para que o gerenciador PnP possa carregar o driver de filtro na pilha de driver da ponte quando detectar a ID do dispositivo da ponte.

Como alternativa, você pode instalar um filtro programaticamente usando funções SetupDiXxx no co-instalador para seu dispositivo.

O driver de filtro pode acessar a ponte usando a interface BUS_INTERFACE_STANDARD .