- Architecture de Windows 2003/XP/Vista : concepts essentiels, intégration de la sécurité, architecture client/serveur et conception orientée objet du système.
- Objets du noyau gestion des handle, notion de pseudo handle, manipulation des objets.
- Environnement de développement 32 bits : outils, SDK et MFC.
- Premier exemple de programme utilisant les appels système sous Windows.
- API de base : Gestion des entrées/sorties. Gestion du système de fichier. Gestion de l'asynchronisme dans les appels d'entrée/sortie. Gestion des erreurs dans les appels du système.
- Les outils du développement : éditeur, divers types de programmes, outils de mise au point sous Visual Studio.NET.
- Les diverses librairies de programmation : mise en oeuvre et différences.
- Approche dans la portabilité des applications entre les systèmes d'exploitation.
- Outils complémentaires au développement.
Travaux pratiques
Utilisation des outils standard de l'environnement de développement Visual .NET.
- Notion de thread et processus.
- Mise en oeuvre des threads : lancement, vie et mort.
- Gestion des priorités, synchronisation entre threads, mécanismes de communications entre threads.
Travaux pratiques
Création de programme mettant en oeuvre les threads. Communication entre threads.
- Utilisation des processus : lancement et arrêt.
- Manipulation des processus : changement des priorités, récupération d'informations.
- Relations interprocessus et nécessité des mécanismes de communication.
- Gestion des jobs sous Windows 2003/XP/Vista : principe du regroupement de processus en jobs, API de manipulation des jobs. Exemple d'utilisation.
Travaux pratiques
Mise en oeuvre d'un programme multiprocessus dans l'environnement Visual C++. Mise en oeuvre de la notion de job sous Windows 2003/XP/Vista.
- Principe de la gestion de la mémoire sous Windows et modèle de mémoire : gestionnaire de mémoire virtuelle, espace d'adresse.
- Fonctions de gestion la mémoire : notion de 'Heap'.
- Partage de mémoire entre thread et entre processus.
- Fichier 'mappé' en mémoire : principes et mise en oeuvre.
Travaux pratiques
Mise en oeuvre des mécanismes de gestion de mémoire et de communication interprocessus.
- Gestion des canaux de communications (pipe) : canaux de communication non nommés et nommés.
- Relation avec le réseau.
- Utilisation des canaux de communication nommés : création, connexion et modifications.
- Les boîtes aux lettres 'mailslot' : différence entre les pipe et mailslot.
Travaux pratiques
Mise en oeuvre des canaux de communication nommés pour la communication interprocessus
- Gestion des exceptions structurées.
- Mise en oeuvre de la gestion des exceptions : intégration de la gestion des exceptions en C et C++.
- Utilisation de la gestion des exceptions : terminaison anormale d'un programme, outils de mise au point.
- Concept de DLL (Dynamic Load Library). Avantages pour l'organisation des développements.
- Création de DLL avec l'environnement de développement. Utilisation de DLL pour la communication inter-application. Mise en commun de code. Eléments importants pour les DLL : fonctions d'initialisation et de terminaison (DllMain), contraintes d'utilisation.
- Interaction entre les DLL et les divers éléments du système.
Travaux pratiques
Utilisation de l'environnement de développement pour la création de DLL.
- Principe de la codification UNICODE : internationalisation et portabilité des applications.
- API d'accès aux informations de localisation.
- Manipulation de données UNICODE et conseils d'écriture.
Travaux pratiques
Ecriture de programmes utilisant les données stockées sous forme UNICODE.
- Notion de service. Principe de l'intégration de 'démons' dans le système. Intérêts du concept de service dans le développement système.
- Création et mise en place de services dans l'environnement Windows 2003/XP/Vista. Interaction avec le Service Control Manager (SCM).
- Interaction entre la notion de services et les contraintes de sécurité. Respect de la protection du système. Intégration de la sécurité dans la conception de services sous Windows.
Travaux pratiques
Création de service avec l'environnement Visual C++ de Microsoft.
- Les principes de la sécurité sous Windows : jeton de sécurité, objets, sujet et usurpation de sujet.
- Les fonctions de gestion de la sécurité : descripteur de sécurité, liste de contrôle d'accès.
- Interaction entre le système d'authentification en domaine et la mise en oeuvre de la sécurité dans les programmes Windows.
Travaux pratiques
Illustration de la mise en oeuvre de la sécurité dans un programme.