Course intended for:

The training is intended for programmers developing applications in the Microsoft Windows class systems, who would like to get familiar with and use the characteristic system mechanisms for this family of operating systems.

Course objective:

The users will learn to take advantage of various system mechanisms in the Microsoft Windows environment, in particular, associated with multithreading, synchronization, inter-process communication and network services. The trainers will discuss the individual areas of application of system mechanism. For each of the topics, the mode of its use will be discussed with practical examples realized by the users in form of short programming tasks. Among other things, the participants will prepare daemon applications and client-server application software.

In particular, the participants will perform practical exercises to get familiar with the issues of design and implementation of applications using the available system mechanisms in Microsoft Windows.


The training participants are required to have the C language programming skills and basic knowledge on operation of the Windows system (logging in, console management, compiling and launching of applications).

Course parameters:

5*8 hours (5*7 net hours). The training consists of lectures and workshops.

Course curriculum

  1. Introduction to Windows system

    1. System architecture and evolution

    2. Features of an operating system: kernel, virtual memory, multitasking, multithreading, sharing of resources, synchronization, concurrence

    3. Working with the console

    4. Windows SDK and Visual Studio (cl compiler)

    5. Gcc compiler, gdb debugger

    6. Windows API (Win32 and Win64 API)

    7. Creation and use of static and dynamic libraries

    8. Basic data types

    9. Tracking of system calls, reporting of errors, management of exceptions

    10. Obtaining of system information

    11. Register handling

    12. 32 and 64 bit application handling

    13. .NET Framework

  2. Message queue

    1. Message types

    2. Message management in the application

  3. Processes and threads

    1. Development of processes and threads, child processes

    2. User space and kernel space

    3. Process states

    4. Process management, process groups

    5. Process priorities

    6. Process statistics, timers

    7. Process suspending, time management

    8. Console applications

    9. Windows services

    10. Aspects of security: process rights

  4. Synchronization

    1. The concept of race

    2. Critical sections, deadlock

    3. Mutex

    4. Semaphores

    5. events

  5. memory

    1. memory access rights

    2. memory locking

    3. shared memory

    4. memory mapping

  6. Operations on files

    1. File system management

    2. Write/read buffers

    3. Symbolic and hard links

    4. Temporary files

    5. Asynchronous input/output

    6. Aspects of security: file access rights

  7. Inter-process communication

    1. Anonymous and named streams

    2. Queues

    3. Mailslot mechanism

    4. Other mechanisms (clipboard, events)

  8. Network services

    1. Client-service architecture

    2. Winsock and Berkeley sockets

    3. TCP socket programming

    4. UDP socket programming

    5. IPv4 and IPv6 protocol management

  9. Device management

    1. Access to controllers

    2. Interaction with devices

  10. Security

    1. Use of intelligent cards (Personal Computer/ Smart Card - PC/SC)

    2. Microsoft CryptoAPI, Cryptography Next Generation (CNG)

    3. Typical programming errors

    4. Static and dynamic analysis tools

  11. System expansion

    1. Development of controllers

    2. Development of system libraries

Any questions?

* Required.

Phone +48 22 2035600
Fax +48 22 2035601