Como são gerados os IDs dos contentores

A partir do Windows 7, o gestor de Plug and Play (PnP) gera um identificador de contentor para um nó de dispositivo (devnode) através de um de três mecanismos:

  • Um controlador de barramento fornece um ID de contentor.

    Ao atribuir um ID de contentor a um devnode, o gestor PnP verifica primeiro se o driver do bus do devnode pode fornecer um ID de container. Os controladores de barramento fornecem um ID de contentor através de um pedido IRP_MN_QUERY_ID com o campo Parameters.QueryId.IdType definido como BusQueryContainerID.

    Se um controlador de barramento quiser fornecer um ID de contentor, pode obter um ID de contentor genuíno que estava incorporado no hardware físico do dispositivo, ou usar um ID único específico do barramento do hardware do dispositivo para gerar um ID de contentor. Alguns exemplos de IDs únicos específicos de barramento são o número de série de um dispositivo ou um endereço MAC no firmware do dispositivo.

    Note

    O fornecedor independente de hardware (IHV) é responsável pela unicidade do ID do contentor comunicado pelo controlador do barramento.

    Para mais informações, consulte IDs de Contentor Gerados a partir de um ID Único Específico do Barramento.

  • O gestor PnP gera um ID do contentor através da capacidade de dispositivo removível.

    Se um driver de barramento não conseguir fornecer um ID de contentor para um devnode que está a enumerar, o gestor PnP utiliza a capacidade de dispositivo removível para gerar um ID de contentor para todos os devnodes enumerados para o dispositivo. O controlador de barramento comunica esta capacidade do dispositivo em resposta a um pedido de IRP_MN_QUERY_CAPABILITIES.

    Para mais informações, consulte IDs de Container Gerados pela Capacidade de Dispositivo Removível.

  • O gestor PnP gera um ID do contentor por substituição da capacidade do dispositivo removível.

    Note

    No Windows 10, os dispositivos DPWS geram sempre um Container ID para o dispositivo usando este método.

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

    Por exemplo, se uma sobreposição da capacidade do dispositivo removível especificar que o dispositivo é removível, o gestor PnP gera um ID do contentor para todos os devnodes enumerados para o dispositivo. Esta ação é realizada independentemente de o dispositivo se declarar removível ou não.

    Um IHV pode preencher o registo com valores que substituem o valor da capacidade de dispositivo removível reportada pelo dispositivo. Este mecanismo de substituição é útil para dispositivos antigos que não suportam a capacidade de dispositivo removível ou a indicam incorretamente.

    Para mais informações, consulte IDs de Contentor Gerados a partir de uma Substituição de Capacidade de Dispositivo Removível.

Para além destes métodos, o sistema utiliza definições de objetos BIOS ACPI para especificar agrupamentos de contentores de dispositivo. Para mais informações, consulte Utilização do ACPI para Agrupamento de Device Containers.