Фото

system-info

Описание

info - лёгкий C-модуль, который собирает информацию о железе и программном обеспечении под Windows исключительно через Windows API и реестр Windows. Модуль не использует WMI, WMIC, OLE и COM в какой-либо форме. Все данные читаются прямыми вызовами Win32 API и запросами к реестру, что делает модуль быстрым, свободным от зависимостей и простым для аудита. Все wide-строки транскодируются во внутреннем представлении в UTF-8, поэтому потребитель работает с обычными char-буферами.

Модуль предоставляет плоский data-oriented API: каждая функция заполняет буфер или структуру, переданную вызывающим кодом, и возвращает количество элементов или статус. Нет глобальных переменных, нет внутренних аллокаций, живущих дольше вызова, нет потоков и нет последовательности инициализации/завершения - функцию можно вызвать в любой момент, и повторные вызовы безопасны. Исходники не зависят от конкретного компилятора в рамках тулчейна MinGW-w64: одни и те же файлы собираются как C через gcc и как C++ через g++ без каких-либо изменений (публичный заголовок обёрнут в extern "C"). В репозитории также находится test_info - небольшое консольное демо-приложение, которое линкует модуль и выводит собранные данные; демо вторично, модуль является основным результатом и может использоваться в любом C/C++ проекте.

Используемые модули

Технологии

Ресурсы

Открыть github