134. NT Programming for C
Programmers
Rev. 1.1
This course takes a comprehensive look at Win32, the native user
mode NT programming interface. It is an advanced course intended for
programmers implementing sophisticated applications and for doing systems
programming. The student should have previous experience with Windows
programming, either at the C/SDK level or using C++ and a class library such as
MFC. Attendees will get an understanding of the programming techniques used to
unlock the full potential of Windows NT as a powerful application platform. The
course programmatically explores the nature of NT with hands on labs and
demonstrations. The majority of this course is directly applicable to
Windows95/98 programming. References are provided both to books and magazines.
The course covers the most powerful and critical features of Windows
NT including the Registry, Processes, Threads, Synchronization, Security,
Asynchronous I/O, and many others. Developers will also be exposed to the
general principles of programming the Win32 interfaces as well as practical
tips on how NT works. The course wraps up with a perspective of Windows NT in
the industry today and tomorrow and a look at evolving Windows NT technologies.
The course includes hands-on programming examples and labs. Students
will complete several labs in class, each exercising a specific Win32
programming technique.
LEARNING OBJECTIVES
·
Gain an in-depth understanding of the Win32 programming
interface
·
Understand the importance of the various key Windows NT
features
·
Learn how to implement software that takes advantage of
the strengths of Windows NT
·
Acquire experience with tools for building and
debugging NT applications
Course Duration: 5
days
Prerequisites:
Experience with Windows programming using C or C++
1. NT
Overview
Design Goals
NT Architecture
Object Architecture
Application Models
2. Object
and Security
NT Kernel Objects
Object Namespace
Object Inheritance
Object Structure
NT Object Security
Security Descriptors
NT Security Model
Object Handles
3. Structured
Exception Handling
Exceptions Defined
Exception Handler Syntax
Exception Filters
Exception Sequencing
Structured Termination
Structured Termination Sequencing
Related Win32 Routines
4. Unicode
The Unicode Standard
ANSI C Support
CRT Support
Win32 Support
Programming in Unicode
Programming with Generic Character
Unicode Windows
Windows Messages and Unicode
5. The
NT Registry
Intent and Use of the Registry
Hives
Registry Editors
Registry API
6. Processes
NT Process Definition
Creating a Process
Process Startup
Process Termination
Inter Process Communications
Process Synchronization
Inheritance
7. Threads
NT Thread Definition
Thread Scheduling
Creating a Thread
Thread Startup
Thread Termination
Thread Communications
Thread Synchronization
C Run Time Libraries
8. Synchronization
Object Model of Synchronization
Synchronization Objects
Waiting for Objects
Event
Semaphore
Mutex
Critical Section
9. Asynchronous
I/O
NT I/O Architecture
CRT, Win16 & Win32
Overlapped I/O
Waiting for I/O Completion
I/O Callback Functions
10. Memory Management
Process Address Space Anatomy
NT Virtual Memory Manager Architecture
Memory Paging
Memory APIs
Memory Reservation
Memory Commitment
Virtual Memory API
Heap Memory API
CRT, C++ & Win16 APIs
Memory Mapped Files
11. Dynamic Link Libraries
DLL Architecture
Instance Data
DLL Entry Point
Exports and Imports
Process and Thread Termination
Thread Local Storage
DLL Shared Memory
Appendix. Introduction for Win32 for C++ Programmers
Win32 Programming Model
Win32 Programming Using SDK
Multiple Instances of Win32 Applications
Win32 Versions
Version Resources
Win32 Error Reporting
Basic Win32 Memory Management
System Requirements
Software:
·
Windows NT or Windows 2000
·
Visual C++ 6
·
Platform SDK
Hardware:
·
Pentium 500MHz or equivalent CPU
·
128 Meg of RAM
·
At least 500 megabytes of free disk space
·
CDROM drive or networked to a server with a CDROM drive