В основном драйвер должен быть зарегистрирован как сервис. Используйте OpenSCManager
для доступа к функциям диспетчера служб, затем используйте CreateService
для первой регистрации вашего драйвера.
При регистрации вы выбираете тип запуска драйвера. SERVICE_BOOT_START
означает, что драйвер должен быть загружен во время загрузки (очень ранняя стадия загрузки ОС), SERVICE_SYSTEM_START
означает, что драйвер должен быть загружен во время загрузки системы (это типично более или менее). Вы также можете использовать SERVICE_DEMAND_START
- драйвер не будет загружаться автоматически.
Если ваш драйвер не загружен автоматически, вы должны использовать OpenService
, чтобы получить доступ к его службе, и StartService
, чтобы фактически запустить его.
Остальное зависит от того, что на самом деле делает ваш водитель. Если оно создает виртуальное устройство - вы можете получить к нему доступ, используя CreateFile
. Затем используйте DeviceIoControl
, чтобы фактически связаться с ним.