Who Should Attend:
Software engineers, system analysts, programmers, system administrators, system
developers, and computer science students who need to write system programs
for the Windows 2000/NT environment. Knowledge of Win32 system programming will
enable engineers to better exploit the features of the Windows operating system
to write better and more efficient applications.
Prerequisites:
Good programming knowledge with C/C++ is recommended.
Objectives:
This module is intended to provide participants with the skills required to
write system programs in the Windows 2000 and NT environment. The module discusses
the major Win32 features, including processes, threads, files, events, and pipes.
It covers the division of a task between processes and threads, and Win32 threading
support. It proceeds with memory management, memory-mapped files, task synchronization
and DLLs.
This module is intended for engineers who intend to acquire
in-depth knowledge of systems programming techniques. Participants intending
to write network programs should enrol concurrently in M202b: Windows NT/2000
Network Programming.
At the end of this module, participants should be familiar with writing C++
programs that use the Windows systems services which are useful for client-server
applications programs, systems programming, interprocess communication, and
a wide range of applications.
Contents :
Win32 Architecture: Windows 95/NT Environment and File Systems; Software Environment.
Using Processes and Threads: Preemptive Multitasking; Process Components: Creating/Terminating Processes, Resource Inheritance.
Multithreading: Priorities, Threads, Scheduling and Synchronization.
Exception Handling and Memory Allocation: Win32 Exception Handling; Virtual Memory API; Heap Memory Allocation.
Interprocess Communication: Threads; Shared Memory and Synchronization Techniques; Wait Functions; Mutex Objects; Semaphores; Critical Sections; Anonymous and Named Pipes; Reading and Writing Pipes; Pipe Security.
I/O Subsystem: Types of File Systems; File Manipulation; Directory Manipulation; Monitoring directories.
Dynamic Link Libraries: Static vs. Dynamic Linking; Entry Point, Exporting Symbols, Data, Shared DLL Data; Memory-Mapped File I/O.
The Windows Registry:
The Registry as a Hierarchical Database; Win32 Registry API; Using the Registry.