Training Course: Microsoft Windows System Programming
training course enquiry
Training Course Summary:
This hands on Windows system programming class covers programming for the Windows system environment using current Microsoft tools and technologies, with emphasis on Win32 SDK. Developer Studio is used throughout the Course as the development environment. Focusing on sophisticated design issues within the context of the Windows NT and Windows 2000 operating systems, the course emphasizes inter-process communication and synchronization techniques as well as explaining advanced memory management, file handling and serialization, multi-threaded processes, and various network communication techniques such as TCP/IP and UDP sockets. The attendee will create various types of Windows system programs, such as services and dynamic-link libraries. Code optimization and portability issues are stressed throughout.Pre-Requisites:
C Programming experience. Previous experience building applications in a Microsoft Windows environment is helpful but not required.Training Course Overview/Content:
Windows Programming OverviewWindows System Architecture
Kernel Components and their Relationship to System Programming
Object and Handles
Memory Management
Windows Processes
Windows Programming Resources
Developer Studio
Win32 SDK/DDK
MFC
COM/ActiveX
API Interface Issues
64-bit API Interface Issues and planning for 64-bit transition
Writing 32/64-bit compatible programs
Visual Studio/Console Apps/GUI Apps
Executable Files and DLLs
Handling Virtual Memory
Memory allocation
Paging and Working Sets
Heap Control
Creating and Destroying Heaps
Heap Allocation and Deallocation /li>
Thread-safe and Thread-Unsafe Heaps and their Uses
Committing Memory vs. Reserving Memory
Raw Allocation
Optimizing Issues in allocation
Repairing Access Violations
Reserving Memory without Committing Memory
Memory Mapped Files
Processor Shared Memory
Based Pointers
64-bit address space issues
32-bit apps running on 64-bit Windows
Handling Processes and Pipes
Kernel Objects and Handles
Command Lines, Environment Variables
Spawning Processes
Passing Inherited Handles to Processes
Terminating Processes
Creating and communicating with pipes
Named Pipes
Anonymous pipes
Exception Handling
Structured Exception Handling (SEH)
Exception Handling Keywords
Exception Filters
Serializing Windows Data
File Systems
Directories and Files
Pipes
File and Directory Manipulation
Asynchronous File I/O
File Attributes
Unicode and Character Internationalization
Purpose of Unicode
Data Types
Function Prototypes
Basic Conversion Steps
Messages
Creating and Using Threads
Effective Use of Threads
Worker Threads vs. User Interface (UI) Threads
The Thread Stack
Thread Communication
Thread Synchronization
Thread Local Variables
Asynchronous I/O with Threads
Fibers
Network Programming Concepts
OSI and TCP/IP models
Connectionless vs. Connection Orientated Transfer Protocols
Peer to Peer Communications
Protocol Support
TCP/IP/Windows Sockets
Network Addresses
Handling Synchronized Resources
Locks
Events, Semaphores, Mutexes, and Critical Sections
Synchronizing Data vs. Synchronizing Methods
Using Named Pipes and Mail Slots
Overlapped vs. Synchronous
Named Pipes: Server, Client, Data Exchange
Multithreading Named Pipes
Mailslots
Using Sockets to Exchange Data
BerkleyInterfaces
MFC Support for Winsock
Peer to Peer Communications
Listening, Connecting, Accepting, Receiving, Sending, Disconnecting
Broadcasting Datagrams
Synchronous Vs. Asynchronous Sockets
Dynamic Link Libraries
DLL Architectural Overview
Memory Model
Thread Local Storage
DLL Entry and Exit Point
Building a DLL
Using a DLL
Issues with 64-bit DLLs
System Wide Event Hooks
Using The Registry
Concepts
The Registry API
Registry Environment Variables and .INI Files
Win64 Registry Issues
Environment Variables and .INI Files
Creating Windows NT Services
Overview of Service Concepts
Service Manager Integration
Service Startup
Handling Service Messages
Interacting with the Service
Windows
Concepts
Simple dialog-based applications
Introduction to simple Windows controls
Control management
The Event Log
Concepts
Event Log API
Event Viewer
MESSAGETABLE Resources
The mc Compiler
Automating the Compilation

