Como os IDs de contêiner são gerados

Começando com Windows 7, o gerenciador de Plug and Play (PnP) gera uma ID de contêiner para um nó de dispositivo (devnode) por meio de um dos três mecanismos:

  • Um motorista de ônibus fornece uma ID de contêiner.

    Ao atribuir uma ID de contêiner a um devnode, o gerente PnP primeiro verifica se o driver do barramento do devnode pode fornecer uma ID de contêiner. Os drivers de barramento fornecem uma ID de contêiner por meio de uma solicitação IRP_MN_QUERY_ID com o campo Parameters.QueryId.IdType definido como BusQueryContainerID.

    Se um motorista de ônibus quiser fornecer uma ID de contêiner, ele poderá obter uma ID de contêiner genuína que foi embutida no hardware físico do dispositivo ou usar uma ID exclusiva específica do barramento do hardware do dispositivo para gerar uma ID de contêiner. Alguns exemplos de IDs únicas específicas do barramento são o número de série de um dispositivo ou um endereço MAC (controle de acesso de mídia) no firmware do dispositivo.

    Note

    O IHV (fornecedor de hardware independente) é responsável pela unicidade da ID do contêiner relatada pelo driver do barramento.

    Para obter mais informações, consulte IDs de contêiner gerados a partir de uma ID exclusiva específica do barramento.

  • O gerenciador PnP gera uma ID de contêiner por meio da funcionalidade do dispositivo removível.

    Se um driver de barramento não puder fornecer uma ID de contêiner para um devnode que ele está enumerando, o gerenciador PnP usará a funcionalidade do dispositivo removível para gerar uma ID de contêiner para todos os devnodes enumerados para o dispositivo. O driver de barramento informa essa capacidade do dispositivo em resposta a uma solicitação de IRP_MN_QUERY_CAPABILITIES.

    Para obter mais informações, consulte IDs de contêiner gerados com base na capacidade do dispositivo removível.

  • O gerenciador PnP gera uma ID do contêiner por meio de uma substituição da capacidade de dispositivo removível.

    Note

    Em Windows 10, os dispositivos DPWS sempre gerarão uma ID de contêiner para o dispositivo usando esse método.

    Embora o mecanismo de substituição não altere o valor da funcionalidade do dispositivo removível, ele força o gerenciador PnP a usar a configuração de substituição e não o valor da funcionalidade do dispositivo removível ao gerar IDs de contêiner para dispositivos.

    Por exemplo, se uma substituição da funcionalidade do dispositivo removível especificar que o dispositivo é removível, o gerenciador PnP gera uma ID de contêiner para todos os devnodes enumerados para o dispositivo. Essa ação é executada independentemente de o dispositivo ter sido identificado como removível ou não.

    Um IHV pode preencher o registro com chaves que substituem a capacidade de dispositivo removível relatada pelo dispositivo. Esse mecanismo de substituição forçada é útil para dispositivos legados que não dão suporte à capacidade de dispositivo removível ou a relatam incorretamente.

    Para obter mais informações, consulte IDs de contêiner gerados de uma substituição de capacidade de dispositivo removível.

Além desses métodos, o sistema usa as configurações de objeto DO ACPI BIOS para especificar agrupamentos de contêineres de dispositivo. Para obter mais informações, consulte Usando ACPI para agrupamento de contêineres de dispositivo.