Как мне прочитать состояние драйвера устройства в Windows?

#windows

#Windows

Вопрос:

Как мне прочитать состояние драйвера устройства? Я знаю, что могу перебирать драйверы, используя EnumDeviceDrivers и считывая их имя с помощью GetDeviceDriverFileName, но как мне узнать, остановлены ли они, запущены, отключены и т.д.?

DriverQuery.exe предоставляет информацию, но как мне прочитать информацию в моей программе без выполнения driverquery.exe ?

Комментарии:

1. Драйвер — это не служба. У него нет состояния.

Ответ №1:

EnumDeviceDrivers Извлекает адрес загрузки для каждого драйвера устройства в системе. т.е. перечисляет уже загруженные драйверы устройств. Что вам нужно, так это изучить api Service Control Manager (SCM), как только один из способов загрузки драйвера — назначить его SCM (в этом случае у драйвера действительно ЕСТЬ СОСТОЯНИЕ).

Проверьте это: EnumServicesStatus (с dwServiceType = SERVICE_DRIVER) QueryServiceStatus

Комментарии:

1. Спасибо за подсказку, это помогло! Я нашел эту статью, в которой показано, как использовать EnumServicesStatus — оттуда просто получить состояние (запущено или нет). go4expert.com/forums/showthread.php?t=18601