Onde o Windows carrega o código dos serviços sem imagepath?

0

Eu tenho vários serviços do formulário:

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

Onde normalmente o valor após o ponto-e-vírgula seria o grupo svchost (se houver) e o binário carregado para o arquivo em questão, como

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

Eu descartei um bug no meu código verificando o que o Windows faz internamente (isto é, com sc.exe queryex ou ferramentas similares e olhando para o caminho da imagem).

Como o Windows encontra o código para carregar para eles?

    
por Billy ONeal 28.03.2012 / 16:42

1 resposta

1

Os exemplos que você listou não são serviços, mas drivers . Enquanto eles são gerenciados pelo mesmo Service Control Manager, os drivers são carregados de *.sys images usando ScLoadDeviceDriver() e executados no espaço do kernel.

Se nenhum ImagePath for fornecido, o caminho será padronizado para %SystemRoot%\System32\Drivers\<name>.sys , como C:\WINDOWS\System32\Drivers\null.sys .

Isso está documentado em KB103000 "Entradas da Subchave CurrentControlSet \ Services" , em ImagePath e Digite .

    
por 28.03.2012 / 17:55