Я хочу получить список установленных драйверов мини-фильтров в MS Windows, но не знаю, как это сделать.
Мой язык программирования Delphi (я также могу использовать C или C ++), может ли кто-нибудь помочь мне сделать это?
Следующий код перечисляет элементы, использующие реестр:
implementation
{$R *.dfm}
uses Registry;
procedure TForm17.Button1Click(Sender: TObject);
var
Reg: TRegistry;
count: integer;
i: integer;
Item: string;
AllOK: boolean;
begin
Reg:= TRegistry.Create(KEY_READ);
try
Reg.RootKey:= HKEY_LOCAL_MACHINE; //Note must set the base first.
//Then open rest of the subtree underneigh.
AllOK:= Reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\services\FltMgr\Enum');
if (AllOK) then begin
count:= Reg.ReadInteger('Count');
for i:= 0 to count - 1 do begin
Item:= Reg.ReadString(IntToStr(i));
Memo1.Lines.Add(Item);
end; {for}
end else {not(AllOK)} begin
Memo1.Lines.Add('SYSTEM\CurrentControlSet\services\FltMgr\Enum does not exist');
exit;
end;
finally
Reg.Free;
end;
end;
Возвращенные записи выглядят так: Root\LEGACY_FLTMGR\0000
Root
это ссылка на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root
,
Таким образом, вы можете получить всю информацию от: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_FLTMGR\0000
,
Эта запись выглядит так:
Мы можем использовать (например) следующие функции API в user-land для получения списка установленных драйверов Mini-Filter в MS Windows :-).
FilterFindFirst
FilterFindNext
для более подробной информации смотрите эту ссылку:
Функции приложения в мини-фильтре