Les appels système sur Windows
Je veux juste vous demander, je sais que le standart des appels système sous Linux sont effectués par l'int de l'instruction pointant vers Vecteur d'Interruption de la Table. Je suppose que c'est similaire sur Windows. Mais, comment appelez-vous certains de plus haut niveau spécifique au système routines? Comme comment pouvez-vous dire à Windows de créer une fenêtre? Je sais que c'est géré par le code de la dll, mais ce qui est réellement arrivé à assembler-niveau de l'instruction? La routine dans la dll appels d'interruption logicielle par int instruction, ou est-il une approche différente pour gérer cela? Merci.
OriginalL'auteur B.Gen.Jack.O.Neill | 2010-05-03
Vous devez vous connecter pour publier un commentaire.
Faire un Win32 appel à créer une fenêtre n'est pas vraiment liée à une interruption. L'application client est déjà lié avec le .dll qui fournit l'appel qui expose l'adresse de l'éditeur de liens à utiliser. Puisque vous posez des questions à propos de la différence dans l'appel de mécanisme, je suis en limitant la discussion ici pour ceux Win32 appels qui sont disponibles pour toute demande plutôt au niveau du noyau des appels ou des pilotes de périphériques. Lors d'une assemblée niveau de langue, il serait le même que tout autre appel de fonction, puisque la plupart des appels Win32 sont au niveau de l'utilisateur appels qui, en interne, de faire le nécessaire noyau appels. L'éditeur de liens donne l'adresse de la fonction Win32 comme cible pour une sorte de ramification de l'instruction, de la spécificité dépend du compilateur.
[Modifier]
On dirait que vous êtes à droite sur les interruptions et les int. vecteur de la table. CodeGuru a un bon article avec le système d'exploitation de détails sur la façon noyau NT des appels. Lien:
http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8035
b-gen-jack-o-neill: autant que je sache, le noyau n'est pas responsable de la fenêtre de gestion.
Sur les nouveaux processeurs, les sysenter/sysexit instructions sont utilisées au lieu d'émettre une interruption logicielle avec l'instruction INT. Le concept est le même, c'est un moyen pour passer en mode noyau. Une fenêtre n'est pas géré dans le noyau, cependant, que vous ne trouverez pas un CreateWindow appel système, au lieu de cela, il est construit sur de nombreux autres appels système, y compris la communication avec d'autres processus, comme un gestionnaire de fenêtre
Wow, enfin je suis la fermeture de la réponse désirée. Alors, j'ai pensé que chaque action que vous souhaitez système d'exploitation pour exécuter est représenté dans l'un ou plusieurs de noyau d'appels. Donc, en fonction de ce que vous avez écrit, il y a une fenêtre du gestionnaire de processus qui s'exécute en mode noyau, qui vous communiquent avec l'aide de .la bibliothèque dll que hous des routines d'établir la communication interprocessus avec le gestionnaire de windows thru noyau d'appels? Peut-être, pouvez-vous me recommander quelques bon article à ce sujet? Je vous remercie.
OriginalL'auteur Kelly S. French