Complete Download Windows Internals Part 2 Developer Reference 7th Edition Russinovich PDF All Chapters
Complete Download Windows Internals Part 2 Developer Reference 7th Edition Russinovich PDF All Chapters
com
https://textbookfull.com/product/windows-
internals-part-2-developer-reference-7th-edition-
russinovich/
https://textbookfull.com/product/windows-internals-part-1-7th-edition-
pavel-yosifovich/
textbookfull.com
https://textbookfull.com/product/windows-security-
internals-1-converted-edition-james-forshaw/
textbookfull.com
https://textbookfull.com/product/you-brought-me-the-ocean-alex-
sanchez/
textbookfull.com
https://textbookfull.com/product/nanosensor-technologies-for-
environmental-monitoring-inamuddin/
textbookfull.com
https://textbookfull.com/product/trump-and-political-philosophy-
leadership-statesmanship-and-tyranny-angel-jaramillo-torres/
textbookfull.com
https://textbookfull.com/product/finding-consciousness-the-
neuroscience-ethics-and-law-of-severe-brain-damage-first-edition-
sinnott-armstrong/
textbookfull.com
Andrea Allievi
Alex Ionescu
Mark E. Russinovich
David A. Solomon
© WINDOWS INTERNALS, SEVENTH EDITION, PART 2
Published with the authorization of Microsoft Corporation by:
Pearson Education, Inc.
No patent liability is assumed with respect to the use of the information con-
tained herein. Although every precaution has been taken in the preparation
of this book, the publisher and author assume no responsibility for errors or
omissions. Nor is any liability assumed for damages resulting from the use of
the information contained herein.
ISBN-13: 978-0-13-546240-9
ISBN-10: 0-13-546240-1
on an “as is” basis. The author, the publisher, and Microsoft Corporation shall Indexer: Valerie Haynes Perry
have neither liability nor responsibility to any person or entity with respect to
Proofreader: Dan Foster
any loss or damages arising from the information contained in this book or
from the use of the programs accompanying it. Technical Editor: Christophe Nasarre
Trap dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Interrupt dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Line-based versus message signaled–based interrupts . . . . . . . . . . . 50
Timer processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
System worker threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Exception dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
System service handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
vii
Memory models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
ARM32 simulation on ARM64 platforms . . . . . . . . . . . . . . . . . . . . . . . . 115
X86 simulation on ARM64 platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
High-IRQL synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Low-IRQL synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224
WNF features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
WNF users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226
WNF state names and storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
WNF event aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
viii Contents
The Host Activity Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
The State Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
The Dependency Mini Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
Background tasks and the Broker Infrastructure . . . . . . . . . . . . . . . . .256
Packaged applications setup and startup . . . . . . . . . . . . . . . . . . . . . . .258
Package activation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
Package registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
Contents ix
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
VSM system calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .349
Secure threads and scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356
The Hypervisor Enforced Code Integrity . . . . . . . . . . . . . . . . . . . . . . . .358
UEFI runtime virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
VSM startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
The Secure Kernel memory manager . . . . . . . . . . . . . . . . . . . . . . . . . . .363
Hot patching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .390
x Contents
Service control programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .450
Autostart services startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Delayed autostart services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457
Triggered-start services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .458
Startup errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .459
Accepting the boot and last known good . . . . . . . . . . . . . . . . . . . . . . .460
Service failures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462
Service shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Shared service processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
Service tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
User services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .469
Packaged services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473
Protected services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Contents xi
Dynamic tracing (DTrace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
Internal architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .528
DTrace type library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .534
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .554
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564
xii Contents
File system interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .582
Copying to and from the cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .584
Caching with the mapping and pinning interfaces . . . . . . . . . . . . . . .584
Caching with the direct memory access interfaces . . . . . . . . . . . . . . .584
Contents xiii
Filtering named pipes and mailslots . . . . . . . . . . . . . . . . . . . . . . . . . . . .625
Controlling reparse point behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . .626
Process Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .627
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .652
xiv Contents
Compressing sparse data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Compressing nonsparse data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .673
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .675
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .675
Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .679
Object IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Quota tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Consolidated security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .682
Reparse points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .684
Storage reserves and NTFS reservations. . . . . . . . . . . . . . . . . . . . . . . . .685
Transaction support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .688
Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .689
Transactional APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .690
On-disk implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Logging implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .693
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
The decryption process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Online encryption support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Contents xv
Direct Access (DAX) disks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .720
DAX driver model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
DAX volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .722
Cached and noncached I/O in DAX volumes . . . . . . . . . . . . . . . . . . . .723
Mapping of executable images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .724
Block volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .728
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .730
Flushing DAX mode I/Os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Large and huge pages support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .732
Virtual PM disks and storages spaces support . . . . . . . . . . . . . . . . . . .736
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .776
xvi Contents
Chapter 12 Startup and shutdown 777
Boot process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .777
The UEFI boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .777
The BIOS boot process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
Secure Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
The Windows Boot Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .785
The Boot menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .799
Launching a boot application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .800
Measured Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
Trusted execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .805
The Windows OS Loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .808
Booting from iSCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
The hypervisor loader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
VSM startup policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
The Secure Launch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
Initializing the kernel and executive subsystems . . . . . . . . . . . . . . . . . 818
Kernel initialization phase 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .824
Smss, Csrss, and Wininit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .830
ReadyBoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .835
Images that start automatically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .837
Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .837
Hibernation and Fast Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
Windows Recovery Environment (WinRE) . . . . . . . . . . . . . . . . . . . . . . .845
Safe mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .847
Driver loading in safe mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
Safe-mode-aware user programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .849
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .850
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .850
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .861
Contents xvii
About the Authors
published in 2012), multiple PatchGuard bypasses, and many other research papers and
articles. He is the author of multiple system tools and software used for removing mal-
ware and advanced persistent threads. In his career, he has worked in various computer
security companies—Italian TgSoft, Saferbytes (now MalwareBytes), and Talos group of
Cisco Systems Inc. He originally joined Microsoft in 2016 as a security research engineer
in the Microsoft Threat Intelligence Center (MSTIC) group. Since January 2018, Andrea
has been a senior core OS engineer in the Kernel Security Core team of Microsoft,
where he mainly maintains and develops new features (like Retpoline or the Speculation
Mitigations) for the NT and Secure Kernel.
Previously, Alex was the lead kernel developer for ReactOS, an open-source Windows
clone written from scratch, for which he wrote most of the Windows NT-based subsys-
tems. During his studies in computer science, Alex worked at Apple on the iOS kernel,
boot loader, and drivers on the original core platform team behind the iPhone, iPad, and
AppleTV. Alex is also the founder of Winsider Seminars & Solutions, Inc., a company that
specializes in low-level system software, reverse engineering, and security training for
various institutions.
Alex continues to be active in the community and has spoken at more than two dozen
events around the world. He offers Windows Internals training, support, and resources
to organizations and individuals worldwide. Follow Alex on Twitter at @aionescu and his
blogs at www.alex-ionescu.com and www.windows-internals.com/blog.
H aving used and explored the internals of the wildly successful Windows 3.1 operat-
ing system, I immediately recognized the world-changing nature of Windows NT 3.1
when Microsoft released it in 1993. David Cutler, the architect and engineering leader for
Windows NT, had created a version of Windows that was secure, reliable, and scalable,
but with the same user interface and ability to run the same software as its older yet
more immature sibling. Helen Custer’s book Inside Windows NT was a fantastic guide to
its design and architecture, but I believed that there was a need for and interest in a book
that went deeper into its working details. VAX/VMS Internals and Data Structures, the
you could get with text, and I decided that I was going to write the Windows NT version
of that book.
-
ware company. To learn about Windows NT, I read documentation, reverse-engineered
its code, and wrote systems monitoring tools like Regmon and Filemon that helped me
understand the design by coding them and using them to observe the under-the-hood
views they gave me of Windows NT’s operation. As I learned, I shared my newfound
knowledge in a monthly “NT Internals” column in Windows NT Magazine, the magazine
for Windows NT administrators. Those columns would serve as the basis for the chapter-
length versions that I’d publish in Windows Internals, the book I’d contracted to write
with IDG Press.
My book deadlines came and went because my book writing was further slowed by
my full-time job and time I spent writing Sysinternals (then NTInternals) freeware and
commercial software for Winternals Software, my startup. Then, in 1996, I had a shock
when Dave Solomon published Inside Windows NT, 2nd Edition. I found the book both
impressive and depressing. A complete rewrite of the Helen’s book, it went deeper and
broader into the internals of Windows NT like I was planning on doing, and it incorpo-
rated novel labs that used built-in tools and diagnostic utilities from the Windows NT
Resource Kit and Device Driver Development Kit (DDK) to demonstrate key concepts and
behaviors. He’d raised the bar so high that I knew that writing a book that matched the
quality and depth he’d achieved was even more monumental than what I had planned.
As the saying goes, if you can’t beat them, join them. I knew Dave from the Windows
conference speaking circuit, so within a couple of weeks of the book’s publication I
sent him an email proposing that I join him to coauthor the next edition, which would
document what was then called Windows NT 5 and would eventually be renamed as
Windows 2000. My contribution would be new chapters based on my NT Internals
column about topics Dave hadn’t included, and I’d also write about new labs that used
my Sysinternals tools. To sweeten the deal, I suggested including the entire collection of
Sysinternals tools on a CD that would accompany the book—a common way to distribute
software with books and magazines.
Dave was game. First, though, he had to get approval from Microsoft. I had caused
Microsoft some public relations complications with my public revelations that Windows NT
Workstation and Windows NT Server were the same exact code with different behaviors
based on a Registry setting. And while Dave had full Windows NT source access, I didn’t,
and I wanted to keep it that way so as not to create intellectual property issues with the
software I was writing for Sysinternals or Winternals, which relied on undocumented APIs.
The timing was fortuitous because by the time Dave asked Microsoft, I’d been repairing my
relationship with key Windows engineers, and Microsoft tacitly approved.
Writing Inside Windows 2000 with Dave was incredibly fun. Improbably and
completely coincidentally, he lived about 20 minutes from me (I lived in Danbury,
Connecticut and he lived in Sherman, Connecticut). We’d visit each other’s houses for
marathon writing sessions where we’d explore the internals of Windows together, laugh
at geeky jokes and puns, and pose technical questions that would pit him and me in
-
bugger, and Sysinternals tools. (Don’t rub it in if you talk to him, but I always won.)
one of the most commercially successful operating systems of all time. We brought in
Vista. Alex is among the best reverse engineers and operating systems experts in the
world, and he added both breadth and depth to the book, matching or exceeding our
high standards for legibility and detail. The increasing scope of the book, combined with
Windows itself growing with new capabilities and subsystems, resulted in the 6th Edition
exceeding the single-spine publishing limit we’d run up against with the 5th Edition, so
we split it into two volumes.
I had already moved to Azure when writing for the sixth edition got underway, and by
the time we were ready for the seventh edition, I no longer had time to contribute to the
book. Dave Solomon had retired, and the task of updating the book became even more
challenging when Windows went from shipping every few years with a major release and
version number to just being called Windows 10 and releasing constantly with feature
and functionality upgrades. Pavel Yosifovitch stepped in to help Alex with Part 1, but he
too became busy with other projects and couldn’t contribute to Part 2. Alex was also
busy with his startup CrowdStrike, so we were unsure if there would even be a Part 2.
Foreword xxi
Fortunately, Andrea came to the rescue. He and Alex have updated a broad swath of
the system in Part 2, including the startup and shutdown process, Registry subsystem,
and UWP. Not just content to provide a refresh, they’ve also added three new chapters
the Windows Internals book series being the most technically deep and accurate word on
the inner workings on Windows, one of the most important software releases in history,
is secure, and I’m proud to have my name still listed on the byline.
A memorable moment in my career came when we asked David Cutler to write the
foreword for Inside Windows 2000. Dave Solomon and I had visited Microsoft a few times
to meet with the Windows engineers and had met David on a few of the trips. However,
we had no idea if he’d agree, so were thrilled when he did. It’s a bit surreal to now be
on the other side, in a similar position to his when we asked David, and I’m honored to
be given the opportunity. I hope the endorsement my foreword represents gives you
Mark Russinovich
Microsoft
March 2021
Bellevue, Washington
xxii Foreword
Introduction
With this knowledge, developers can better comprehend the rationale behind design
decisions to create more powerful, scalable, and secure software. They will also improve
their skills at debugging complex problems rooted deep in the heart of the system, all
-
ing system can misbehave and be misused, causing undesirable behavior, while also un-
derstanding the mitigations and security features offered by modern Windows systems
against such scenarios. Forensic experts can learn which data structures and mechanisms
Whoever the reader might be, after reading this book, they will have a better under-
standing of how Windows works and why it behaves the way it does.
xxiii
Inside Windows 2000, Third Edition (Microsoft Press, 2000) was authored by David
Solomon and Mark Russinovich. It added many new topics, such as startup and shutdown,
kernel changes in Windows 2000, such as the Windows Driver Model (WDM), Plug and
Play, power management, Windows Management Instrumentation (WMI), encryption, the
job object, and Terminal Services. Windows Internals, Fourth Edition (Microsoft Press, 2004)
was the Windows XP and Windows Server 2003 update and added more content focused
on helping IT professionals make use of their knowledge of Windows internals, such as us-
ing key tools from Windows SysInternals and analyzing crash dumps.
Windows Internals, Fifth Edition (Microsoft Press, 2009) was the update for Windows
Vista and Windows Server 2008. It saw Mark Russinovich move on to a full-time job
at Microsoft (where he is now the Azure CTO) and the addition of a new co-author,
Alex Ionescu. New content included the image loader, user-mode debugging facil-
ity, Advanced Local Procedure Call (ALPC), and Hyper-V. The next release, Windows
Internals, Sixth Edition (Microsoft Press, 2012), was fully updated to address the many
kernel changes in Windows 7 and Windows Server 2008 R2, with many new hands-on
of allowing the authors to publish parts of the book more quickly than others (March
2012 for Part 1, and September 2012 for Part 2). At the time, however, this split was purely
based on page counts, with the same overall chapters returning in the same order as
prior editions.
brought together the Windows 8 and Windows Phone 8 kernels, and eventually incorpo-
rated the modern application environment in Windows 8.1, Windows RT, and Windows
Phone 8.1. The convergence story was complete with Windows 10, which runs on desk-
tops, laptops, cell phones, servers, Xbox One, HoloLens, and various Internet of Things
With the seventh edition (Microsoft Press, 2017), the authors did just that, joined for
insider” and overall book manager. Working alongside Alex Ionescu, who like Mark,
had moved on to his own full-time job at CrowdStrike (where is now the VP of endpoint
xxiv Introduction
Random documents with unrelated
content Scribd suggests to you:
The Project Gutenberg eBook of Huilunsoittaja
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.
Title: Huilunsoittaja
Runoja
Language: Finnish
Runoja
Kirj.
EINARI VUORELA
Prologi.
HUILUNSOITTAJA
Kulkurin kosinta.
Armahan kulku.
Kotiintulo.
Heräävä rakkaus.
Oven takana.
Lemmen-nosto.
Pienellä huilulla huutelen.
Nuoruus.
Ero.
Kotini näky.
Metsän kaiku.
Pelko.
Ikävä.
Odotus.
Humalan loihtu.
Päivänlasku.
KEVÄÄSTÄ KESÄÄN
Huhtikuu.
Huhtikuun tunnelma.
Takatalvi.
Kevät-yö.
Kultaiset hetket.
Toukokuu.
Kevään tulo.
Kesä-yö.
Elon aikana.
Kesä-aamu.
LAULUJA ARMAALLE
Lumikukka.
Soidin.
Kaksi ihmistä.
Tulin luokses taas.
Aatokseni.
Hyljätty.
Kyläkutsu.
SOTATORVI
Vapaustaisteluun.
Vapaaehtoisten marssi.
Rakuunan iltalaulu.
Huhtikuun myrsky.
SALOMAALLA
Metsässä.
Aamutunnelma.
Salomaalla.
Raiskattu talo.
Paimeneen.
Metsänkävijä.
Takamailta tulija.
Prologi.
Kulkuri olen minä aina ollut, kulkuri olen minä nytkin! Näithän:
varsani valkoharjan juuri mä seinään kytkin!
Nuoruus!
Yksi ainoa suvinen päivä:
niinkuin virta se kuljetti,
niinkuin viini se hurmasi,
niinkuin salainen tuli se kulutti!
Aamu hartauttaan metsässä piti,
puu punersi,
linnut oksilla keinuivat
keveinä kuin sävel,
joka havukon helmassa helisi.
Mitäpä surra!
Rinta täyteen havuntuoksua!
Jalka keveäksi, suu nauruun!
Mikä tuntuu raskaalta, se keveäksi kuvitellaan.
Mikä tuntuu ikävältä, annetaan sitä
ilon hyppysen hypistää.
ERO.
Kansanlaulun tapaan.