Hands On Technology Transfer Inc - 0870 063 2964

Windows System Programming Course

Discounts
Travel Packages
Guarantees
Testimonials
Why HOTT
Free Reports

Microsoft Certified Partner

Print FriendlyE-mail a Friend

Microsoft Windows System Programming

Duration: 5 days| Price: £1,545 + VAT | Class Dates:

Students Will Learn:
  • Handling Virtual Memory
  • Controlling Processes
  • Unicode & Internationalization
  • Using Threads
  • Upgrading Legacy Applications to Windows 2008/Vista
  • Synchronizing Resources
  • Controlling the Registry
  • Creating Services
  • Non-Uniform Memory Access
  • Virtualization Support

Description: This hands on Windows system programming class covers programming for the Windows system environment using current Microsoft tools and technologies, with emphasis on the Win32 API. Visual Studio is used throughout the course as the development environment. Focusing on sophisticated design issues within the context of the Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008 operating systems, the course emphasizes inter-process communication and synchronization techniques as well as explaining advanced memory management, file handling and asynchronous I/O, multi-threaded processes, and techniques applicable to high-performance and large-scale software systems. The attendee will create various types of Windows system programs, such as services and dynamic-link libraries. Code optimization and portability issues, particularly to 64-bit platforms, are stressed throughout.

Prerequisites: C Programming experience. Previous experience building applications in a Microsoft Windows environment is helpful but not required.

Microsoft Windows System Programming Course Overview:

Windows Programming Overview
  • Windows System Architecture
  • Kernel Components and their Relationship to System Programming
  • Object and Handles
  • Memory Management
  • Windows Processes
  • Windows Programming Resources
  • Visual Studio
  • Win32 SDK/DDK
  • MFC
  • 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
  • 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
  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
  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 compared to 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
Vista/Server 2008
  • Asymmetric Multiprocessors and NUMA (Non-Uniform Memory Access) Issues
  • Integrity Levels and the Implications on System Programming
  • I/O Cancellation Enhancements
  • Registry Enhancements Including Virtualization to Support Older Applications
  • Likely Failure Points of Legacy System Programming Code with Vista Enhanced Security
   

Student Testimonials

"I usually take at least two training courses per year. I have taken many courses so far with many different training facilities. This training is by far the best that I have ever taken. The instructor presentation was outstanding and his knowledge of the material was outstanding."
– M.B., American International Group


"Very good course and excellent instructor. I have learned more in this week than I would probably have learned in a year on my own. I would recommend HOTT to all my colleagues for training."
– S.H., Texas Department of Transportation



Hands On Technology Transfer, Inc.
The Old Post House
91 Heath Road
Weybridge Surrey
KT13 8TS
Phone: 0870 063 2964

Copyright© Hands On Technology Transfer, Inc.