ID da instância

Uma ID de instância é uma cadeia de caracteres relatada pelo enumerador de um dispositivo (seu driver de barramento) e distingue um dispositivo de outros dispositivos do mesmo tipo em um computador. Uma ID de instância contém informações de número de série, se compatível com o barramento subjacente ou algum tipo de informação de localização. A cadeia de caracteres não pode conter nenhum caractere "\" ou qualquer outro caractere não permitido em uma resposta a uma solicitação de IRP_MN_QUERY_ID ; caso contrário, o formato genérico da cadeia de caracteres é específico do barramento. O número de caracteres de uma ID de instância, excluindo um terminador NULL, deve ser menor que MAX_DEVICE_ID_LEN. Além disso, a ID da instância é outra entrada na criação da ID da instância do dispositivo, juntamente com uma ID do dispositivo, e o comprimento máximo possível de uma ID de instância do dispositivo é .MAX_DEVICE_ID_LEN Isso requer que o comprimento da ID da instância seja menor o suficiente do MAX_DEVICE_ID_LEN que a ID da instância do dispositivo pode ser criada como uma cadeia de caracteres com comprimento menor que MAX_DEVICE_ID_LEN.

O membro UniqueID da estrutura DEVICE_CAPABILITIES para um dispositivo indica se uma ID de instância fornecida pelo barramento é exclusiva em todo o sistema, da seguinte maneira:

  • Se UniqueID for FALSE, a ID da instância fornecida pelo barramento para um dispositivo será exclusiva apenas para o barramento do dispositivo. O gerenciador de Plug and Play (PnP) modifica a ID da instância fornecida pelo barramento e a combina com a ID do dispositivo correspondente para criar uma ID de instância do dispositivo exclusiva no sistema.

  • Se UniqueID for TRUE, a ID da instância do dispositivo, formada a partir da ID do dispositivo fornecida pelo barramento e da ID da instância, identificará exclusivamente um dispositivo no sistema.

Uma ID de instância é persistente entre as reinicializações do sistema.

O gerenciador PnP consulta essa cadeia de caracteres do driver de barramento do dispositivo usando uma solicitação IRP_MN_QUERY_ID com o campo Parameters.QueryId.IdType definido como BusQueryInstanceID.