В 5 части статьи Грома "Как писать драйвера" в конце читаем :
#define IOCTL_SET_COMMAND1 // наш код управления .....
res = DeviceIoControl ....
и дальше сразу :
Вызов такой функции приведет к обращению драйвером к функции FilterIoControl ---> как это получиось? или где про это прочитать?
Сразу скажу что статью Грома я не читал, но попытаюсь объяснить. При вызове DeviceIoControl операционная система вызовет обработчик кода IRP_MJ_DEVICE_CONTROL, которую регистрирует драйвер при своей загрузке. В этом обработчике он проверяет какой IOCTL ему послали и в соотвествие с этим вызывает функции.
2)Основы разработки прикладных виртуальных драйверов
Часть 2. Взаимодействие драйвера и приложения
К.Г.Финогенов номера с 2 по 11
А какие там драйвера- Legacy NT, WDM или те что в Win 95/98. И что за манера писать драйвера на ассемблере, судя по асму- там не NT и не WDM драйвера- их нормальные люди на асме не пишут.