Home | FAQ | Contact

Private Seminars
Public Seminars
Course Descriptions
Course Map
Instructors
Resources

APP210
CMB221
DBG211
DBG214
DBG311
DRV101
DRV150
DRV201
DRV203
DRV204
DRV205
DRV211
DRV221
DRV222
DRV231
DRV232
DRV251
DRV264
DRV274
DRV280
DRV301
DRV350
INT150
INT201
INT250
SEC230
SEC240
WSC150
WSC250

WSC250: Windows Source Code Workshop for Code Center Premium Licensees

This seminar provides a comprehensive guided tour through, and analysis of, the internal design, implementation, and operation of the major components of the Windows operating system, with a corresponding tour of the Windows source code.

Level

Intermediate to advanced

Audience

Microsoft Code Center Premium licensees for Microsoft Windows source code for all Windows versions, Windows 2000 and later.

This workshop is for authorized source code licensees, as determined by Microsoft. If you have any questions about whether you are an authorized licensee, please contact the .

For information on obtaining source access, please visit the Microsoft Shared Source site.

Description

In this workshop the attendee will learn the organization, function, and interactions of the most important components of the Windows operating system, and where to find those components in the source code tree. We closely examine several key parts of the system, including user-to-kernel mode transitions, internal synchronization mechanisms, thread scheduling, memory management, the I/O subsystem, and security.  

Particular attention is paid to security and other features and enhancements that were added to Windows with Windows Vista and later.  

While discussing each area or component of the operating system, we visit the corresponding branches of the source tree, identifying the most important source files and the key or "top level" routines and data structures. Many such routines are studied in detail.

Since the Windows source tree is very large, the code examined in the seminar must of necessity represent only a tiny fraction of what is available. Our purpose is to show the overall structure of the code; to illustrate certain concepts and implementation details which we feel are both non-obvious and essential to understand; and to enable you to find and understand the code in which you are interested after the seminar. We also show how we used the search facilities of Code Center Premium to find the source code files under discussion.

We will show you how to analyze a running Windows operating system or a memory dump file and find the Windows source code corresponding to each Windows-supplied executable, DLL, device driver, or other component in the system. 

Finally, we address the use of the source code via Code Center Premium with the Windows Debugging Tools. Several memory dump analysis and "live" system debugging scenarios are presented in the form of lab problems.

Topics

  • Code Center Premium

    • General description

    • Installing and connecting (demonstration)

    • Troubleshooting connection issues

    • First look at directory tree structures

    • Search tools, strategies, and techniques

  • Windows general architecture, components, and source tree structure

    • General principles

    • 32- and 64-bit address spaces

    • Execution context: Processes, threads, and "others"

    • Windows services (background processes)

    • Finding source code for Windows processes

    • Kernel mode components

    • Tools for investigating and monitoring

    • Introduction to the Windows Debugger

  • User mode architecture and components

    • Processes and address space

    • Executable file format

    • User mode memory management

    • Threads

    • Process and thread components and data structures

    • Program execution environment

    • User to kernel mode calls

    • Environment subsystems

    • Supporting the Windows GUI

    • Process and thread creation and deletion

    • Backwards compatibility

    • Explorer and Internet Explorer

    • .NET

  • Kernel mode architecture and components

    • User to kernel mode calls, part 2 (system service dispatcher)

    • Objects and handles; object manager

    • Discretionary access controls

    • The registry

    • Kernel mode execution environment

    • Interrupt-driven contexts

    • Deferred Procedure Calls (DPCs)

    • Kernel mode synchronization mechanisms (IRQLs, spinlocks, resources)

    • Kernel memory allocation

    • Thread scheduler

    • Virtual memory manager

    • I/O subsystem, device drivers, and file cache

  • Security architecture and components

    • Security concepts

    • Windows security features

    • Windows security components and implementation (WinLogon, LSASS, Security Reference Monitor)

    • BitLocker

    • Additional security and reliability mechanisms

  • Startup and login

    • Standard startup

    • Secure startup

    • Common startup

    • Login

  • Memory dump analysis and live debugging

    • Debugging with source code access

    • Compiler optimizations

    • Relating assembly language to source

    • Debugging with incomplete or older sources

    • Understanding bugcheck codes and stack traces

    • The debugger as source analysis tool

Prerequisites

  • Experience with Windows at at least the "power user" or administrator level; and

  • Familiarity with basic operating system concepts; and

  • Reading familiarity with the C programming language; and

  • Access to Windows source code via Code Center Premium.

Windows versions

This seminar primarily addresses Windows 7, Windows Server 2008, and Windows Vista. Most of the material is applicable to earlier versions of Windows. Windows 2000, Windows XP, and/or Windows Server 2003 can be specifically addressed upon request.

Duration and formats

5 days lecture/demonstration/lab format

Customizations

Although there is certain core material that we feel is essential  for all attendees, some areas can be more or less emphasized according to the attendees' requirements, and certain material can be omitted completely. 

Labs

This seminar is presented in a mixed lecture, guided demonstration, and lab format. The seminar leader will frequently use various utilities (including the Windows Debugger) to demonstrate key points, and students will be encouraged to perform the same exercises on their systems. In some topic areas, particularly debugging, there are distinct lab periods with problems for the attendees to solve.

Unless requested otherwise the latest source code available on the Code Center Premium site will be used for the examples during the seminar.

Attendees, if they wish to participate in "live" browsing of the source code during the seminar, are required to bring their smart card readers and smart cards for Code Center Premium access. The smart cards must already be activated and must be enabled for Windows source access. Each attendee, or the source code licensing contact within their organization, must obtain authorization from their Windows source licensing representative to access Code Center Premium from the seminar location if it is different from the location specified in your source license agreement.


 

Licensing
This seminar is of course only available to Code Center Premium users. Please contact your Microsoft Source Licensing representative for information. If the seminar is held away from your primary site, approval must be granted by Microsoft for Code Center Premium access from the seminar location.
Government Agencies
If you have Code Center Premium access through the Microsoft Government Security Program (GSP), you may qualify to receive this training at no cost to you. Please contact your Microsoft GSP or Source licensincg representative. 
 
Copyright © 2010 by Azius Developer Training