Question

J'ai toujours mis mes pilotes IMAGEPATH directement (C: \ Windows \ System32 \ les abc.sys des conducteurs).

Mais je savais beaucoup de pilotes de périphériques mis leur ImagePath à % SystemRoot% \ system32 \ svchost.exe -k netsvcs entrer dans la description d'image ici
Ceci est la ruche de Registre de pilote Lanmanworkstation.
Je suppose que le fichier image du pilote Lanmanworkstation est mrxsmb.sys
Mais ils n'ont pas mis 'System32 \ les pilotes Les mrxsmb.sys de. Pourquoi.

Qu'est-ce que svchost.exe -k netsvcs mean?
Même si il n'y a pas certain chemin, la fonction StartService fonctionne bien.
Comment fonctionne le Gestionnaire des services (? Je ne suis pas sûr) trouver le chemin de l'image du conducteur?

Y at-il un avantage en utilisant ce
Que faire si je décide d'utiliser cette façon, sont là-bas mes codes du pilote devraient modifier?

Était-ce utile?

La solution

Vous confondez entre pilotes de périphériques et services.
svchost.exe est utilisé pour partager le même processus entre plusieurs services. La mise en œuvre est interne à Windows si l'utilisation en dehors de Windows ne sont pas pris en charge.

Si vous écrivez un pilote de périphérique (pour le matériel, ou un pilote de filtre) ou ne fonctionnent pas pour Microsoft, vous ne pouvez pas utiliser svchost.

La raison de la confusion est parce que le style ancien (NT4), les pilotes non-plug-and-play peut être commencé à utiliser les API Service Control Manager.

Autres conseils

svchost est un processus d'accueil pour d'autres services, contenus dans des DLL. La partie après la « -k » indique le groupe de services. Vous pouvez trouver le chemin de DLL service HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters de la valeur ServiceDll. Je devine que la raison pour laquelle il commence toujours correctement si vous supprimez le chemin d'image est parce que le type de service est réglé sur SERVICE_WIN32_SHARE_PROCESS et le SCM ne tient pas compte probablement le chemin de l'image (pas sûr à ce sujet).

svchost.exe est un service "multi-usages". Il intègre plusieurs services en un seul fichier exécutable, qui peut être commandé séparément chacun par exemple en utilisant console de gestion des services. Les paramètres à svchost.exe indique le « sous-service » dans le fichier exe.

startService () n'est pas un message de commande au service lui-même, mais plutôt que la demande de commencer un certain exécutable (qui lui-même doit « savoir » qu'il est un service (et le service Wich) et ensuite enregistrer un contrôle de service gestionnaire), windows exécutera simplement le binaire que les points de ImagePath à.

Dans ce cas (LanManWorkstation) ce binaire est svchost.exe, le paramètre donné est -k netsvc. Cela permet de savoir svchost.exe qui des nombreux services qu'il offre devrait démarrer.

Comme d'habitude, le binaire n'a pas besoin de contenir toute la fonction en elle-même, mais peut aussi charger des bibliothèques supplémentaires. mrxsmb.sys pourrait bien être une telle bibliothèque, bien que je ne suis pas sûr de ce point.

Donc, cette réponse est plus d'un « comment ça marche en général » que « oui, NETSVC et mrxsmb.sys sont LanManWorkstation ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top