всякому человеку, по роду жизни и/или профессиональной деятельности имеющему дело с так называемыми "пользователями компьютеров", в какой-то момент во всей красе является следующая истина: "пользователи компьютеров" врут.
врут (не грубо, конечно: речь здесь идёт в основном о вранье путём несообщения критически важной информации) пользователи обычно из скромности, в смысле от стыда. когда знают (или предполагают), что сделали что-то не то, а конкретно что-то что им делать не следовало.
проблема с выведением такого клиента на чистую воду заключается в базисной трудности установления необходимой для понимания эмпатии между клиентом и помогающим: дабы раскусить характер несообщённой важной информации, помогающий должен иметь свой собственный опыт совершения подобного греха (можно умозрительный, но непременно детальный).
самая же засада заключается в том, что критическая информационная лакуна имеет тенденцию к видимому сохранению: даже если во многих конкретных случаех проблема в конце концов разрешается к удовольствию сторон, публичные записи не отражают реальной причины возникновения проблемы, а во многих случаях и метода её устранения.
я к чему, собственно? решил я тут намедни слегка почистить корпоративный ноут от всякой мутной фигни, на него человекоподобными роботами из корпоративного IT установленной. метода такая: запускаем Process Explorer, ищем информацию о подозрительных процессах и сервисах, напрягающее удаляем из всяческого автозапуска, либо переводим соответствующий сервис в режим ручного запуска, ну понятно (для деинсталляции у меня привилегий недостаточно, да и хочется иметь возможность вернуть как было если вдруг что).
почистил, всё вроде чудесно, но почему-то теперь при каждом возвращении из состояния "lock the computer" машинка подвисает ровно на одну минуту.
спрашиваем у Гугля: a не втречалась ли человечеству на пути технического прогресса подобная досадная проблема? а как же, ответствует Гугль, ещё как втречалась: вот тебе некоторое количество диалогов, изучай.
все диалоги выглядят так:
потерпевший: сижу, не шалю, рррраз! - машинка при unlock'е подвисать начала. как быть?
помогаец 1: а ты виндоуз переустанови (потерпевший, путаясь в литературных котах: спасибо, что-то не хочется)
помогаец 2: а ты поубивай нахрен все сервисы, перезагрузись, а потом включай по одному. только перезагружаться каждый раз не забывай! (потерпевший, потирая мозоль на попе: вот ведь удивительное дело - не помогло!)
...
:: проходит день/пара дней/неделя ::
...
потерпевший: всем спасибо, проблема решилась сама!
(в некоторых случаях потерпевший ещё добавляет какое-нибудь фуфловое объяснение, типа "это был троян!", или "надо было драйвер беспроводной сетевой карточки обновить!" и прочая).
в действительности-то всё проще, конечно. в некотором смысле.
отдельные носатые программы, оказывается, желают получать от системы извещения о событиях типа "пользователь вошёл в систему", "пользователь запер компьютер", "пользователь вернулся". для этого они сажают в registry под "HLM:Software:Microsoft:Windows NT:CurrentVersion:Winlogon:Notify" свою веточку, в которой написано: пошли мол, в случае события X, соответствующее сообщение вот этому вот DLL'ю.
и выходит что: программу/сервис пользователь благополучно нейтрализовал, а маленкий тупенький DLL, у которого мозгов только и хватает чтобы понимать и передавать хозяину сообщения о четырёх возможных событиях, не в курсе что война кончилась и по-прежнему пытается хозяину дозвониться. а Winlogon.exe (или кто там) почему-то именно в случае события "Unlock" считает необходимым всё бросить и непременно дожидаться завершения разговора. тайм-аут - минута, ага.
ну а делать надо понятно что.
Гугль под лыжекаты не заглядывает, я надеюсь?