Instrução REFERENCES OF
A instrução REFERENCES OF recupera todas as instâncias de associação que se referem a uma instância de origem específica. A instrução REFERENCES OF é semelhante à instrução ASSOCIATORS OF em sua sintaxe. No entanto, em vez de recuperar instâncias de ponto de extremidade, ela recupera as instâncias de associação intermediantes.
A cláusula REFERENCES OF WHERE pode incluir uma ou mais das seguintes palavras-chave predefinidas e seus valores:
REFERENCES OF {SourceObject} WHERE
ClassDefsOnly
RequiredQualifier = QualifierName
ResultClass = ClassName
Role = PropertyName
Para especificar um objeto de origem, use qualquer caminho de objeto válido para SourceObject. Assim como acontece com a instrução SELECT, a cláusula WHERE é opcional e é usada para definir ainda mais a consulta. Ou seja, a seguinte instrução é perfeitamente válida:
REFERENCES OF {Adapter="AHA-294X"}
O palavra-chave ClassDefsOnly indica que a instrução retorna um conjunto de resultados de objetos de definição de classe em vez das instâncias reais das classes de associação. Esses objetos contêm definições de classes às quais pertencem as instâncias que fazem referência ao objeto de origem. Por exemplo, a instrução a seguir retorna definições para as classes AdapterDriver e AdapterProtocol:
REFERENCES OF {Adapter="AHA-294X"} WHERE ClassDefsOnly
A palavra-chave RequiredQualifier indica que os objetos de associação retornados devem incluir o qualificador especificado. A palavra-chave RequiredQualifier pode ser usada para incluir instâncias específicas de associações no conjunto de resultados. Por exemplo, a instrução a seguir retorna instâncias de associação que incluem um qualificador chamado AdapterTag:
REFERENCES OF {Adapter="AHA-294X"} WHERE RequiredQualifier = AdapterTag
O palavra-chave ResultClass indica que os objetos de associação retornados devem pertencer ou ser derivados da classe especificada. Por exemplo, a instrução a seguir retorna associações da classe AdapterDriver ou subclasses da AdapterDriver:
REFERENCES OF {Adapter="AHA-294X"} WHERE ResultClass = AdapterDriver
As palavras-chave ClassDefsOnly e ResultClass são mutuamente exclusivas. Usá-las juntas causa um erro de consulta inválido.
A palavra-chave Role indica que as associações retornadas são apenas aquelas nas quais o objeto de origem desempenha uma função específica. A função é definida pela propriedade especificada, uma propriedade de referência do tipo ref. A palavra-chave Role é útil em associações em que um determinado objeto pode desempenhar uma função em alguns casos e outra em outros, como em associações hierárquicas. A palavra-chave Role pode ser usada para recuperar todas as associações nas quais o objeto de origem desempenha a função de pai, por exemplo. A instrução a seguir ilustra a sintaxe para recuperar associações que têm uma propriedade pai referenciando o objeto de origem como pai:
REFERENCES OF {Adapter="AHA-294X"} WHERE Role = parent
Observação
Consultas complexas não podem usar "And" ou "Or" para separar palavras-chave para instruções ASSOCIATORS OF e REFERENCES OF. Além disso, o sinal de igual é o único operador válido que pode ser usado com as palavras-chave nessas consultas. Por exemplo, a seguinte consulta é válido:
"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"requiredQualifier = Dynamic"
Observação
Os próximos exemplos não são válidos. O primeiro exemplo não usa o sinal de igual e o segundo exemplo tenta erroneamente usar a palavra-chave AND:
"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"requiredQualifier <> Dynamic"
"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"AND requiredQualifier = Dynamic"