#c #windows #device-driver
#c #Windows #устройство-драйвер
Вопрос:
Я довольно новичок в ядре, поэтому решил, что научусь находить драйвер устройства по имени на C . Я в тупике, поскольку я действительно не понимаю, как использовать GetDeviceDriverBaseName
, чтобы получить из него конкретное имя драйвера. Я также не смог найти учебные пособия или документы, кроме тех, что от Microsoft.
Любая помощь приветствуется.
#include <psapi.h>
#include <tchar.h>
#include "Title.h"
#define ARRAY_SIZE 1024
int main( void )
{
LPVOID drivers[ARRAY_SIZE];
DWORD cbNeeded;
int cDrivers, i;
if (EnumDeviceDrivers(drivers, sizeof(drivers), amp;cbNeeded) amp;amp; cbNeeded < sizeof(drivers))
{
TCHAR szDriver[ARRAY_SIZE];
cDrivers = cbNeeded / sizeof(drivers[0]);
_tprintf(TEXT("There are %d drivers:n"), cDrivers);
for (i = 0; i < cDrivers; i )
{
if (GetDeviceDriverBaseName(drivers[i], szDriver, sizeof(szDriver) / sizeof(szDriver[0])))
{
_tprintf(TEXT("%d: %sn"), i 1, szDriver);
}
}
}
else
{
_tprintf(TEXT("Enumeration of Drivers failed; array size need is %dn"), cbNeeded / sizeof(LPVOID));
return 1;
}
Комментарии:
1. Это похоже на ссылочный код здесь , но с
#include <windows.h>
отсутствующим, и этот комментарий обрезан: » Чтобы обеспечить правильное разрешение символов, добавьте Psapi.lib в TARGETLIBS и скомпилируйте с -DPSAPI_VERSION=1 «. Вы это сделали, и если да, то что не работает?2. Проблема не в том, что мне не хватает файла заголовка, у меня Windows. h там я просто забыл вставить этот пост. Проблема в том, что моя цель — попытаться создать приложение на c в пользовательском режиме, которое может сообщить мне, загружен ли конкретный драйвер в данный момент. Я понятия не имею, как это сделать. Текущий код сообщает мне каждый драйвер, но не конкретный. Это моя проблема с фильтрацией / выделением определенного драйвера по имени из этого массива
3. Если вопрос заключается в том, как найти заданную строку в списке возвращенных строк, тогда просто
strcmp
строка, которую вы ищете, для каждой строки в списке.4. я собираюсь попробовать это, я лично никогда не использовал strcmp, и я готов это сделать, спасибо за ответ.