Wow64: ограничение на максимальное число процессоров

Бытует мнение, что хотя 64-х битные версии Windows поддерживают до 64-х процессоров, Wow64 ограничивает максимальное число процессоров для 32-х битных приложений 32 процессорами. Вероятнее всего причина появления подобного мнения заключается в том, что функции GetProccessAffinityMask, SetProcessAffinityMask и SetThreadAffinityMask используют 32 битные маски. Статья про особенности Wow64 в этой области тоже недостаточно подробна.

Read On →

Катастрофически не хватает времени…

Катастрофически не хватает времени – в очереди сидят пять ненаписанных статей в блог, N писем, требующих ответа, и пара несделанных неотложных дел. И что делать? :-(

Как послать баг-репорт в Microsoft? Часть II

Литературное «отчет о программной ошибке» конечно правильнее, но «баг-репорт» в три раза короче и в сто раз привычнее.

Предыдущий пост про отправку баг-репортов в Microsoft хотя и написан дурака валяючи, однако содержит в себе рациональное зерно. На данный момент нет никакого другого официального способа сообщить о найденной ошибке в Windows, кроме как сделать это через службу поддержки. Нельзя, например, просто послать письмо на какой-нибудь bugs@microsoft.com. Более того, обращение в службу поддержки – это платная услуга в общем случае. И не смотря на то, что Microsoft не возьмет деньги в случае, если наличие ошибки или недокументированного поведения будет подтверждено, сам факт отпугивает многих. «Я оказываю им услугу и я ещё должен за это платить? Ни за что!»

Имеет ли смысл подобная практика? Как это ни странно такая практика может иметь рациональное объяснение.

Read On →

Как послать баг-репорт в Microsoft?

Представим, что в процессе работы вы наткнулись на Страшный Баг в каком-либо из артефактов производства Сами Знаете Кого. Ну знаете, то ли Экспу не подымает, а ли в Кору валиться. Долго ли коротко ли, но потратив определённое количество времени, нервных клеток и святой воды, вы совершенно точно выяснили, что вызывает Баг к жизни, составили подробное описание Ритуала Вызова Бага и заодно выяснили, что нужно делать, чтобы не дай бог не вызвать Баг к жизни в неурочный час. Нетрудно догадаться, что после сих трудов праведных, решили вы заслать отчёт Сами Знаете Кому, в Редмонд, дабы извести нечисть на корню.

Read On →

Зайцы

Похоже, что с приходом тепла зайцы окончательно распоясались. Они теперь даже не шныряют в кустах, а просто открыто занимаются своими делами, игнорируя всех вокруг. Вот этот, например, вольготно расположился в клумбе возле Redmond City Hall: Его идейный сторонник вроде бы и делал вид, что работает, но тоже никуда не торопился: К чему это я всё? Так весна, тепло, зелень кругом. Ляпота. :-)

Спам

За две с копейками недели после отключения Captcha и включения “умного” спам-фильтра (Akismet) было отфильтровано 1403 спаммерских комментария. Через фильтр прорвались считанные единицы. Можно жить.

Регистрация COM объектов. Часть II. 64-х разрядная специфика

Итак, продолжаем начатое в первой части. 64-х разрядные версии Windows не разрешают смешивать 32-х и 64-х битный код в пределах одного процесса. В результате этого ограничения некоторые ветви реестра были также разделены на 32-х и 64-х разрядные. В частности, были разделены ключи, отвечающие за регистрацию COM компонент. Этот механизм называется перенаправлением реестра (registry redirection) и реализуется средствами Wow64. Механизм более или менее прозрачен для приложений в том смысле, что и 32-x и 64-х битные приложения используют одинаковые пути вида «HKEY_CLASSES_ROOT\Classes{…}», но работают, в конечном итоге, с разными ключами.

Read On →

Регистрация COM объектов. Часть I

Изначально, данный пост должен был называться «Регистрация COM объектов на 64-х разрядных версиях Windows» и речь должна было пойти про особенности 64-х разрядных версий Windows с точки зрения регистрации COM компонент. Однако пост получился слишком большим и его пришлось разбить на две части. Про особенности 64-х разрядных систем я расскажу во второй части.

Для начала немного теории. Взаимодействие клиента (приложения вызвавшего CoCreateInstance) и сервера (COM объекта) в общем случае можно изобразить с помощью вот такой схемы:

COM маршалинг.

Read On →

Наши соотечественники в Microsoft

Наши соотечественники в Microsoft - статья в PC Week.

Как запустить отладчик при аварийном завершении приложения в Vista

По умолчанию служба “Problem reports and solutions” в Vista настроена так, что при аварийном завершении приложения у пользователя есть выбор из двух вариантов: посылать или не посылать отчет на сервер Microsoft. Это довольно логичный выбор в случае если за компьютером сидит “средний” пользователь, которого негоже пугать отладчиком. Однако отнимать у разработчика возможность загрузить любимый отладчик нехорошо. :-) Чтобы исправить ситуацию достаточно просто выключить Problem reporting.

Read On →