Partilhar via


Informações de configuração de outros conjuntos de drivers

Por vezes, necessitas obter informações do espaço de configuração de um dispositivo cujo driver está numa pilha diferente daquela em que o teu driver está. Por exemplo, suponha que se 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 enumere pontes PCI-para-PCI e crie 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 hardware pertencente a outras pilhas de drivers é escrever um driver de filtro. Para acessar o hardware da ponte, por exemplo, você pode projetar um driver de filtro que implemente as operações necessárias no espaço de configuração da ponte. Você também deve fornecer um arquivo INF que especifique as possíveis IDs de hardware do hardware de ponte. O arquivo INF permite que o gerenciador PnP carregue o driver de filtro na pilha de drivers da ponte quando detetar o ID do dispositivo da ponte.

Como alternativa, você pode instalar um filtro programaticamente usando as funções SetupDiXxx no coinstalador do seu dispositivo.

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

Para obter um exemplo de implementação que demonstra o uso de BUS_INTERFACE_STANDARD para acessar o espaço de configuração PCI, consulte o exemplo de driver PCIDRV.