Зачем нужен параметр lpClass в функции RegCreateKeyEx?

Любой разработчик, кто хоть раз создавал ключ в реестре с помощью функции RegCreateKeyEx задавался вопросом: «а зачем нужен параметр lpClass и что он означает?»

lpClass [in, optional] The user-defined class type of this key. This parameter may be ignored. This parameter can be NULL.

Read On →

Работаем сегодня?

Утро пятницы. 9:30. Большая часть населения Штатов все еще переваривает вчерашнюю индейку с картошкой и прочие излишества праздничного стола. В магазинах бушует Черная пятница. На улицах Сиэтла - парад в честь прибытия Санты Клауса. И в этот момент человек пишет: А сегодня вообще рабочий день-то?

Иногда люди воспринимают вещи слишком буквально

На днях свалился в inbox вопрос:

The documentation for QueueUserApc states “an APC cannot be queued from a 64-bit process to a 32-bit process or vice versa.”

However on Vista Ultimate x64, we _can _queue a user APC from a 32-bit process to a 64-bit process. In our test application the 64-bit recipient crashes, we haven’t explored why just yet, but the point is that the operation should not succeed and the 64-bit application’s APC queue should never have the APC inserted.

Is it an OS bug?

Документация к функции QueueUserApc утверждает, что асинхронный вызов процедуры (APC) не может быть запрошен из 64-х битного процесса для выполнения в 32-х битном и наоборот.

Однако на Vista Ultimate x64 мы можем выполнить асинхронный вызов пользовательского режима из 32-х битного процесса в 64-х битном процессе. В нашем тестовом приложении 64-х битный получатель падает и мы еще не выяснили почему, но дело в том, что операция (QueueUserApc) не должна завершаться успешно и асинхронный вызов не должен вставляться в очередь вызовов 64-х разрядного процесса.

Это баг ОС?

Вопрос примечателен тем, что это уже третье письмо на эту тему за последние два месяца, хотя функция QueueUserApc далеко не самая широко используемая функция Win32. Не иначе какой настойчивый клиент эту функцию мучает. :-)

Read On →

Первое прямое наблюдение экзопланеты!

Офигительная новость. Астрономам удалось увидеть планету, вращающуюся вокруг другой звезды. Не вычислить по колебаниям яркости или лучевой скорости материнской звезды, а именно увидеть. Первым отличился Хаббл: На снимке виден Фомальгаут B - планета, вращающаяся вокруг звезды Фомальгаут, и пояс обломков и пыли - остатки формирования планет. Но и это еще не всё. Другая группа исследователей с помощью 8-ми метрового телескопа Gemini North 8 сфотографировала две планеты, вращающиеся вокруг другой звезды. Read On →

PDC: Отзывы о Windows 7

Почитываю отзывы о показанной на PDC Windows 7. Нахваливают. Боже, и эти же самые люди ругали Vista. Куда катится мир? :-)

Как работает «раскрутчик» стека в x64

В комментариях к предыдущем посте про исключения верно заметили, что exception chain в TEB используется только в x86 коде. И x64, и ia64 exception chain не используют вообще. Как же, в таком случае, выполняется «раскрутка» стека при обработке исключения?

Read On →

Undefined instruction

Набор команд x86-совместимых процессоров за годы эволюции набрал немалое количество всякой экзотики. Один из примеров такой экзотики – инструкция UD2. Задача этой инструкции состоит в том, чтобы… быть несуществующей инструкцией. Выполнение UD2 всегда приводит к генерации исключения «Invalid opcode». Отличие UD2 от любой другой несуществующей инструкции в том, что эта инструкция гарантированно не станет корректной инструкцией в будущем.

Read On →

А что, собственно, происходит, когда бросается исключение?

Нет, ну в общих чертах понятно - процессор генерирует исключение, операционная система находит нужный обработчик и вызывает его. А что происходит, если посмотреть подробнее? В Windows происходит примерно следующее.

Read On →

Спам в комментариях

Количество спама в комментариях выходит за всякие разумные рамки. К счастью 99% процентов спама успешно отлавливается спам фильтрами, так что совсем отключать комментирование в блоге пока не хочется. Но частенько в спам попадают и те комментарии, которые, строго говоря, спамом не являются. Именно для авторов этих комментариев и предназначена эта страничка (ссылка удалена).

Успешный запуск Falcon-1

А тем временем в замке у шефа… в смысле компания SpaceX провела успешный запуск макета полезной нагрузки на орбиту с помощью своей ракеты Falcon-1. Можно сказать эпохальное событие – первая частная ракета, способная вывести полезную нагрузку на орбиту Земли. На очереди – отладка Falcon-9 и, дай бог, запуск пилотируемого Dragon. Эх, накопить бы немного деньжат – в космос слетать. Или маленький остров в Тихом океане купить. :-/