Например, получить список всех системных модулей (драйверов) и их адресов, и посмотреть в этом списке имя драйвера, которому принадлежит заведомо известный адрес (например адрес какой-нибудь процедуры). Хотя должен быть и более правильный способ. Может порыться в указателе на девайс, передаваемый в DriverEntry?
Проще, но это неправильно. Имя сервиса драйвера не обязано совпадать с именем его файла. Просто обычно это так, потому что другого не требуется. До имени сервиса ещё можно добраться так: pDriverObject->DriverExtension->ServiceKeyName Самый правильный способ, IMHO, посмотреть имя файла: pDriverObject->DriverSection -> LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY.FullDllName полный путь к образу или только имя образа с расширением LDR_DATA_TABLE_ENTRY.BaseDllName только имя образа с расширением В WinObjEx работает уже несколько лет, пока ни у кого не падало. Ну и cresta тоже правильно говорит. Это хоть и медленно но абсолютно безопасно.
А... имелось ввиду прочитать ImagePath... я не обратил внимания на "имени своего же". Тогда конечно проще в своём ключе реестра посмотреть. Только непонятно зачем это вообще нужно. Если только расчитывать на то, что файл переименуют.