ITBlogs

Сообщество IT-профессионалов
Welcome to ITBlogs Sign in | Join | Help
in Search

Browse by Tags

All Tags » itblogs » Программирование
Showing page 1 of 5 (46 total posts)
  • Можно ли использовать функцию RtlCaptureContext() из x86 кода?

    Вопрос из почты: The question is really simple: could we use RtlCaptureContext on X86? The MSDN (http://msdn.microsoft.com/en-us/library/ms680659(v=VS.85).aspx) says it’s only for 64 but the bug is for X86 and I see some kernel code are using it on x86. Вопрос на самом деле очень прост: можем ли мы использовать функцию RtlCaptureContext на x86? ...
    Posted to Not a kernel guy (Weblog) by Anonymous on июля 25, 2011
  • Функция DeviceIoControlEx.

    Win32 API предоставляет «Ex» варианты функций ReadFile и WriteFile, в то время как «Ex» варианта функции DeviceIoControl не предлагается. Исправить этот недостаток очень просто, так как соответствующая функция Native API документирована в MSDN: NtDeviceIoControlFile (хотя и помечена как «Deprecated»). Прототип новой функции будет выглядеть вот ...
    Posted to Not a kernel guy (Weblog) by Anonymous on июня 15, 2011
  • Неогороженное минное поле – это еще не повод по нему ходить.

    Пришло письмо с вопросом: Обнаружилась следующая проблема: Наша программа сохраняет и считывает последнюю открытую ею директорию в разделе реестра, где сохраняют последние посещенные ими директории и другие программы, а именно в ветке «HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU». Это в 32-х разрядной ...
    Posted to Not a kernel guy (Weblog) by Anonymous on июня 9, 2011
  • Список состояний конечного автомата.

    Подсмотрел у коллеги простой и довольно удобный способ держать список состояний/событий конечного автомата в одном месте. А то обычно они норовят расползтись по разным углам: enum, объявляющий соответствующие константы, массив имен состояний для отладки, большой switch, выбирающий что делать, в зависимости от состояния… Делается примерно ...
    Posted to Not a kernel guy (Weblog) by Anonymous on мая 16, 2011
  • Список состояний конечного автомата.

    Подсмотрел у коллеги простой и довольно удобный способ держать список состояний/событий конечного автомата в одном месте. А то обычно они норовят расползтись по разным углам: enum, объявляющий соответствующие константы, массив имен состояний для отладки, большой switch, выбирающий что делать, в зависимости от состояния… Делается примерно ...
    Posted to Not a kernel guy (Weblog) by Anonymous on мая 16, 2011
  • РИТ++, секция «RootConf».

    Меня пригласили выступить на конференции РИТ++ 2011, которая пройдет в Москве в конце апреля. Предварительная тема доклада: «Сетевая подсистема Windows глазами разработчика. Краткий, неполный и, в основном, неверный обзор. » Я собираюсь рассказать о том, как работает ядерная часть сетевой подсистемы, как данные попадают в user mode и что с ними ...
    Posted to Not a kernel guy (Weblog) by Anonymous on апреля 3, 2011
  • РИТ++, секция «RootConf».

    Меня пригласили выступить на конференции РИТ++ 2011, которая пройдет в Москве в конце апреля. Предварительная тема доклада: «Сетевая подсистема Windows глазами разработчика. Краткий, неполный и, в основном, неверный обзор. » Я собираюсь рассказать о том, как работает ядерная часть сетевой подсистемы, как данные попадают в user mode и что с ними ...
    Posted to Not a kernel guy (Weblog) by Anonymous on апреля 3, 2011
  • Про то, как отцепиться и ничего не порушить.

    Главная проблема с хуками состоит не в том, как зацепиться, а в том, как отцепиться и ничего не порушить. К примеру, приходит недавно письмо: We recently saw an AV in stress where our vectored exception handler was called after our dll was unloaded. After investigating the issue, it seems like removing the vectored exception handler does not wait ...
    Posted to Not a kernel guy (Weblog) by Anonymous on марта 22, 2011
  • Правильный прототип функции DebugBreak().

    Функция DebugBreak() объявлена вот таким образом: void WINAPI DebugBreak(void); Если подумать, то это не очень удачный вариант объявления. Гораздо более удобным вариантом был бы: void __cdecl DebugBreak(...); Почему? В такую функцию можно передать любой набор параметров. Например, значения переменных интересующих нас в данной точке останова. Или ...
    Posted to Not a kernel guy (Weblog) by Anonymous on марта 11, 2011
  • История одной оптимизации.

    Писал я тут свой первый драйвер для сетевой карты. Взял, как полагается, за основу готовый образец драйвера. Выкинул всю аппаратно-зависимую часть. Добавил свою. По ходу дела выяснил, что tear-down код в примере отсутствует напрочь, чтение стандартной конфигурации не сделано, кругом hardcoded константы. В общем, обычная история, что вы хотите от ...
    Posted to Not a kernel guy (Weblog) by Anonymous on февраля 14, 2011
1 2 3 4 5 Next >
Powered by Community Server (Personal Edition), by Telligent Systems