Виртуальные драйверы с Windows Driver Model - с чего начать?
Я никогда раньше не писал драйверов, но я начинаю проект с открытым исходным кодом, который включает в себя создание виртуальных портов MIDI, которые будут отправлять данные MIDI по сети.
Для этого я предполагаю, что буду создавать какой-то виртуальный драйвер с использованием WDM (если это невозможно с помощью хуков ядра?), Но, будучи новичком в разработке драйверов, я не знаю, с чего начать.
Кто-нибудь знает какие-нибудь полезные ресурсы, которые помогут мне в этом проекте? Или какой-нибудь открытый исходный код из аналогичного проекта, который я мог бы использовать в качестве отправной точки?
4 ответа
Драйверы Windows MIDI не нужно реализовывать в ядре, они могут быть полностью реализованы в пользовательском пространстве в виде DLL.
В MSDN есть некоторая информация о функциях, которые вам нужно реализовать - сообщения об аудиоустройствах для MIDI - к сожалению, этого не хватает
Раньше был пример кода для этого типа драйвера, как часть NT4 DDK, но, к сожалению, в более поздних выпусках DDK / WDK его больше нет.
Некоторую лучшую (хотя и более старую) документацию и пример кода можно найти после некоторого поиска:
Посмотрите на проект Dokan, он делает нечто подобное (но с виртуальным драйвером файловой системы).
Если вы хотите создать новую файловую систему в Windows, например, для улучшения FAT или NTFS, вам необходимо разработать драйвер файловой системы.
Разработка драйвера устройства, работающего в режиме ядра на Windows, чрезвычайно сложна. Используя библиотеку Dokan, вы можете очень легко создавать свои собственные файловые системы без написания драйвера устройства.
Библиотека Dokan похожа на FUSE(файловая система в режиме пользователя Linux), но работает в Windows.
Вот хорошая подборка ресурсов по разработке драйверов под WDM
Гугл тиамодиск... отличный пример. виртуального драйвера мини-порта SCSI. другой виртуальный драйвер, который я знаю, это "Filedisk". если ты хочешь tiamodisk я могу написать по электронной почте