Hands On Technology Transfer Inc - 1-800-413-0939

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: $2695 | Class Dates:

Students Will Learn:
  • Handling Virtual Memory
  • Controlling Processes
  • Unicode & Internationalization
  • Using Threads
  • Synchronizing Resources
  • Controlling the Registry
  • Creating Services

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, and Windows Server 2003 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

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


Northeast/New England Southeast Midwest West/Southwest Canada United Kingdom
CT - Hartford
CT - New Haven
CT - Stamford
DC - Washington
MA - Boston
MA - Chelmsford
MA - Quincy
MA - Springfield
MA - Waltham
MA - Woburn
MA - Worcester
MD - Baltimore
MD - Columbia
NH - Manchester
NH - Nashua
NJ - Jersey City
NJ - Newark
NJ - Princeton
NY - Albany
NY - Binghamton
NY - Buffalo
NY - Ithaca
NY - Manhattan
NY - Rochester
NY - Syracuse
PA - Harrisburg
PA - Philadelphia
PA - Pittsburgh
RI - Providence
AL - Huntsville
FL - Fort Lauderdale
FL - Jacksonville
FL - Miami
FL - Orlando
FL - Pensacola
FL - Sarasota
FL - Tampa
FL - West Palm Beach
GA - Atlanta
GA - Savannah
LA - Shreveport
NC - Charlotte
NC - Raleigh-Durham
NC - Winston-Salem
SC - Charleston
VA - Alexandria
VA - Fairfax
VA - Norfolk
VA - Richmond
VA - Williamsburg
AR - Little Rock
IA - Cedar Rapids
IA - Des Moines
IL - Chicago
IL - Schaumburg
IL - Springfield
IN - Indianapolis
KY - Louisville
MI - Detroit
MI - Lansing
MN - Minneapolis
MO - Kansas City
MO - St. Charles
MO - Springfield
NE - Omaha
OH - Cincinnati
OH - Cleveland
OH - Columbus
OH - Dayton
OK - Oklahoma City
OK - Tulsa
TN - Memphis
TN - Nashville
WI - Milwaukee
AZ - Phoenix
AZ - Tucson
CA - Bakersfield
CA - Fresno
CA - Irvine
CA - Los Angeles
CA - Modesto
CA - Oakland
CA - Riverside
CA - Sacramento
CA - San Diego
CA - San Francisco
CA - San Jose
CA - Santa Clarita
CA - Santa Monica
CA - Temecula
CO - Denver
ID - Boise
NM - Albuquerque
NM - Las Cruces
NV - Las Vegas
OR - Portland
TX - Austin
TX - Corpus Christi
TX - Dallas
TX - El Paso
TX - Fort Worth
TX - Houston
TX - San Antonio
UT - Salt Lake City
WA - Seattle
WA - Spokane
AB - Calgary
AB - Edmonton
BC - Vancouver
MB - Winnipeg
QC - Montreal
QC - Quebec City
ON - Kingston
ON - Mississauga
ON - Ottawa
ON - Toronto
SK - Regina
Birmingham
Bristol
Chelmsford
Edinburgh
Glasgow
Leeds
Liverpool
London
Manchester

Hands On Technology Transfer, Inc.
1 Village Square, Suite 8
14 Fletcher Street
Chelmsford, MA 01824
1-800-413-0939 | 1-978-250-4299

Copyright© 2008 Hands On Technology Transfer, Inc.