В этой главе мы будем использовать многие концепции, которые мы изучили в предыдущих главах, и создадим простой драйвер.
Также в этой главе создадим клиент, для взаимодействия с нашим драйвером.
Мы установим драйвер и выполним в режиме ядра некоторую операцию, недоступную пользовательский режиме.
В этой главе:
Введение.
Инициализация драйвера.
Код клиента.
Создание и закрытие процедур отправки.
Программа отправки DeviceIoControl
Установка и тестирование.
1)Введение
Проблема, которую мы решим с помощью простого драйвера ядра, заключается в негибкости установки приоритетов потоков используя Windows API.
В пользовательском режиме приоритет потока определяется комбинацией его класса приоритета процесса со смещением для каждого потока, которое имеет ограниченное количество уровней.
Изменение класса приоритета процесса может быть достигнуто с помощью функции SetPriorityClass, которая принимает дескриптор процесса и один из шести поддерживаемых классов приоритетов...