У меня есть куча услуг вида:

R3 NDProxy;NDIS Proxy; [x]
R3 Ntfs;Ntfs; [x]
R1 Null;Null; [x]

Где обычно значением после точки с запятой будет группа svchost (если есть) и загруженный двоичный файл для рассматриваемого файла, такой как

R2 nsi;Network Store Interface Service;LocalService->C:\Windows\System32\Nsisvc.dll [25600 2009-07-13 23:21:21 Microsoft Corporation]

Я исключил ошибку в своем коде, сравнив ее с внутренними действиями Windows (то есть с sc.exe queryex или аналогичными инструментами и просмотрев путь к изображению).

Как Windows находит код для загрузки?

1 ответ1

1

Приведенные вами примеры - это не сервисы, а драйверы. Хотя ими управляет один и тот же диспетчер управления службами, драйверы загружаются из образов *.sys с помощью ScLoadDeviceDriver() и запускаются в пространстве ядра.

Если ImagePath не указан, по умолчанию используется путь %SystemRoot%\System32\Drivers\<name>.sys, например C:\WINDOWS\System32\Drivers\null.sys .

Это задокументировано в Microsoft KB103000 "CurrentControlSet\Services Subkey Entries", в разделе ImagePath и Тип.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .