Запрос LINQ, вероятно, был бы самым легким способом кодировать это.
Testing result = (from t in testList where t.value3 == 3 select t).FirstOrDefault();
Да, вам нужно будет определить букву диска самостоятельно.
WNetGetUniversalName ()
подходит близко, но работает только для букв дисков, которые сопоставлены с реальными общими ресурсами UNC, что не всегда так. Не существует единой функции API, которая выполняла бы всю работу за вас.