3.4. Главная диспетчерская процедура.
3.4. Главная диспетчерская процедура.
Она называется OnDispatch и объявлена как
OnDispatch proc near, pDeviceObject:PDEVICE_OBJECT, pIrp:PIRP
Здесь нам важен указатель на структуру с данными запроса pIrp. Данная структура довольно сложна. Вы можете найти её объявление в файле usewdm.inc.
Но нам понадобятся лишь некоторые данные.
Сначала мы должны определить код запроса – он будет один из трёх: IRP_MJ_CREATE, IRP_MJ_CLOSE или IRP_MJ_DEVICE_CONTROL.
Мы получаем этот код из структуры IO_STACK_LOCATION, указатель на которую мы получаем из структуры IRP(в свою очередь, указатель на irp был передан нам в пераметре pIrp):
mov ebx,pIrp
mov eax,(_IRP ptr [ebx]).Tail.Overlay.CurrentStackLocation ; Восстанавливаем указатель на структуру IO_STACK_LOCATION
mov pIrpStack,eax
mov ebx,pIrpStack
mov al,(IO_STACK_LOCATION ptr [ebx]).MajorFunction ; al – Код сообщения
Дальше отрабатываем запросы по-разному.
Для IRP_MJ_CREATE и IRP_MJ_CLOSEобработка фиктивная. Мы просто возвращаем код успеха STATUS_SUCCESS в регистреeax.
Для IRP_MJ_DEVICE_CONTROL мы должны получить данные о длине входного и выходного буферов приложения пользователя, восстановить указатель на промежуточный системный буфер и адрес переменной, в которую будет записана длина информационного пакета, передаваемого из драйвера приложению пользователя.
Мы размещаем эти данные в локальных переменных, чтобы потом вызвать вторичную функцию DeviceIoControlHandler, где и будет выполнена обработка.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
7.2.2. Главная страница
7.2.2. Главная страница Главная страница сервиса доступна по адресу http://maps.yandex.ru/. Информации на этой странице немного — список доступных карт и поле для поиска информации на карте. Щелчок на названии карты или региона переводит на страницу, где можно будет работать с
Самая главная тайна
Самая главная тайна Сейчас я открою вам самую главную тайну. Как быстро нарастить группу в Facebook? Чем больше людей посетит вашу Welcome Page, тем быстрее вы наберете необходимое число друзей. Всё.Выше я уже приводил цифры конверсии, повторю их еще раз. В среднем в мире один
Юзабилити: главная страница интернет-магазина
Юзабилити: главная страница интернет-магазина На главной странице основные потери происходят, во-первых, из-за случайной аудитории, и во-вторых, из-за отталкивающего дизайна и непроработанной
Главная страница сайта
Главная страница сайта Главная страница сайта имеет самый высокий показатель отказов. Ее покидают 40–60 % посетителей, так как именно главная страница появляется в поиске по самым широким запросам, которые могут вводить представители разной целевой аудитории.Если
Вкладка Главная
Вкладка Главная Небольшое вступление. На экране у нас уютно расположился текст сказки про маленький компьютер (см. рис. 1.8). Допустим, что-то нам в нем не нравится, и мы хотим это что-то изменить. Вы наверняка умеете пользоваться клавишами Backspace и Delete, но они удаляют символы
Вкладка Главная
Вкладка Главная Начнем с вкладки Главная (рис. 3.8).Буфер обмена. Здесь для вас не будет никаких неожиданностей: команды Вырезать, Копировать, Вставить (работают горячие клавиши Ctrl+X, Ctrl+C, Ctrl+V) и кнопка вызова панели буфера обмена на 24 элемента. Как и в Word, вы можете запомнить 24
Урок № 97. Главная книга
Урок № 97. Главная книга Главная книга – это один из основных документов бухгалтерской отчетности, который содержит информацию о корреспонденции каждого счета со всеми другими счетами, а также о сальдо по каждому счету.Чтобы сформировать Главную книгу, выполните
4.3. Группа Шрифт вкладки Главная
4.3. Группа Шрифт вкладки Главная Изменять параметры шрифта можно, используя не только вкладку Шрифт одноименного окна. Во многих случаях гораздо удобнее пользоваться инструментами группы Шрифт вкладки Главная на ленте (рис. 4.7). Рис. 4.7. Группа Шрифт вкладки ГлавнаяС
14.5.4. Процедура выдать
14.5.4. Процедура выдать Процедуравыдать( Ответ)приведенная на рис. 14.12, показывает пользователю окончательный результат консультационного сеанса и дает объяснения типа "как". Ответ включает в себя как ответ на вопрос пользователя, так и дерево вывода, демонстрирующее
5.3.3 Процедура оценивания
5.3.3 Процедура оценивания Последняя, стадия модели процесса оценивания уточняется по трем этапам, называемым «измерение», «ранжирование» и
Не только одна главная функция
Не только одна главная функция При эволюции системы то, что вначале воспринималось как ее главная функция, с течением времени может стать менее важным. Рассмотрим типичную систему расчета зарплаты. При формулировке начальных требований заказчик мог представить лишь то,
Главная загрузочная запись и таблица разделов
Главная загрузочная запись и таблица разделов В первом секторе на любом жестком диске находятся код простой программы (загрузчика) и последовательность информационных полей (таблица разделов). Вместе программа и поля называются главной загрузочной записью (Master Boot Record –