Софт от Майкрософт

Oct 12, 2011 19:49

Чем дальше - тем сильнее удивляюсь тому, что софт от MS вообще хоть как-то работает. Возникает сильное подозрение, что функциональность в нем реально обслуживается не более, чем 20% кода, а остальные 80% предназначены для того, чтобы заставить эти 20% приемлемо работать. :)

Возникли у меня тут непонятные проблемы с правильностью обработки некоторых запросов в драйвере. Толковой документации по Kernel Streaming с 1997 года MS так и не родила, тестирование методом тыка дает противоречивые результаты. Ну, я, как информированный разработчик, решил потестировать это дело в Windows Logo Kit - это такой набор тестов на каких-нибудь четыре гига, который тестирует драйверы сторонних разработчиков прямо в их собственных компьютерах. Лаборатории WHQL в MS собственно тестированием заниматься недосуг, хоть она и берет около $400 за подписывание каждой очередной версии драйвера - туда отправляются только логи этих тестов (защищенные, разумеется, от подделки). Вообще, конечно, идея хорошая, если бы не реализация...

А реализовано это все в виде неимоверного размера кучи из приложений, командно-строковых и экранных, DLL, скриптов на VB, командных файлов, профилей и тому подобной галиматьи. На сколько-нибудь связную и стройную систему не похоже даже отдаленно. Собственно, развивалось это все из набора HCT (Hardware Compatibility Tests), где вся эта куча запускалась на тестовой машине через сложную связку командных файлов, а потом к ней прикрутили DTM (Driver Test Manager), запускаемый на отдельной машине, раздающий тесты и собирающий результаты. Прикрутили, как можно догадаться, сбоку, усложнив и без того запутанную схему еще на порядок.

Собственно, разбираться в тонкостях работы этой кухни и запускать ее целиком у меня нет ни малейшего желания - нужны всего-то несколько тестов для звуковых устройств, которые прекрасно работают сами по себе, безо всяких серверов и скриптов. Но для того, чтобы их добыть, нужно скачать весь WLK. Раздается он из MS Connect при условии наличия Live ID. Захожу туда, как заходил несколько лет до этого - оно мне радостно сообщает, что изменились условия соглашения, и надо бы принять заново. Черт с тобой - нажимаю "принять". После этого оно сообщает, что ему вдруг стало недостаточно моих персональных данных, введенных еще в 2005, и надо бы их дополнить. Тут я слегка офигел - оно запросило страну, город и телефон, которые там были изначально. Ладно, ввел снова. Теперь оно потребовало сменить пароль - шесть лет его было достаточно, а тут вдруг забеспокоились о безопасности. Пришлось придумывать новый пароль - после его ввода сервер надолго задумался, и в итоге пожаловался на внутреннюю ошибку.

Открыл то же самое в IE 8 вместо Оперы. Опять прошел все этапы - снова увидел ошибку, теперь уже другую. В несколько приемов, заходя через разные порталы разными браузерами, таки сумел обновить эти данные, в конце концов попал на страницу WDK (Windows Driver Kit). Там оно сказало, что WLK перемещен, и предложило "нажать сюда". Нажал - нарисовало другую страницу, на которой опять было написано, что надо снова "нажать сюда", чтобы попасть на страницу WLK. Наконец, она открылась - дал команду скачать, указал куда, и пошел спать (время было за полночь).

Утром прихожу - висит на 95% со статусом "разрыв связи". Думаю - не беда, щас докачаем. Размечтался - при входе оно снова принялось жаловаться на ошибку, а точную последовательность попадания я уже и забыл. Минут пятнадцать играл в квест - наконец, попал снова. И тут выяснилось, что IE 8 не просто не докачал файла, а еще и прибил эти 95% (напомню - четыре гига), найти их я так и не смог. На редкость ублюдочное поделие, право слово. Второй раз, чтобы не облажаться, заказал скачивание через File Transfer Manager - приблуду от MS для борьбы с этими самыми прерванными закачками.

ISO'шник скачался, открываю его в 7-zip - внутри CAB'ы. В CAB'ах - абракадабристые имена вида file_xxxxx. Ставить всю эту монструозность нет никакого желания. Слава богу, у msiexec есть ключ /a - установка на сервер. Правда, ей за каким-то хреном нужны права администратора - непонятно, зачем, коли она просто распаковывает CAB'ы в заданный каталог.

Достал оттуда нужные тесты, запускаю - почти все ругаются на отсутствие свойства friendly name, которое уже много лет, как традиционно необязательно, и автоматически ассоциируется с именем драйвера. Характерно, что ругается абсолютно на все драйверы, в том числе и подписанные WHQL, в трех разных системах с XP и Win7. Совершенно непонятно, как тем драйверам удалось получить подпись при таком подходе. В настройках и командной строке это не отключается, а дальше тест не идет - тупо не отображает никаких устройств в меню.

Запустился только wavetest.exe. Указал ему использовать формат 22050/16/mono, указал устройство, тыкнул на старт. Он бодро рапортует, что создает поток с параметрами 22050/16/mono, а мой драйвер в логах показывает, что ему идут последовательные запросы с 8000/8/mono, 11025/8/mono, 16000/8/mono. Разумеется, он их все отвергает - в диапазон не попадают. В итоге тест жалуется, что формат 22050/16/mono использовать не удалось. Я в ступоре.

Ничего не меняя, еще раз нажимаю на старт - теперь он рапортует, что пытается использовать 48000/8/mono, которого ему вообще никто не разрешал. Мой драйвер снова показывает серию запросов с 8000, 11025 и 16000. Я уже в ахуе.

Слабо себе представляю, как ЭТО может работать нормально...

недовольство, программы, программирование, интернет, работа, криворукие, компьютеры, фуфло

Previous post Next post
Up