Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как получить список установленных Mini-Filter драйверов в MS Windows с помощью Delphi

Delphi , ОС и Железо , Драйвера

Если вы хотите получить список установленных Mini-Filter драйверов в MS Windows, вы можете сделать это с помощью Delphi, используя API-интерфейсы Windows. В этом руководстве мы рассмотрим два подхода: использование реестра и использование API-интерфейсов Minifilter.

Подход 1: Использование реестра

Один из способов получить список установленных Mini-Filter драйверов - использовать реестр Windows.Mini-Filter драйверы регистрируются в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FltMgr\Enum. Вы можете использовать компонент TRegistry в Delphi для доступа к этому разделу реестра и чтения списка драйверов.

Вот пример кода на Object Pascal, который читает список Mini-Filter драйверов из реестра и отображает его в Memo-контроле:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Registry;

type
  TForm1 = class(TForm)
    btnGetDrivers: TButton;
    memoDrivers: TMemo;
    procedure btnGetDriversClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnGetDriversClick(Sender: TObject);
var
  Reg: TRegistry;
  i: Integer;
  DriverName: string;
begin
  Reg := TRegistry.Create(KEY_READ);
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\SYSTEM\CurrentControlSet\services\FltMgr\Enum', False) then
    begin
      for i := 0 to Reg.KeyCount - 1 do
      begin
        DriverName := Reg.ReadString(i);
        memoDrivers.Lines.Add(DriverName);
      end;
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;

end.

Этот код создает экземпляр TRegistry и открывает раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FltMgr\Enum. Затем он перебирает все ключи в этом разделе и добавляет их имена в Memo-контрол.

Подход 2: Использование API-интерфейсов Minifilter

Другой способ получить список установленных Mini-Filter драйверов - использовать API-интерфейсы Minifilter. Windows предоставляетAPI-интерфейсы FilterFindFirst и FilterFindNext, которые можно использовать для перечисления всех Mini-Filter драйверов в системе.

Вот пример кода на Object Pascal, который использует эти API-интерфейсы для получения списка Mini-Filter драйверов и отображения его в Memo-контроле:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btnGetDrivers: TButton;
    memoDrivers: TMemo;
    procedure btnGetDriversClick(Sender: TObject);
  private
    { Private declarations }
    function GetMiniFilterDrivers: TStringList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.GetMiniFilterDrivers: TStringList;
var
  hFind: HANDLE;
  FltmcFilterInfo: TFltmcFilterInfo;
begin
  Result := TStringList.Create;
  hFind := FilterFindFirst(nil, FltmcFilterInfo(SizeOf(FltmcFilterInfo)), PFLTMC_FILTER_INFO(hFind), PFLTMC_FILTER_INFO(FltmcFilterInfo));
  while (hFind <> INVALID_HANDLE_VALUE) do
  begin
    Result.Add(FltmcFilterInfo.Name);
    hFind := FilterFindNext(hFind, FltmcFilterInfo(SizeOf(FltmcFilterInfo)), PFLTMC_FILTER_INFO(hFind), PFLTMC_FILTER_INFO(FltmcFilterInfo));
  end;
  FilterFindClose(hFind);
end;

procedure TForm1.btnGetDriversClick(Sender: TObject);
begin
  memoDrivers.Lines.Assign(GetMiniFilterDrivers);
  GetMiniFilterDrivers.Free;
end;

end.

Этот код определяет функцию GetMiniFilterDrivers, которая использует FilterFindFirst и FilterFindNext для перечисления всех Mini-Filter драйверов в системе и возвращает их имена в виде TStringList. В обработчике нажатия кнопки btnGetDrivers

Создано по материалам из источника по ссылке.

Инструкция объясняет, как получить список установленных Mini-Filter драйверов в MS Windows с помощью Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Драйвера ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:54:20/0.0032100677490234/0