Como as IDs de contêiner são geradas

A partir do 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 gerenciador PnP primeiro verifica se o driver de barramento do devnode pode fornecer uma ID de contêiner. Os motoristas 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 original que foi inserida no hardware do dispositivo físico ou usar uma ID exclusiva específica do barramento do hardware do dispositivo para gerar uma ID de contêiner. Alguns exemplos de IDs exclusivas específicas do barramento são o número de série de um dispositivo ou um endereço MAC (controle de acesso à mídia) no firmware do dispositivo.

    Observação

    O IHV (fornecedor independente de hardware) é responsável pela exclusividade da ID do contêiner relatada pelo motorista do ônibus.

    Para obter mais informações, consulte IDs de contêiner geradas de um Bus-Specific ID exclusiva.

  • 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 de PnP usará a funcionalidade do dispositivo removível para gerar uma ID de contêiner para todos os devnodes enumerados para o dispositivo. O motorista do barramento relata essa funcionalidade de dispositivo em resposta a uma solicitação de IRP_MN_QUERY_CAPABILITIES .

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

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

    Observação

    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 capacidade do dispositivo removível ao gerar IDs de contêiner para dispositivos.

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

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

    Para obter mais informações, consulte IDs de contêiner geradas de uma substituição de funcionalidade 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.