Функции уведомления и функции обратного вызова в Windows (ч.1, Ps*)

В операционной системе Windows разработчиками было предусмотрено довольно много механизмов получения каких-либо уведомлений и событий. В некоторых случаях разработчик может влиять на возвращаемый результат, в некоторых – нет. В основном считается, что программист не может влиять на возвращаемый результат функций уведомления (notifications) и может влиять на возвращаемый результат функций обратного вызова (callbacks). Однако это совсем не означает, что функции уведомления вызываются асинхронно, поэтому необходимо обязательно возвращать управление из тех и из других.

Предоставленные функции связаны с различными объектами операционной системы, такими как процессы, потоки, файловые образы, объекты системного реестра и так далее.

Читать дальше "Функции уведомления и функции обратного вызова в Windows (ч.1, Ps*)"

  • Share/Bookmark

Windows 7 WDK documentation

На сайте WDKDocs доступна обновленная документация с поддержкой Windows 7.

Документацию можно загрузить в двух форматах, как обычный апдейт и в формате .chm:

WDKDocs_08072009.exe

wdkchm_08072009.exe

3

  • Share/Bookmark

WDK 7.0.0 доступен для загрузки

Hello WDK Program Participants:

We are pleased to announce the release of the Windows Driver Kit Version 7.0.0. This latest production release of the WDK is now available for download on Connect.

In this WDK release, the WDK is delivering the latest updates to create drivers for: • Windows 7 • Windows Vista • [...]

  • Share/Bookmark

Ребутни меня жестко

В некоторых ситуациях возникает потребность перезагрузить операционную систему прямо из ядра. Когда-то давно я был озадачен такой проблемой, так как существующие способы меня не устраивали по разным причинам. Пришлось копать, искать и спрашивать. В результате были найдены следующие варианты.

Читать дальше «Ребутни меня жестко»

  • Share/Bookmark

VAD’о-рекурсия

В свое время, при написании анти-руткита мне понадобилось восстановить структуру спроецированных файлов в пользовательское пространство процесса. Выделения памяти и проекции секций процесса описываются механизмом Virtual Address Descriptors (VAD), указатель, на вершину которого находится в структуре _EPROCESS. VAD в Windows – это сбалансированное бинарное дерево. Первое, что приходит в голову – обходить это дерево рекурсивно. Это оказалось большой ошибкой.

Читать дальше «VAD’о-рекурсия»

  • Share/Bookmark

Супер BUILD

Рано или поздно драйверописатель сталкивается с необходимостью использовать в своем проекте чужой код. Обычно, для сборки драйвера используется утилита BUILD, идущая в поставке WDK. Буквально недавно я столкнулся с очевидной проблемой данного инструмента:

С:\path1\path2\path3>build -g
BUILD: Compile and Link for x86
BUILD: Loading c:\winddk\6001\build.dat…
BUILD: Computing Include file dependencies:
BUILD: Start time: Fri Feb 06 15:50:51 2009

errors in directory С:\path1\path2\path3

Ignoring invalid directory prefix in SOURCES= entry: D:\somepath1\somepath2\somepath3\somepath4\somepath5\file.c

Читать дальше «Супер BUILD»

  • Share/Bookmark