Windows System Programming Course 1 Trainsec

Windows System Programming 1

Learn to program Windows the way the operating system really works. Pavel Yosifovich, author of Windows 10 System Programming and co-author of Windows Internals, teaches the Windows API in C and C++: error handling and strings, kernel objects and handles, sharing objects between processes, sessions, and creating and enumerating processes, with labs that build real tools.

48 Lessons | Community Access
Lifetime access
$340
or $85 x 4 installments
blue depth
Windows master developer badge 1

This course is part of Windows Master Developer

$1,478 or $150 X 10 installments
Trusted by 10K+ students and companies
Sentinel one logo white
microsoft logo white
google logo white
mandiant logo white
intel logo white
cisco white logo tr
citibank logo white
alfa bank logo white
malwarebytes logo white
proofpoint logo white
epam logo white
Sentinel one logo white
microsoft logo white
google logo white
mandiant logo white
intel logo white
cisco white logo tr
citibank logo white
alfa bank logo white
malwarebytes logo white
proofpoint logo white
epam logo white

13+ hours

on-demand video

Labs

with full solution walkthroughs

45

video lessons

3

downloadable resources

13 CPE

CEU credits, self-reported

Certification

Certificate of completion

Windows System Programming: the Windows API, explained properly

Behind every Windows application, service, security tool and driver client is the Windows API. Many developers use it in fragments, copying calls from documentation without the model behind them: what a handle really is, why a call fails only on another machine, how objects are shared between processes, or what CreateProcess actually does. That model is what separates code that works by accident from tools you can trust.

In this course Pavel Yosifovich, author of Windows 10 System Programming and co-author of Windows Internals, teaches it from the ground up. After a review of processes, threads, virtual memory and the system architecture, you start writing code: the conventions of the Windows API for errors, strings and structures, 32-bit versus 64-bit, getting the real Windows version and system information. Then kernel objects and handles in depth: access masks, object names and private namespaces, sessions, window stations and desktops, and sharing objects by name, inheritance and duplication. The course ends with processes: how they are created, CreateProcess and its attributes, termination, enumeration, and RAII handle wrappers with the Windows Implementation Library.

The course is a recording of a live class: 45 video lessons, with the slides, a labs PDF and the demo and lab code. Every module ends with labs and a full solution walkthrough, building small real tools such as a kill tool, a process lister, a service host detector and a DLL lister. Every video has English captions, and you learn at your own pace with lifetime access. Threads, synchronization, I/O and memory continue in part 2, and DLLs, security and COM in part 3.

Pavel Yosifovich
Pavel Yosifovich
Developer, trainer, author and (sometimes) speaker. Co-founder of TrainSec academy.

Pavel is the author of “Windows 10 System Programming”, “Windows Kernel Programming” and “Windows Native API Programming”, the co-author of “Windows Internals, 7th Edition, Part 1” (Microsoft Press), and a Microsoft MVP, with more than 25 years as a developer, consultant, trainer, author and speaker.

He writes Windows system software every day, and teaches the API the same way: with the internals behind each call, the tools to see what is happening, and labs that turn every topic into a working program.

What you will learn in the Windows System Programming 1 course

Who is this Windows system programming course for?

  • C and C++ developers who want to write real Windows applications, services and tools against the Windows API, not only a framework.
  • Developers who already call the Windows API in places but never learned the model behind it: handles, object names, sessions and process creation.
  • Systems and tools engineers who need to enumerate processes, inspect handles, and launch and control child processes correctly.
  • Security researchers and tool developers who want the documented user-mode foundation before native API or kernel work.
  • Anyone who wants to read Microsoft’s API documentation properly: error conventions, versioned structures, SAL annotations, and A and W function pairs.

Not the right fit if you do not yet write C or C++ comfortably (take Modern C++ Programming first), or if you want kernel and driver development (take Windows Kernel Programming 1). Threads, synchronization, I/O and memory are in part 2, and DLLs, security and COM in part 3.

What do you need before you start?

  • Fluent C and basic C++, especially classes and resource management. The course does not teach the language.
  • No prior Windows API experience is needed.
  • A Windows 10 or 11 PC with Visual Studio (any edition) and the Desktop development with C++ workload. Some demos need administrator rights. On a Mac, you can use Windows on ARM in Parallels.
  • Windows internals knowledge helps but is not required: the first module reviews the foundations.

What does the Windows System Programming 1 course cover?

Windows System Programming is a three-part series that covers the documented Windows API from the ground up. Part 1 lays the foundation every Windows developer needs: the API conventions, kernel objects and handles, and processes. Windows System Programming 2 continues with jobs, threads, synchronization, I/O and memory, and Windows System Programming 3 with DLLs, security, COM fundamentals and windowing.

Every module combines slides, live coding and the Sysinternals tools, and ends with labs and a full solution walkthrough. Visual Studio is the IDE and debugger throughout; no WinDbg is needed.

Why learn Windows system programming?

Frameworks hide the operating system until something goes wrong. Knowing the Windows API directly lets you build tools, services and utilities that frameworks cannot, diagnose failures from error codes and handle tables instead of guessing, and understand what security products, malware and the operating system itself are doing. It is also the foundation for everything lower level: the Native API, COM and kernel drivers.

Build real Windows tools, not toy examples

The labs turn each topic into a working program: a tool that looks up error messages, a window enumerator with callbacks, an experiment that finds the maximum number of handles a process can open, a kill tool, a process lister with creation times and image paths, a service host detector and a DLL lister. The course is the first programming course in the Windows Master Developer learning path, and is also available with parts 2 and 3 in the Windows System Programming Bundle.

What does each chapter of the course cover?

Introduction

Meet the course and its instructor: the plan for the series, the prerequisites, how the labs work, and recommended books and documentation. The slides, the labs PDF and the code are available here. The introduction describes the full live class; this course covers its first modules, and the rest continues in parts 2 and 3.

Foundations

The Windows concepts every system programmer needs, reviewed before any code is written: processes and the process tree, virtual memory and address spaces, threads, the overall system architecture, how a call travels from kernel32 through NtDll into the kernel, and the different API families. Demonstrations use Task Manager and Process Explorer, including symbol configuration.

Application Development

Writing your first Windows API programs in C and C++ with Visual Studio. The chapter covers the error handling conventions (GetLastError, BOOL, handles, LSTATUS and HRESULT), 32-bit versus 64-bit and WOW64, Unicode strings and the A and W API pairs, safe string functions and versioned structures. You learn how to get the real Windows version through manifests, RtlGetVersion and KUSER_SHARED_DATA, and how to query system information. Labs build a user name and error message tool and an EnumWindows callback exercise.

Objects and Handles

Kernel objects and handles in depth. You learn the per-process handle table, access masks and least privilege, create versus open functions and pseudo handles, and inspect it all with Process Explorer, WinObj and Object Explorer. Then sharing objects: by name, with session-relative names, the Global prefix and private object namespaces, and by duplicating handles. The chapter also covers sessions, window stations and desktops, and USER and GDI handles, and ends with a lab that finds the maximum number of handles a process can open.

Processes

How processes are created, run and end. The chapter covers the process creation sequence and the loader, DLL dependencies and search order, the CreateProcess API with handle inheritance and attribute lists, termination, other process APIs and zombie processes. You enumerate processes with Toolhelp, the WTS API, EnumProcesses and NtQuerySystemInformation, wrap handles in RAII types with the Windows Implementation Library, and build a process lister, a service host detector and a DLL lister in the labs.

Windows system programming course: frequently asked questions

How much C and C++ do I need?

You should be fluent in C and comfortable with basic C++, especially classes and resource management. The course does not teach the language. If you need to strengthen your C++ first, take Modern C++ Programming.

Do I need to know Windows internals first?

No. The Foundations module reviews processes, threads, virtual memory and the system architecture before any code is written. For that material in real depth, Windows Internals: Day 1 is the first step of the Windows Master Developer learning path.

What do I need installed?

A Windows 10 or 11 PC with Visual Studio (any edition) and the Desktop development with C++ workload. The course also uses free Sysinternals tools such as Process Explorer and WinObj, and installs the Windows Implementation Library through NuGet. Some demos need administrator rights.

Does the course use WinDbg?

No. Visual Studio is the IDE and debugger throughout, together with the Sysinternals tools.

Which topics are in part 1, and which are in parts 2 and 3?

Part 1 covers the foundations, application development basics, kernel objects and handles, and processes. Threads, jobs, synchronization, file and device I/O and memory are in Windows System Programming 2. DLLs, security, COM fundamentals and windowing are in Windows System Programming 3.

Are there labs with solutions?

Yes. Every module ends with labs, and Pavel works through the solutions on video. The labs build small real tools such as a kill tool, a process lister, a service host detector and a DLL lister. A labs PDF and the code are included.

Is the course live or recorded?

Recorded and self-paced. It is a recording of a live class, so you will hear student questions and live coding. You get lifetime access, and every video has English captions.

Is there a cheaper way to get all three parts?

Yes. The Windows System Programming Bundle includes parts 1, 2 and 3 for less than buying them separately, and the Windows Master Developer learning path adds Windows Internals, COM and kernel programming.

What should I take after this course?

Windows System Programming 2 and 3 to complete the user-mode API. After that, Windows Native API Programming for the undocumented layer beneath it, COM Programming 1, or Windows Kernel Programming 1 to move into kernel mode.

Do I get a certificate?

Yes. When you complete every lesson you receive a certificate of completion and a Credly digital badge. The course also earns 13 CPE/CEU credits, which you self-report to your certification body using your certificate.

Can I watch some lessons before I buy?

Yes. Two lessons are free to preview: Process Tree and 32 bit vs. 64 bit. Watch them on the course page.

How long does the course take?

45 video lessons, more than 13 hours of video. Doing the labs yourself, plan on considerably more than the video time, typically a few weeks of part time study.

Do these courses cover the same material as the Windows 10 System Programming books?

The three Windows System Programming courses together cover most of what Pavel’s “Windows 10 System Programming” books (Parts 1 and 2) cover.

How much does it cost, and is there a payment plan?

$340 as a single payment, or 4 monthly payments of $85 ($340 in total).

How long do I have access?

Lifetime access. Videos stream in the browser and cannot be downloaded; the slides, labs PDF and code can.

Can I get a refund?

Yes. Refunds are available up to 14 days after purchase, to the original payment method. Email [email protected].

Pavel Yosifovich
Pavel Yosifovich
Developer, trainer, author and (sometimes) speaker. Co-founder of TrainSec academy.

Pavel is the author of “Windows 10 System Programming”, “Windows Kernel Programming” and “Windows Native API Programming”, the co-author of “Windows Internals, 7th Edition, Part 1” (Microsoft Press), and a Microsoft MVP, with more than 25 years as a developer, consultant, trainer, author and speaker.

He writes Windows system software every day, and teaches the API the same way: with the internals behind each call, the tools to see what is happening, and labs that turn every topic into a working program.

Windows System Programming Course 1 Trainsec
Windows System Programming 1
$340 or 4 × $85

Learn to program Windows the way the operating system really works. Pavel Yosifovich, author of Windows 10 System Programming and co-author of Windows Internals, teaches the Windows API in C and C++: error handling and strings, kernel objects and handles, sharing objects between processes, sessions, and creating and enumerating processes, with labs that build real tools.