Home

Courseware

Course
Listing

Instruction

Philosophy

Clients

Publications

Résumé

Microsoft System & Network Programming

Summary:
This class focuses on features of Win32 typically not covered in User Interface classes. This class addresses two principle audiences: console mode C++/MFC programmers and console mode C API programmers. Discussions of programming the graphical user interface (GUI) will be minimized.

Course Outline:

Introduction to Win32

Overview of Win32
Introduction to Win32
- Kernel, handles, threads &
processes
- IPC: Pipes, Mailslots
- Message pumps
- Console v. Native mode programs
- Coding conventions
- Miscellaneous functions
Synchronization
Threads v. Processes
MFC v. Win32 API
Synchronization
Events
Mutexes
Semaphore
Critical Sections
CPU Vendor Inspired Functions for Synchronization
Jobs, Processes, & Threads
Terms
Jobs
Processes
- Inheritance
- Process creation & termination
Threads
- Kinds of threads
Worker threads
User Interface(UI) threads
- Perils, merits and alternatives
- Thread priorities
- Thread communication
Fibers
Low Level I/O
Functions for file systems, volumes,
drives, directories & files
I/O functions
- Open/Create/Close
- Synchronous Read & Write
- Locking File Regions
- Asynchronous I/O
Console, keyboard & mouse I/O
Functions for file attributes
Functions for file times
Directory change notifications
Walking directory trees
Pipes & Mailslots
Named Pipes v. Mailslots
Pipes
- Anonymous v. Named Pipes
- Pipe functions
- Simple connections: single client &
single server
- Multi-client servers strategies
- Special functions for servers
Mailslots
- Creating Mailslots
- Mailslot functions
Winsock Programming
Basic Concepts
Winsock History & Features
3 Strategies
- BSD Compatibility
- Win32 GUI(Message Pump)
Compatibility
- Winsock V2 Event Model
Remote Procedure Calls
Terms
Goals
Perils and Merits
MIDL
Binding
Handles
Three strategies
- Automatic handles that use name
service
- Implicit handles that do not use
name service
- Explicit handles that use name
service
NT Services
Terms
Perils & Merits
Reporting Events
Service Context
- NO UI
- Security context: SYSTEM account
How to Create a Service
Virtual Memory
Basic virtual memory
- Virtual memory functions
- VirtualAlloc & VirtualFree functions
Mapping shared memory
- Mapping memory to files
- Mapping memory to page file
- Common mapping to file: sharing
memory among multiple processes
- 4 steps for mapping file to RAM
- Perils and merits of shared memory
Appendix: Dynamic Link Libraries Definition, Merits & Limitations
Explicit v. Implicit
Importing v. Exporting
Pure v. Regular v. Extension
Sharing classes, variables, functions
Sharing Memory




Please contact Sieg to arrange for rapid, custom courseware development, or to inquire about his availability to deliver training to your organization: Phone 303-494-5509, Email siegfried@heintze.com.


Siegfried Heintze
(303) 494-5509
www.heintze.com
siegfried@heintze.com



Home ||| Courseware ||| Course Listing ||| Instruction
Philosophy ||| Clients ||| Publications ||| Résumé