Создание VxD на Visual C++ без ассемблерных модулей


Создание VxD на Visual C++ без ассемблерных модулей

Создание VxD на Visual C++ без ассемблерных модулей
Смысл и назначение драйвера
Имя и идентификатор драйвера
Статические и динамические драйверы
Порядок загрузки статических драйверов
Системные сообщения драйверу

Сервисные функции драйвера
Интерфейс с прикладными программами
Структура и функционирование драйвера
Секции файла драйвера


Блок описателя драйвера
Контексты
Доступ к памяти
Повторная входимость
Загрузка, работа и выгрузка драйвера
Среда выполнения

Стандартные библиотеки
Вспомогательные функции (wrappers)
Функции, вызываемые извне
Неявные обращения к функциям поддержки
Экспорт ссылки на DDB
Структура DEF-файла для построения VxD
Установки компилятора и компоновщика
Параметры секций
Отладка
Общая схема драйвера VxD

Средства разработки, включаемые файлы и библиотеки
VxD_Desc_Block - блок описателя устройства
Client_Reg_Struc - структура пакета регистров клиента
DIOCParams - параметры запроса DeviceIoControl
Диспетчер системных сообщений
Обработчики сервисных функций
Обработчики вызовов API
DEVICE_INIT - инициализация статического драйвера
SYS_DYNAMIC_DEVICE_INIT - инициализация динамического драйвера
DEVICE_EXIT - завершение динамического драйвера

CREATE_VM - создание новой виртуальной машины
VM_INIT - инициализация новой виртуальной машины
VM_TERMINATE - завершение виртуальной машины
DESTROY_VM - уничтожение виртуальной машины
CREATE_THREAD - создание новой задачи
THREAD_INIT - инициализация новой задачи
TERMINATE_THREAD - завершение задачи
DESTROY_THREAD - уничтожение задачи
SYSTEM_EXIT - завершение работы системы
W32_DEVICEIOCONTROL - запрос от приложения Win32

VMMCall, VMMJmp, VxDCall, VxDJmp - вызов сервисных функций VxD
_SelectorMapFlat - отображение сегментного адреса в линейный
Out_Debug_String - вывод отладочного сообщения
_Sprintf - форматирование строки
Пример построения функции-обертки
Пример простого VxD

Delphi - база знаний

Delphi и Flash. Совмещение несовместимого! Разве возможно совместить Флэш-ролики и Дельфи-приложения. Раньше я думал что НЕТ. Но теперь я знаю не только, что это возможно, но и знаю как это делается!!! И сейчас я вам расскажу об этом. Во-первых хочется отметить преимущества использования флэш-роликов в ваших программах. Если вы сумеете гармонично вписать небольшой флэш-ролик в вашу программу, то несомненно внешний вид программы будет намного привлекательнее (главное не переборщить, увлекаясь дизайном, не надо забывать о том что программа должна быть удобна и проста в использовании! ).
Итак, как же совместить Флэш и Дельфи? (Надеюсь, что у вас Флэш установлен:))
Запустите Дельфи и выберите пункт меню Component->Import ActiveX Control... Перед вами откроется диалоговое окно с заголовком Import ActiveX Control. В разделе Registered Controls выберите Shockwave Flash. В разделе Pallete Page... Выберите страницу в палитре компонентов, на которой будет располагаться установленный компонент (по умолчанию это ActiveX). В разделе Unit Dir Name... путь к папке куда будет установлен компонент.
Нажмите на кнопку Install. Перед вами появится окно, в котором вам нужно будет выбрать в какой пакет будет установлен компонент (вы можете установить как в уже существующий, так и в новый пакет). Затем перед вами появится окно редактирования выбранного пакета и Дельфи вас спросит: "...Package will be rebuilt. Continue?". Ответьте Yes. Все готово теперь можно использовать флэш в ваших приложениях!!!

Программирование серверов на основе сокетов в Дельфи
Как работать со сканером?
Описание протокола ARP (Address Resolution Protocol)
Как перехватить Ctrl-V в компоненте TMemo
Как добавить True Type шрифт в систему

Градиентная заливка и сложение цветов
Передача переменной в отчет ReportSmith
Как из HBitmap получить адрес Bitmap в памяти
Убывающий индекс
Работа с TCP/IP
Информация о логических дисках

Как взять URL из окна IE
Создание Active Server Page (ASP) приложений
Как получить список инсталлированных програм?
Как послать сообщение?
Как программно создать ярлык

Как работать со сканером
Как сделать окно системно-модальным
Как сохранить обьект TFont в реестре/ini/файле/таблице базы данных
Как убрать заголовок в дочерней форме MDI
Как узнать номер BIOS для разных версий Windows

Как выдать текст под наклоном
Как запретить перемещение формы
Компонент для последовательного устройства
Math - математика, статистика, финансы
Не сохраняются изменения в базе Paradox

Определение установленных версий .NET Framework в системе
Перехват ошибок DBEngine
Получаем имена ODBC-источников
Пример FTP сервера
Програмное выключение клавиатуры и мыши

Работа с форматами данных
Работа с SyBase
Реляционные базы данных
Сохранить в базе картинку формата JPEG

StatusBar с другими контролами
Удаление колонки в StringGrid
Выставляем горячие клавиши для Delphi приложения

Содержание раздела