Usando o WQL para limitar os resultados em uma correspondência de string
Pergunta
Estou trabalhando no desenvolvimento de uma consulta WMI para minha aplicação. Ele precisa encontrar a porta virtual atribuída para um determinado vídeo/PID. Minha consulta atualmente se parece com a seguinte:
"SELECT DeviceID FROM Win32_SerialPort WHERE PNPDeviceID = \"USB\\VID_10C4&PID_EA60\\0001\""
Com base na minha pesquisa, deve retornar "COM8"
. No entanto, estou recebendo um conjunto vazio.
As comparações de string são válidas no WQL? Pelo que me lembro, o SQL permite, mas sendo um subconjunto, não tenho certeza se o suporte para eles foi transportado.
Se necessário, suponho que posso consultar "SELECT DeviceID,PNPDeviceID FROM Win32_SerialPort"
E então, no código, analise os resultados usando a String compara, mas eu prefiro limitar os resultados na consulta, se possível.
Além disso, eu queria saber, se a String compara é realmente suportada no WQL, são sensíveis ao caso e/ou há uma maneira de especificar o caso?
Obrigado.
Solução
Eu usei isso (c#):
"Select * From Win32_SerialPort Where PnPDeviceId = \"PCI\\\\VEN_14F1&DEV_2F30&SUBSYS_205D14F1&REV_01\\\\4&1F7DBC9F&0&10F0\""
Eu precisava escapar das barras de barriga uma vez por causa do WMI e mais uma vez por causa de C#, então terminei com barra de barriga quádruplo na consulta.