May 7, 2007 · Comments
ДизайнПрограммированиеWindowsWow64
Я уже упоминал несколько раз, что 64-х разрядные версии Windows используют два раздельных представления реестра – одно для 32-х разрядных приложений, а другое для 64-х разрядных. Как-то, я даже писал о том, как это делается. Ключевых моментов там всего ничего:
-
Разделён не весь реестр, а лишь некоторые из ключей;
-
Физически 32-х разрядные ключи помещаются в ветки с именем «Wow6432Node»;
-
Приложения могут выбирать представление реестра с которым они хотят работать с помощью флагов KEY_WOW64_32KEY и KEY_WOW64_64KEY (см. Accessing an Alternate Registry View).
Read On →
May 7, 2007 · Comments
ЗверьёСтранное
В продолжение темы про зайцев. На этих выходных мы с супругой видели вообще феерическую картину. Не знаю даже как описать это действо в красках. В общем, ласка таскала дохлую мышь, а за ними гонялся заяц. Причем продолжалась это довольно долго, - минут пять, не меньше. Ни ласка, ни заяц, ни тем более мышь, никуда особенно не торопились. Гоняли себе то по высокой траве, то выскакивали на скошенный участок. К сожалению под рукой не оказалось фотоаппарата, так что предъявить хоть какое-нибудь доказательство произошедшего не получится.
Read On →
May 3, 2007 · Comments
WindowsWow64
Бытует мнение, что хотя 64-х битные версии Windows поддерживают до 64-х процессоров, Wow64 ограничивает максимальное число процессоров для 32-х битных приложений 32 процессорами. Вероятнее всего причина появления подобного мнения заключается в том, что функции GetProccessAffinityMask, SetProcessAffinityMask и SetThreadAffinityMask используют 32 битные маски. Статья про особенности Wow64 в этой области тоже недостаточно подробна.
Read On →
May 1, 2007 · Comments
Всякая всячина
Катастрофически не хватает времени – в очереди сидят пять ненаписанных статей в блог, N писем, требующих ответа, и пара несделанных неотложных дел. И что делать? :-(
Apr 27, 2007 · Comments
ПрограммированиеMicrosoft
Литературное «отчет о программной ошибке» конечно правильнее, но «баг-репорт» в три раза короче и в сто раз привычнее.
Предыдущий пост про отправку баг-репортов в Microsoft хотя и написан дурака валяючи, однако содержит в себе рациональное зерно. На данный момент нет никакого другого официального способа сообщить о найденной ошибке в Windows, кроме как сделать это через службу поддержки. Нельзя, например, просто послать письмо на какой-нибудь bugs@microsoft.com. Более того, обращение в службу поддержки – это платная услуга в общем случае. И не смотря на то, что Microsoft не возьмет деньги в случае, если наличие ошибки или недокументированного поведения будет подтверждено, сам факт отпугивает многих. «Я оказываю им услугу и я ещё должен за это платить? Ни за что!»
Имеет ли смысл подобная практика? Как это ни странно такая практика может иметь рациональное объяснение.
Read On →
Apr 25, 2007 · Comments
ПрограммированиеЮморMicrosoft
Представим, что в процессе работы вы наткнулись на Страшный Баг в каком-либо из артефактов производства Сами Знаете Кого. Ну знаете, то ли Экспу не подымает, а ли в Кору валиться. Долго ли коротко ли, но потратив определённое количество времени, нервных клеток и святой воды, вы совершенно точно выяснили, что вызывает Баг к жизни, составили подробное описание Ритуала Вызова Бага и заодно выяснили, что нужно делать, чтобы не дай бог не вызвать Баг к жизни в неурочный час. Нетрудно догадаться, что после сих трудов праведных, решили вы заслать отчёт Сами Знаете Кому, в Редмонд, дабы извести нечисть на корню.
Read On →
Apr 23, 2007 · Comments
Зверьё
Похоже, что с приходом тепла зайцы окончательно распоясались. Они теперь даже не шныряют в кустах, а просто открыто занимаются своими делами, игнорируя всех вокруг. Вот этот, например, вольготно расположился в клумбе возле Redmond City Hall:
Его идейный сторонник вроде бы и делал вид, что работает, но тоже никуда не торопился:
К чему это я всё? Так весна, тепло, зелень кругом. Ляпота. :-)
Apr 19, 2007 · Comments
WordPress
За две с копейками недели после отключения Captcha и включения “умного” спам-фильтра (Akismet) было отфильтровано 1403 спаммерских комментария. Через фильтр прорвались считанные единицы. Можно жить.
Apr 18, 2007 · Comments
COMПрограммированиеWindowsWow64
Итак, продолжаем начатое в первой части. 64-х разрядные версии Windows не разрешают смешивать 32-х и 64-х битный код в пределах одного процесса. В результате этого ограничения некоторые ветви реестра были также разделены на 32-х и 64-х разрядные. В частности, были разделены ключи, отвечающие за регистрацию COM компонент. Этот механизм называется перенаправлением реестра (registry redirection) и реализуется средствами Wow64. Механизм более или менее прозрачен для приложений в том смысле, что и 32-x и 64-х битные приложения используют одинаковые пути вида «HKEY_CLASSES_ROOT\Classes{…}», но работают, в конечном итоге, с разными ключами.
Read On →
Apr 13, 2007 · Comments
COMПрограммированиеWindowsWow64
Изначально, данный пост должен был называться «Регистрация COM объектов на 64-х разрядных версиях Windows» и речь должна было пойти про особенности 64-х разрядных версий Windows с точки зрения регистрации COM компонент. Однако пост получился слишком большим и его пришлось разбить на две части. Про особенности 64-х разрядных систем я расскажу во второй части.
Для начала немного теории. Взаимодействие клиента (приложения вызвавшего CoCreateInstance) и сервера (COM объекта) в общем случае можно изобразить с помощью вот такой схемы:
Read On →