Index

Symbols

! (exclamation points), 40

.NET Framework, 67

64-bit address space layouts, 357359

64-bit extended systems, 50

A

AAM (Admin Approval Mode), 729

access

access checks, 621624

access masks, 624

access tokens, 20, 677

ACEs (access control entries). See ACEs

ACLs (access control lists). See ACLs

object access auditing, 679681

access checks, 621624

access control entries. See ACEs

access control lists. See ACLs

access masks, 624

access tokens, 20, 677

accounting (quantums), 233

accounts

privileges, 668675

Bypass Traverse Checking privilege, 675

super privileges, 675676

rights, 668670

User Account Control. See UAC

ACEs (access control entries)

conditional ACEs, 667668

GUI security editors, 664665

overview, 650653

trust SIDs, 657658

ACLs (access control lists)

assigning, 656657

determining access, 659665

GUI security editors, 664665

inheritance, 656657

overview, 650653

Owner Rights SIDs, 662

activation contexts, 163

address spaces

64-bit address space layouts, 357359

ARM address space layouts, 356357

canonical addresses, 359

creating processes, 140142

dynamic allocation, 359365

image bias, 368

PTEs, 355356

quotas, 364365

sessions, 353355

setting address limits, 363364

types of data, 348349

user address spaces. See user address spaces

viewing address usage, 361363

x64 virtual address limitations, 359

x86 address space layouts, 349352

x86 session space, 353355

x86 system address space layouts, 352353

address translation

ARM virtual address translation, 381382

overview, 371

page tables, 375376

PTEs, 375376

TLB, 377378

viewing, 378380

write bits, 376377

x64 virtual address translation, 380381

x86 virtual address translation, 371375

Address Windowing Extensions (AWE), 22, 323324

addresses, canonical, 359

Admin Approval Mode (AAM), 729

administrative rights (UAC), 729732

advanced audit policy, 683684

affinity manager, 336

affinity masks

extended affinity masks, 276277

symmetric multiprocessing, 53

threads, 275277

allocating

address spaces

dynamic allocation, 359365

quotas, 364365

memory, 310315

API Sets (image loader), 173176

APIs (application programming interfaces)

API Sets (image loader), 173176

AuthZ, 666667

COM (component object model), 5

.NET Framework, 67

overview, 4

Windows Runtime, 56

AppContainers

brokers, 709

capabilities, 699703

handles, 705708

lowboxes, defined, 134

object namespaces, 703705

overview, 684

security environment. See security environment

tokens, 690692

UWP apps, 685687

UWP processes, 687692

AppIDs, 756757

application programming interfaces. See APIs

applications. See also processes

APIs. See APIs

AppContainers. See AppContainers

AppIDs, 756757

AppLocker, 757762

classic apps, 103

desktop apps, 103

immersive apps, 103

large address spaces, 351

modern apps, 103

UWP apps, 685687

AppLocker, 757762

applying priority boosts, 249

architecture

components, 6162

kernel mode, 4749

overview, 4749, 6162

user mode, 4749

VBS, 5961

ARM address space layouts, 356357

ARM virtual address translation, 381382

ASLR. See address spaces

assertions

compilers, 753

fast fail failure codes, 754756

operating system, 753

overview, 752753

assigning

ACLs, 656657

processors (groups), 271273

assured authentication, 718719

asymmetric multiprocessing, 51

asynchronous I/O, 511

atom tables, 697698

attributes

AppContainer security, 695697

converting, 131135

trustlets, 125

auditing (security)

advanced audit policy, 683684

global audit policy, 682683

object access auditing, 679681

overview, 677679

authentication

policies (Credential Guard), 616617

users, 713718

Kerberos, 714715

MSV1_0, 713714

viewing active logon sessions, 715717

AuthZ API, 666667

Autoboost, 254

auto-elevation (UAC), 732733

AWE (Address Windowing Extensions), 22, 323324

B

balance set manager

priority boosts, 247

working sets, 421422

bandwidth, reserving, 551552

binary planting, 160

bitmaps (CFG), 744747

BNO isolation, 708

brokers (AppContainers), 709

buckets (heaps), 335

built-in trustlets, 125

bumps, 549, 551

bus drivers, 493

Bypass Traverse Checking Privilege, 675

C

caching files, 513

calculating load address, 368369

cancelling I/O

overview, 537

thread termination, 539

users, 537538

canonical addresses, 359

catalog files (Plug and Play), 574

CBAC (Claims-Based Access Control), 667

CC (Common Criteria), 607

CFG (Control Flow Guard), 741

bitmaps, 744747

image loader, 750751

kernel CFG, 751752

overview, 741742

strengthening, 747749

suppression, 741, 748

viewing, 742744

CFI (control flow integrity), 740

checked build (kernel debugging), 5758

checking large address space support, 351

Claims-Based Access Control (CBAC), 667

class drivers, 494

classic apps, 103

classification, memory combining, 461

clients, memory limits, 447449

clock cycles, 233234

clock interval, 232

clustered page faults, 387388

collided page faults, 387

COM (component object model), 5

combining memory

classification, 461

combined pages release, 464465

creating shared PTEs, 462464

overview, 459460

page combining, 462

searching, 460

viewing, 465467

command prompt windows, opening, 13

commands

! (exclamation points), 40

!address, 746

!ca, 408, 411

!cpuinfo, 233

!dbgprint, 58

!dd, 380

!devnode, 562563

!devobj, 504506, 524

!devstack, 521

!dq, 379

!drvobj, 504506, 512, 517

!file, 408

!fileobj, 509

!handle, 109, 408, 707

!heap, 338

!heap -i, 341343

!heap -s, 340

!irp, 519, 522, 541

!irpfind, 521

!job, 180182, 265, 294

!list, 167

!lookaside, 331

!memusage, 410

!numa, 270

!object, 502504

!partition, 448

!pcr, 77, 260

!peb, 109110, 166

!pfn, 443

!poolused, 328

!popcaps, 597

!popolicy, 598

!prcb, 77s

!process, 109, 180181, 197, 261, 518

!pte, 375, 379, 466

!ready, 230231

!runas, 180

!sd, 655

!session, 353

!silo, 189

!smt, 268

!sysptes, 355

!teb, 201205

!thread, 109, 197199, 201, 261, 518

!token, 637

!vad, 402

!verifier, 557

!vm, 307

!vm 4, 355

!wdfkd.wdfldr, 580

!wmiprint, 58

!wsle, 420

.process, 109110

~, 202, 209

at, 8

AuditPol, 682

bang commands, 40

cron, 8

dd, 380

docker, 190

dt, 4042, 78, 108, 182

dump, 40

g, 70, 265

k, 70, 210

lm, 112

poolmon, 327

powercfg /a, 592

powercfg /h, 591

powercfg /list, 598

q, 43

runas, 101

schtacks, 8

start, 218219

u, 71

ver, 3

winver, 3

commit charge

memory manager, 313

page faults. See page faults

commit limit

commit charge, 394396

memory manager, 313

committed pages (private pages), 310313

Common Criteria (CC), 607

communication, secure, 614615

compilers, assertions, 753

completion ports, 541546

component object model (COM), 5

components

architecture, 6162

I/O, 483488

memory manager, 302303

security, 608611

SuperFetch, 473474

compression (memory), 449456

concurrency (threads), 542

conditional ACEs, 667668

configuring

DFSS, 290292

quantum, 237238

Connected Standby, 594

consent elevation (UAC), 729

consoles, 67

container notification (I/O), 552

containers (silos)

ancillary functionality, 189190

containers, 190191

contexts, 186188

creating, 188189

isolation, 184186

monitors, 187188

objects, 183184

overview, 183

context switches, 215

context switching, 255256

contexts

activation contexts, 163

context switches, 215

context switching, 255256

Direct Switch, 255256

directed context switch, 19

image loader, 163

jobs (silos), 186188

threads, 18

Control Flow Guard. See CFG

control flow integrity (CFI), 740

controlling

power, 599600

quantums, 234235

converting attributes, 131135

copy-on-write, 321323

cores (threads), 52

CPU

rate limits, 292295

sets, 278283

starvation, 246248

Credential Guard

authentication policies, 616617

Kerberos armoring, 616617

NTOWF/TGT key, 613614

overview, 612613

passwords, 613

secure communication, 614615

UEFI, 616

credential providers (DLLs), 98

CSR_PROCESS data structure, 105, 111112

CSR_THREAD data structure, 195, 205206

D

DAC (Dynamic Access Control), 666

DACLs. See ACLs

data

address spaces, 348349

loading, 471472

Data Execution Protection (DEP), 319321

data structures

PFN, 440443

processes

!process command, 109

CSR_PROCESS, 105, 111112

DXGPROCESS, 105

EPROCESS, 105108

ETHREAD, 105

KPROCESS, 106107

W32PROCESS, 105, 113

threads

CSR_THREAD, 195, 205, 206

ETHREAD, 194201

KTHREAD, 194201

databases

dispatcher database, 228230

image loader, 164168

loaded modules database, 164168

deadline scheduling, 254

debuggers

kernel-mode debugger, 210212

user-mode debugger, 209210

debugging

DebugActiveProcess function, 39

DebugBreak function, 194

heaps, 342346

kernel-mode debugger, 210212

kernel debugging. See kernel debugging

unkillable processes, 539541

user-mode debugger, 209210

Debugging Tools for Windows (kernel debugging), 3842

kernel-mode debugging, 3940

user-mode debugging, 39

viewing type information, 4142

Deferred Procedure Calls (DPCs)

I/O, 490492

stacks, 401

demand paging, 413

DEP (Data Execution Protection), 319321

Dependency Walker

exported functions, 3435

HAL image dependencies, 8082

subsystems, 6263

design goals (Windows), 4546

desktop apps, 103

determining access (ACLs), 659665

device drivers

bus drivers, 493

class drivers, 494

device objects, 500507

dispatch routines, 504, 517518

driver objects, 500507

Driver Verifier. See Driver Verifier

file objects, 507510

filter drivers, 493

function drivers, 493

installing, 571575, 577

IRPs

dispatch routines, 517518

layered drivers, 533536

overview, 525528

user address spaces, 528531

KMDF, 578587

layered drivers

IRPs, 533536

overview, 494496

loading, 575577

opening devices, 507510

overview, 8283, 492496

port drivers, 494495

power manager, 596

routines, 498500

support, 560561, 569571

types, 492496

UMDF, 578581, 587590

Universal Windows Drivers, 85

viewing, 8588, 496498

WDF. See WDF

WDK (Windows Driver Kit), 4344

WDM, 8384, 493494

Device Guard, 617619

device objects (device drivers), 500507

devices

drivers. See device drivers

device stacks, 563569

devnodes, 563569

enumeration, 561563

opening, 507510

support, 560561

trees, 561563

DFSS (dynamic fair share scheduling), 289292

Direct Swit0ch, 255256

directed context switch, 19

dispatch events, 239240

dispatch routines

device drivers, 504

IRPs, 517518

dispatcher database, 228230

dispatchers, 215

displaying. See viewing

DLLs

credential providers, 98

DllMain function, 154

image loader

import parsing, 168170

name redirection, 162163

name resolution, 160162

safe DLL search mode, 160

viewing DLL load search order, 163164

Ntdll.dll, 7072

overview, 8

subsystem DLLs, 48

subsystems, 6263

DPCs (Deferred Procedure Calls)

I/O, 490492

stacks, 401

driver objects (device drivers), 500507

Driver Verifier

I/O, 554555

memory

IRQL checking, 557

low resources simulation, 557558

miscellaneous checks, 558559

pool tracking, 556557

special pool, 555556

overview, 552554

drivers. See device drivers

dumping

device trees, 562563

dump command, 40

ETHREAD structure, 197198

KTHREAD structure, 197198

silo contexts, 187188

DXGPROCESS data structure, 105

Dynamic Access Control (DAC), 666

dynamic allocation (address spaces), 359365

dynamic fair share scheduling (DFSS), 289292

dynamic processors, 295296

E

editions (Windows), 5457

EMET (Enhanced Mitigation Experience Toolkit), 370

enclaves (memory), 467472

Enhanced Mitigation Experience Toolkit (EMET), 370

entries (PFN), 443

enumeration (devices), 561563

environment (AppContainers security)

overview, 693695

viewing atom table, 697698

viewing security attributes, 695697

EPROCESS data structure, 105108

EPROCESS object, 138140

ETHREAD data structure, 105, 194201

events

dispatch events, 239240

notification events, 423425

examining. See viewing

exclamation points (!), 40

executing initial thread, 148

executive, 7275

executive process object, 138143

executive resources (priority boosts), 242243

exiting threads, 260

experiments

allocating memory, 311313

Bypass Traverse Checking Privilege, 675

calculating load address, 368369

checked build, 5758

checking large address space support, 351

configuring quantums, 237238

creating maximum number of threads, 399

debugging unkillable processes, 539541

dumping

device trees, 562563

ETHREAD structure, 197198

KTHREAD structure, 197198

silo contexts, 187188

identifying trustlets, 129

launching programs at low integrity levels, 641642

Performance Monitor kernel mode/user mode comparison, 2627

setting address limits, 363364

tracing process startup, 149154

troubleshooting pool leaks, 329330

using virtual service accounts, 647650

viewing

access masks, 624

active logon sessions, 715717

address translation, 378380

address usage, 361363

AppContainer atom table, 697698

AppContainer capabilities, 701703

AppContainer security attributes, 695697

AppContainer tokens, 690692

brokers, 709

CFG, 742744

CFG bitmaps, 746747

clock cycles per quantum, 233234

control areas, 408412

CPU rate limits, 293295

CPU sets, 279283

CPU starvation, 247248

CSR_PROCESS structure, 112

CSR_THREAD structure, 206

DEP, 321

device drivers, 8588

device objects, 502506

devnodes, 568569

DLL load search order, 163164

driver catalog files, 574

driver dispatch routines, 517518

driver INF files, 573

driver objects, 504506

driver power mappings, 596

drivers, 496498

DSS, 290292

enabling privileges, 673675

EPROCESS data structure, 107108

ETHREAD structure, 196201

exported functions, 3435

fast I/O, 512513

file objects, 508509

file virtualization, 726727

filtered admin tokens, 645646

foreground boosts, 243245

free page lists, 429430

global audit policy, 682

GUI boosts, 245246

HAL image dependencies, 8082

heaps, 338341

idle threads, 260262

image loader, 156157

integrity levels, 628631

I/O priority boosting/bumping, 551

I/O priority throughput, 549551

IRPs, 518519, 521524

jobs, 180183

kernel stacks, 400401

kernel type information, 4142

KMDF drivers, 580581

KPCR, 7778

KPRCB, 7778

KTHREAD structure, 196201

loaded modules database, 166167

look-aside lists, 331332

memory, 305308

memory compression, 455456

memory partitions, 458

memory-mapped files, 316317

MMCSS priority boosting, 252253

modified page lists, 430435

notification events, 424425

NUMA processors, 270271

object access auditing, 679681

page files, 390392, 397398

page priorities, 437

pageheap, 344346

PEB, 110111

PFN, 427428

PFN entries, 443

pool size, 326327

power availability requests, 603

power states, 592593

prefetch file reads and writes, 415416

processes, affinity, 275276

processes, data structures, 109

processes, process tree, 1213

processes, Process Explorer, 1618

processes, Task Manager, 911

protected processes, 118119

PTEs, 355356

ready threads, 230231

section objects, 406407

security descriptors, 654656

service processes, 9798

services, 97

sessions, 353355

SIDs, 626627

SMT processors, 268269

SRPs, 764

stacks, 521

standby page lists, 430435

subsystems, 6263

swap files, 393

system power capabilities, 597599

system service dispatcher, 7071

TEB, 201205

thread freezing, 265266

thread pools, 299300

thread priorities, 219222

thread states, 224228

threads, clock interval, 232

threads, kernel-mode debugger, 210212

threads, protected processes, 213

threads, user-mode debugger, 209210

token stored handles, 706708

tokens, 635640

trust SIDs, 658

UMDF drivers, 580581

user address spaces, 366367

UWP processes, 689690

VADs, 402403

virtual page files, 393

Windows edition enabled features, 5657

working sets, 418421

zero page lists, 429430

exploit mitigation

assertions. See assertions

CFG. See CFG

control flow integrity, 740

overview, 735

process mitigation policies, 735740

extended affinity masks, 276277

F

facilities (Windows edition enabled features), 5657

fast fail failure codes, 754756

fast I/O, 511513

fast user switching, 30, 475

fault-tolerant heaps (FTH), 347348

fibers, 19

file mapping objects, 20

file objects (device driv0ers), 507510

files

caching, 513

catalog files, 574

file mapping objects, 20

INF files, 573

mapped-file I/O, 513

memory-mapped files, 315317

page files. See page files

virtualization (UAC), 722727

filter drivers, 493

filtered admin tokens (SIDs), 645646

filters (function drivers), 493

firmware, 29

flags, converting, 131135

flow (IRPs), 519520

foreground threads, 243245

frameworks

.NET Framework, 67

power management framework, 600601

WBF (Windows Biometric Framework), 719721

free pages

lists, 429430

memory manager, 310313

freezing threads, 264266

FTH (fault-tolerant heaps), 347348

functions

AllocConsole, 63

AvTaskIndexYield, 254

BaseThreadInit, 160, 170

ConvertThreadToFiber, 19

CreateFiber, 19

CreateFile, 34

CreateProcess, 101104, 129131, 134, 157

CreateProcessAsUser, 101103, 139

CreateProcessInternal, 101103

CreateProcessInternalW, 129, 131, 134138, 146147, 150

CreateProcessWithLogonW, 101103

CreateProcessWithTokenW, 101103

CreateRemoteThread, 193194

CreateRemoteThreadEx, 194, 206207

CreateThread, 193194, 199, 208

Csr, 7172

DbgUi, 72

DebugActiveProcess, 39

DebugBreak, 194

DeviceIoControl, 73

DgbPrintEx, 58

DllMain, 154

drivers, 493

Etw, 72

Ex, 73

ExitProcess, 154

exported, 3435

GetQueueCompletionStatus, 176

GetSystemTimeAdjustment, 232

GetThreadContext, 18

GetVersionEx, 2

HeapAlloc, 332

HeapCreate, 332

HeapDestroy, 332

HeapFree, 332

HeapLock, 332

HeapReAlloc, 332

HeapUnlock, 332

HeapWalk, 332

Inbv, 73

Io, 73

IoCompleteRequest, 241

Iop, 73

Ke, 75

KeStartDynamicProcessor, 295

KiConvertDynamicHeteroPolicy, 287

KiDeferredReadyThread, 274, 284

KiDirectSwitchThread, 256

KiExitDispatcher, 241, 256

KiProcessDeferredReadyList, 274

KiRemoveBoostThread, 241, 250

KiSearchForNewThreadOnProcessor, 283

KiSelecthreadyThreadEx, 267

KiSelectNextThread, 266267

Ldr, 7071

LdrApplyFileNameRedirection, 175

Mi, 73

MiZeroInParallel, 303

NtCreateProcessEx, 104, 120

NtCreateThreadEx, 207

NtCreateUserProcess, 104

NtCreateWorkerFactory, 298

OpenProcess, 39

overview, 78

PopInitializeHeteroProcessors, 286

prefixes, list of, 8788

PsCreateSystemThread, 194

PspAllocateProcess, 104, 138

PspComputeQuantum, 235

PspCreatePicoProcess, 104

PspInitializeApiSetMap, 175

PspInsertProcess, 104, 143

PsTerminateSystemThread, 194

QueryInformationJobObject, 179

ReadFile, 25

ReadProcessMemory, 20

ResumeThread, 264

Rtl, 72

RtlAssert, 58

RtlCreateUserProcess, 104

RtlGetVersion, 55

RtlUserThreadStart, 208

RtlVerifyVersionInfo, 55

secure system calls, 71

SetInformationJobObject, 275

SetPriorityClass, 218

SetProcessAffinityMask, 275

SetProcessWorkingSetSize, 222

SetThreadAffinityMask, 275

SetThreadIdealProcessor, 278

SetThreadSelectedCpuSets, 279

subsystem DLLs, 63

SuspendThread, 264

SwitchToFiber, 19

system services, 72

SystemParametersInfo, 178

TerminateJobObject, 179

TerminateProcess, 154

TermsrvGetWindowsDirectoryW, 170

TimeBeginPeriod, 232

TimeSetEvent, 232

TpAllocJobNotification, 176

UserHandleGrantAccess, 176

VerifyVersionInfo, 2, 55

VirtualLock, 314

WaitForMultipleObjects, 256

WaitForSingleObject, 256

Wow64GetThreadContext, 19

WriteProcessMemory, 20

ZwUserGetMessage, 210

G

games (priority boosts), 251254

global audit policy, 682683

granularity (memory), 314315

groups

claims, 718

processors, 271273

scheduling

CPU rate limits, 292295

DFSS, 289292

dynamic processors, 295296

overview, 287289

GUI

security editors, 664665

threads (priority boosts), 245246

GUIDs (Switchback), 171173

H

HAL (hardware abstraction layer)

overview, 7982

viewing image dependencies, 8082

handles

AppContainers, 705708

token stored handles, 706708

hardware

firmware, 29

HAL. See HAL

kernel support, 7879

hashes (AppContainer atom tables), 697698

heaps/pools

affinity manager, 336

buckets, 335

debugging, 342346

FTH (fault tolerant heaps), 347348

HeapAlloc function, 332

HeapCreate function, 332

HeapDestroy function, 332

HeapFree function, 332

HeapLock function, 332

HeapReAlloc function, 332

HeapUnlock function, 332

HeapWalk function, 332

leaks, 329330

LFH (low-fragmentation heaps), 335336

look-aside lists, 331332

NT heaps, 334

non-paged pools, 325

overview, 324325, 332

paged pools, 325

pageheap, 343346

poolmon command, 327

processes, 333

randomizing (user address spaces), 369

security, 341342

segment heaps, 336337

size, 325327

special pools, 325, 555556

synchronization, 334335

thread pools, 297300

tracking, 556557

types, 334

usage, 327329

viewing, 338341

heterogenous multiprocessing, 52

heterogenous scheduling, 286287

hibernation, 475

hiding. See viewing

hierarchies (jobs), 179180

host (consoles), 67

hybrid jobs, 183

HyperGuard, 768769

hypervisor, 2728

I

IBAC (Identity-Based Access Control), 667

ideal node, 278

ideal processor, 277278

identification

AppIDs, 756757

trustlets, 129

identities (trustlets), 125126

Identity-Based Access Control (IBAC), 667

Idle process, 8990

idle threads, 260263, 267

image bias, 368

image loader

activation contexts, 163

API Sets, 173176

binary planting, 160

CFG, 750751

DLL import parsing, 168170

DLL load search order, 163164

DLL name redirection, 162163

DLL name resolution, 160162

early initialization, 157160

loaded modules database, 164168

overview, 155156

post-import process initialization, 170

safe DLL search mode, 160

Switchback, 171173

viewing, 156157

images

HAL, 8082

image bias, 368

loading. See image loader

native images (subsystems), 72

opening, 135138

randomizing (user address spaces), 367369

immersive applications, 103

immersive processes, 103104

impersonation (SIDs), 642644

implementation (SAS), 712

importing DLLs, 168170

INF files, 573

inheritance (ACLs), 656657

initial thread

creating, 144146

executing, 148

initializing

memory enclaves, 469, 472

processes

creating processes, 148149

image loader, early, 157160

image loader, post-import process, 170

subsystem, 146147

Winlogon, 711712

in-paging I/O, 386387

input. See I/O

installing drivers, 571575, 577

integrity levels (SIDs), 628631, 641642

interfaces (APIs)

API Sets (image loader), 173176

AuthZ, 666667

COM (component object model), 5

.NET Framework, 67

overview, 4

Windows Runtime, 56

internal synchronization, 308

Interrupt Request Levels (IRQLs), 488490, 557

invalid PTEs, 384385

inversion

I/O priorities, 549

priority boosts, 246

I/O

asynchronous, 511

cancelling

overview, 537

thread termination, 539

users, 537538

completion ports, 541546

components, 483488

concurrency, 542

container notifications, 552

device drivers. See device drivers

DPCs, 490492

Driver Verifier, 554555, 557

fast I/O, 511513

file caching, 513

in-paging I/O, 386387

I/O manager, 485486

IRPs (I/O request packets). See IRPs (I/O request packets)

IRQLs, 488490, 557

mapped-file I/O, 513

overview, 483488

Plug and Play

catalog files, 574

device enumeration, 561563

device stacks, 563569

device support, 560561

device trees, 561563

devnodes, 563569

driver installation, 571575

driver support, 560561, 569571

INF files, 573

overview, 559560

power manager

controlling power, 599600

drivers, 596

overview, 590594

performance states, 601

power availability requests, 602603

power management framework, 600601

power mappings, 595

power states, 590594

system capabilities, 597599

priorities. See priorities

priority boosts, 241242

processing, 486488

scatter/gather I/O, 513

synchronous, 511

thread-agnostic I/O, 536537

WDF. See WDF

I/O manager, 485486

I/O request packets. See IRPs

IoCompletion object, 542

IRPs (I/O request packets), 513

cancelling 537–539

dispatch routines, 517518

flow, 519520

layered drivers, 533536

overview, 513515, 525528

stacks, 515519, 521

synchronization, 531533

user address spaces, 528531

viewing, 518519, 521524

IRQLs (Interrupt Request Levels), 488490, 557

isolation (jobs), 184186

J

jobs

creating, 178179

hierarchies, 179180

hybrid jobs, 183

limits, 177178

overview, 2021, 176177

silos. See silos (jobs)

viewing, 180183

K

Kerberos

armoring, 616617

authentication, 714715

kernel

debugging

checked build, 5758

Debugging Tools for Windows, 3842

kernel-mode debugging, 3940

LiveKd, 43

overview, 38

symbols, 38

threads, 210212

type information, 4142

user-mode debugging, 39

hardware support, 7879

jobs. See jobs

kernel CFG, 751752

kernel mode. See kernel mode

KPCR, 7678

KPRCB, 7678

objects, 75

overview, 75

patches

processes

defined, 106

structure, 141

secure kernel, 5961

stacks, 400401

user address spaces, 369

kernel mode

architecture, 4749

user mode comparison, 2327, 46

kernel patches

HyperGuard, 768769

overview, 764765

PatchGuard, 765768

kernel processor control block (KPRCB), 7678

kernel processor control region (KPCR), 7678

KMDF (WDF), 578587

KPCR (kernel processor control region), 7678

KPRCB (kernel processor control block), 7678

KPROCESS data structure, 106107

KTHREAD data structure, 194201

L

large address spaces, checking support, 351

large pages (memory manager), 303304

last processor, 277278

launching programs at low integrity levels, 641642

layered drivers

IRPs, 533536

overview, 494496

layouts

64-bit address space layouts, 357359

ARM address space layouts, 356357

user address spaces, 365367

x86 address space layouts, 349352

x86 system address space layouts, 352353

lazy evaluation, 323

leaks (pools), 329330

Legacy Standby, 594

levels

SID integrity levels, 628631, 641642

thread priorities, 215219

LFH, 335336 (low-fragmentation heaps), 335336

lightweight threads, 19

Linux subsystems, 6870

lists

look-aside lists (pools), 331332

minimum TCB list, 117

page lists, 429435

LiveKd, 43

load address (user address spaces), 368369

loading

data (memory enclaves), 471472

drivers, 575577

images. See image loader

load address (user address spaces), 368369

locking/locks

memory, 314

priority boosts, 241

logging (SuperFetch), 474475

logical prefetcher (working sets), 413416

logon

assured authentication, 718719

group claims, 718

overview, 710711

SAS implementation, 712

user authentication, 713718

Kerberos, 714715

MSV1_0, 713714

viewing active logon sessions, 715717

WBF, 719721

Windows Hello, 721

Windows logon process, 9899

Winlogon initialization, 711712

look-aside lists, 331332

low resources simulation, 557558

LowBox. See AppContainers

low-fragmentation heaps (LFH), 335336

M

managing

power. See power manager

working sets, 417421

mandatory labels (SIDs), 630

mapped page writer, 438439

mapped-file I/O, 513

mappings (power), 595

masks

access masks, 624

affinity masks. See affinity masks

memory

address spaces. See address spaces

address translation. See address translation

AWE (Address Windowing Extensions), 22, 323324

combining, 459467

compression, 449456

Driver Verifier

IRQL checking, 557

low resources simulation, 557558

miscellaneous checks, 558559

pool tracking, 556557

special pool, 555556

enclaves, 467472

heaps/pools. See heaps/pools

limits

physical memory, 446447

Windows clients, 447449

Memory Compression process, 91

memory manager. See memory manager

NUMA (non-uniform memory architecture). See NUMA

page faults. See page faults

partitions, 456458

PFN. See PFN

section objects, 405412

stacks, 398

SuperFetch. See SuperFetch

VADs (virtual address descriptors). See VADs (virtual address descriptors)

virtual memory, 2123

working sets

WSRM, 222223

Memory Compression process, 91

memory manager

allocating memory, 310315

attaching to the process, 310

AWE, 323324

commit charge, 313

commit limit, 313

committed pages, 310313

components, 302303

copy-on-write, 321323

DEP, 319321

free pages, 310313

granularity, 314315

internal synchronization, 308

large pages, 303304

lazy evaluation, 323

locking memory, 314

memory-mapped files, 315317

NX page protection, 319

overview, 301302

pages, defined, 304

protecting memory, 317319

reserved pages, 310313

services overview, 309310

shareable pages, 310313

shared memory, 315

small pages, 303304

viewing memory, 305308

memory-mapped files, 315317

minimal processes, 104, 120

minimum TCB list, 117

miscellaneous checks (Device Driver), 558559

mitigating exploits. See exploit mitigation

mitigations (security), 370

MMCSS (Multimedia Class Scheduler Service), 239, 251254

model (operating system), 4647

modern apps, 103

modern processes, 103104

Modern Standby, 594

modified page lists, 430435

modified page writer, 438439

modules (image loader), 164168

monitors (silos), 187188

MSV1_0 authentication, 713714

Multimedia Class Scheduler Service (MMCSS), 239, 251254

multiple sessions, 2930

multiprocessor systems

affinity masks, 53, 275276

asymmetric, 51

CPU sets, 278283

extended affinity masks, 276277

heterogenous, 52

ideal node, 278

ideal processor, 277278

last processor, 277278

NUMA systems, 269271

overview, 268

processors

groups, 53, 271273

number per group, 273

selecting, 284286

state, 274

scheduler scalability, 274

selecting, 283284

SMT systems, 268269

symmetric, 5153

multitasking (operating system), 51

N

namespaces, 703705

native images, 72

native processes, 104

.NET Framework, 67

nodes

devnodes, 563569

ideal node, 278

processors, 52

no-execute (NX) page protection, 319

non-paged pools, 325

non-uniform memory architecture. See NUMA

notification events, 423425

NT heaps, 334

Ntdll.dll, 7072

NTOWF/TGT key, 613614

NUMA (non-uniform memory architecture)

overview, 404

processors, 270271

systems, 269271

numbers

processors per group, 273

threads, creating maximum, 399

NX (no-execute) page protection, 319

O

objects

device drivers

device objects, 500507

file objects, 507510

driver objects

device drivers, 500507

dispatch routines, 504

EPROCESS object, 138140

executive process object, 138143

file mapping objects, 20

IoCompletion, 542

jobs. See jobs

kernel objects, 75

namespaces (AppContainers), 703705

object access auditing, 679681

overview, 3031

section objects, 405412

security

access checks, 621624

ACEs. See ACEs

ACLs. See ACLs

DAC, 666

overview, 619621

security descriptors, 650656

SIDs. See SIDs

virtual service accounts, 646650

OneCore, 34

opening

command prompt windows, 13

devices, 507510

images, 135138

operating system (OS)

assertions, 753

model, 4647

multitasking, 51

scalability, 53

OTS (over-the-shoulder ) elevation, 729

output. See I/O

over-the-shoulder (OTS) elevation, 729

Owner Rights SIDs, 662

P

packets. See IRPs

PAE (Physical Address Extension), 371

page directory entry (PDE), 374

page directory pointer entry (PDPE), 374

page directory pointer table (PDPT), 372

page faults

clustered page faults, 387388

collided page faults, 387

commit charge

commit limit, 394396

page file size, 397398

in-paging I/O, 386387

overview, 383384

page files

overview, 389390

swap files, 392393

viewing, 390392

virtual page files, 393

PTEs

invalid PTEs, 384385

prototype PTEs, 385386

soft page faults, 384

page files

overview, 389390

reservations (PFNs), 443446

size (commit charge), 397398

swap files, 392393

viewing, 390392

virtual page files, 393

page frame number. See PFN

page lists, 428435

page table entries. See PTEs

page tables, address translation, 375376

paged pools, 325

pageheap, 343346

pages

combining

memory combining, 462

releasing, 464465

committed pages, 310313

defined, 304

faults. See page faults

files. See page files

free pages, 310313

mapped page writer, 438439

memory manager, 310313

modified page writer, 438439

page frame number. See PFN

page lists. See page lists

page tables, address translation, 375376

paged pools, 325

pageheap, 343346

PDE (page directory entry), 374

PDPE (page directory pointer entry), 374

PDPT (page directory pointer table), 372

PFN. See PFN

priorities, 436437, 476478

PTEs (page table entries). See PTEs

reserved pages, 310313

shareable pages, 310313

states, 425428

SuperFetch, 476478

parameters, validating, 131135

parsing DLLs, 168170

partitions, 456458

passwords (Credential Guard), 613

patches (kernel). See patches (kernels)

HyperGuard, 768769

overview, 764765

PatchGuard, 765768

PatchGuard, 765768

PCB (process control block), 106

PCR (processor control region), 260

PDE (page directory entry), 374

PDPE (page directory pointer entry), 374

PDPT (page directory pointer table), 372

PEB (Process Environmental Block), 105

overview, 105

setting up, 143

viewing, 110111

performance

Performance Monitor. See Performance Monitor

robust performance, 478479

states, 601

SuperFetch, 478479

Performance Monitor

kernel mode/user mode comparison, 2627

overview, 3638

PFN (page frame number)

data structures, 440443

entries, 443

mapped page writer, 438439

modified page writer, 438439

overview, 425428

page files (reservations), 443446

page lists, 428435

page priorities, 436437

page states, 425428

viewing, 427428

Physical Address Extension (PAE), 371

physical memory limits, 446447

Pico

creating processes, 104

overview, 121122

subsystems, 6870

placement policies (working sets), 416417

Plug and Play (PnP)

devices

catalog files, 574

device stacks, 563569

devnodes, 563569

driver installation, 571575

driver support, 569571

enumeration, 561563

INF files, 573

support, 560561

trees, 561563

drivers, 560561

overview, 559560

policies

advanced audit policy, 683684

authentication policies, 616617

Credential Guard, 616617

global audit policy, 682683

process mitigation policies, 735740

SRPs (software restriction policies), 757, 762764

trustlets, 124125

Windows edition enabled features, 5657

pools

size, 326327

threads, 299300

usage, 327329

port drivers, 494495

portability (Windows), 5051

ports

completion ports, 541546

port drivers, 494495

power manager

Connected Standy, 594

controlling power, 599600

drivers, 596

Legacy Standy, 594

Modern Standy, 594

overview, 590594

performance states, 601

power availability requests, 602603

power management framework, 600601

power mapings, 595

power states, 590594

system capabilities, 597599

PPL (Protected Processes Light), 115120

preemption (threads), 257258

prefetcher (working sets), 413416

prefixes (functions), 8788

priorities. See also priority boosts

I/O

bandwidth reservation, 551552

boosts, 549, 551

bumps, 549, 551

inversion, 549

overview, 546

strategies, 547548

viewing throughput, 549551

pages, 436437

SuperFetch, 476478

threads

levels, 215219

real-time, 218219

viewing, 219222

priority boosts. See also priorities

applying, 249

Autoboost, 254

balance set manager, 247

CPU starvation, 246248

deadline scheduling, 254

dispatch events, 239240

executive resources, 242243

foreground threads, 243245

games, 251254

GUI threads, 245246

I/O, 241242

locks, 241

MMCSS, 239, 251254

multimedia, 251254

overview, 238239

priority inversion, 246

removing, 250

scheduling category, 251

unwait boosts, 240241

private pages (committed pages), 310313

privileges (accounts), 668675

Bypass Traverse Checking privilege, 675

super privileges, 675676

.process, 109110

process control block (PCB), 106

Process Environmental Block (PEB), 105

overview, 105

setting up, 143

viewing, 110111

Process Explorer, 1418

process reflection (SuperFetch), 480482

process tree, viewing, 1214

process VADs, 402403

processes. See also applications

access tokens, 677

attaching to the process, 310

console host, 67

creating

address space, 140142

converting attributes, 131135

converting flags, 131135

executing initial thread, 148

executive process object, 138143

initial thread, 144146

initializing process, 148149

initializing subsystem, 146147

kernel process structure, 141

opening images, 135138

overview, 101104, 129130

setting up EPROCESS object, 138140

setting up PEB, 143

tracing startup, 149154

validating parameters, 131135

data structures

!process command, 109

CSR_PROCESS, 105, 111112

DXGPROCESS, 105

EPROCESS, 105108

ETHREAD, 105

KPROCESS, 106107

W32PROCESS, 105, 113

debugging unkillable processes, 539541

heaps, 333

image loader. See image loader

immersive processes, 103104

jobs. See jobs

kernel processes, 106

minimal processes, 104, 120

minimum TCB list, 117

mitigation policies, 735740

modern processes, 103104

native processes, 104

overview, 818

PCB (process control block), 106

PEB (Process Environmental Block). See PEB (Process Environmental Block)

Pico. See Pico

protected processes. See protected processes

reflection (SuperFetch), 480482

secure processes. See trustlets

system processes. See system processes

terminating, 154155

trustlets. See trustlets

UWP processes, 687692

VADs, 402403

viewing

DLL load search order, 163164

image loader, 156157, 163164

PEB, 110111

Process Explorer, 1418, 118119

process tree, 1214

protected processes, 118119, 212213

Task Manager, 911

processing I/O, 486488

processor control region (PCR), 260

processors

groups

assigning, 271273

number of processors per group, 273

scheduling (dynamic processors), 295296

symmetric multiprocessing, 53

ideal processor, 277278

KPCR, 7678

KPRCB, 7678

last processor, 277278

nodes, 52

multiprocessor systems. See multiprocessing/multiprocessor systems

NUMA, 270271

PCR (processor control region), 260

selecting, 284286

SMT, 268269

state, 274

programs. See applications

Protected Process Light (PPL), 115120

protected processes

overview, 113115

PPLs, 115120

viewing

Process Explorer, 118119

threads, 212213

protecting memory, 317319

prototype PTEs, 385386

PspInsertProcess function, 104, 143

PTEs (page table entries)

address spaces, 355356

address translation, 375376

creating shared PTEs, 462464

defined, 372

invalid PTEs, 384385

prototype PTEs, 385386

Q

quantums (threads), 258260

accounting, 233

clock cycles, 233234

clock interval, 232

configuring, 237238

controlling, 234235

overview, 231232

registry value, 236237

variable quantums, 235236

quotas (address spaces), 364365

R

randomization (user address spaces)

heap, 369

images, 367369

stacks, 369

viewing support, 370371

ratings (security)

CC, 607

TCSEC, 605607

ready threads, 230231

ReadyBoost, 479480

ReadyBoot, 413416

ReadyDrive, 480

real-time priorities (threads), 218219

reflection (process reflection), 480482

registry

overview, 3233

threads (quantum), 236237

viewing (security keys), 610

virtualization (UAC), 722724, 727728

releasing combined pages, 464465

removing priority boosts, 250

requests. See IRPs

reservations (PFNs), 443446

reserved pages (memory manager), 310313

reserving bandwidth, 551552

Resource Monitor, 3638

resources

Driver Verifier, 557558

low resources simulation, 557558

Resource Monitor, 3638

restricted tokens (SIDs), 644645

rights (accounts), 668670

robust performance, 478479

rotate VADs, 403

routines

device drivers, 498500

dispatch routines. See dispatch routines

overview, 78

S

SACLs. See ACLs

safe DLL search mode, 160

sandboxes (lowboxes), 134

SAS implementation, 712

saturation values, 216

scalability

operating system, 53

scheulers, 274

scatter/gather I/O, 513

scenarios (SuperFetch), 475476

schedulers (scalability), 274

scheduling

groups

CPU rate limits, 292295

DFSS, 289292

dynamic processors, 295296

overview, 287289

priority boosts

deadline scheduling, 254

scheduling category, 251

schedulers (scalability), 274

threads

context switches, 215

dispatchers, 215

exiting, 260

heterogenous, 286287

preemption, 257258

quantums, 258260

terminating, 260

voluntary switching, 256257

scheduling category, 251

SDK (software development kit), 43

searching

image loader, 160

memory combining, 460

safe DLL search mode, 160

section objects, 405412

secure communication (Credential Guard), 614615

secure kernel, 5961

secure processes (trustlets)

attributes, 125

built-in, 125

identifying, 129

identities, 125126

overview, 61, 123124

policies, 124125

services, 127128

system calls, 128

Secure System process, 91

security

access tokens. See access tokens

accounts

privileges, 668675

privileges, Bypass Traverse Checking privilege, 675

privileges, super privileges, 675676

rights, 668670

AppContainers. See AppContainers

AppIDs, 756757

AppLocker, 757762

auditing. See auditing (security)

AuthZ API, 666667

CBAC, 667

components, 608611

Credential Guard. See Credential Guard

Device Guard, 617619

exploit mitigation. See exploit mitigation

GUI security editors, 664665

heaps, 341342

IBAC, 667

kernel patches. See kernel patches

logon. See logon

mitigations (user address spaces), 370

objects

access checks, 621624

ACEs. See ACEs

ACLs. See ACLs

DAC, 666

overview, 619621

security descriptors. See security descriptors, 650

SIDs. See SIDs, 625

virtual service accounts, 646650

overview, 3132, 605

ratings. See ratings (security)

secure communication (Credential Guard), 614615

secure kernel, 5961

secure processes. See secure processes (trustlets)

secure system calls (functions), 71

Secure System process, 91

security descriptors. See security descriptors

SIDs (security identifiers). See SIDs

SRPs, 757, 762764

trustlets. See trustlets

UAC (User Account Control). See UAC (User Account Control)

UIPI, 660661

VBS (virtualization-based security). See VBS (virtualization-based security)

architecture, 5961

hypervisor, 28

viewing (registry keys), 610

virtualization

files, 722727

overview, 611612, 722

registry, 722724, 727728

VSM. See VSB

security descriptors

overview, 650653

viewing, 654656

security identifiers. See SIDs

segment heaps, 336337

selecting

processors, 284286

threads, 266267, 283284

server silos. See silos

Service Control Manager, 96

service processes, 9798

services

memory manager, 309310

overview, 78

Service Control Manager, 96

service processes, 9798

system service dispatcher, 7071

trustlets, 127128

viewing, 97

Session Manager process, 9295

sessions

multiple, 2930

viewing, 353355

Session Manager process, 9295

x86 session space, 353355

setting

address limits, 363364

EPROCESS object, 138140

PEB, 143

UAC, 733734

shareable pages, 310313

shared memory, 315

sharing PTEs, 462464

showing. See viewing

SIDs (security identifiers)

filtered admin tokens, 645646

impersonation, 642644

integrity levels, 628631, 641642

mandatory labels, 630

overview, 625626

Owner Rights SIDs, 662

restricted tokens, 644645

tokens, 632640

trust SIDs, 657658

viewing, 626627

silos (jobs)

ancillary functionality, 189190

containers, 190191

contexts, 186188

creating, 188189

isolation, 184186

monitors, 187188

objects, 183184

overview, 183

simulating low resources, 557558

size

large address spaces, checking support, 351

page files

commit charge, 397398

memory manager, 303304

pools, 325327

small pages (memory manager), 303304

SMT systems, 268269

soft page faults, 384

software development kit (SDK), 43

software PTEs, 384385

software restriction policies (SRPs), 757, 762764

special pools, 325, 555556

SRPs (software restriction policies), 757, 762764

stacks

device stacks, 563569

DPC stacks, 401

IRPs, 515519, 521

kernel stacks, 400401

overview, 398

Plug and Play, 563569

randomizing, 369

user address spaces, 369

user stacks, 399

standby

SuperFetch, 475

page lists, 430435

startup (subsystems), 6364

states

pages (PFN), 425428

processors, 274

threads, 223228

storage (TLS), 18

strategies (I/O priorities), 547548

strengthening CFG, 747749

structures

data structures. See data structures

kernel process structure, 141

subsystems

console host, 67

DLLs, 6263

initializing, 146147

Linux, 6870

native images, 72

Ntdll.dll, 7072

overview, 6263

Pico providers, 6870

startup, 6364

subsystem DLLs, 48

viewing types, 6263

Windows subsystem, 6467

super privileges, 675676

SuperFetch

components, 473474

fast user switching, 475

hibernation, 475

logging, 474475

overview, 472474

page priorities, 476478

process reflection, 480482

ReadyBoost, 479480

ReadyDrive, 480

robust performance, 478479

scenarios, 475476

standby, 475

tracing, 474475

support (Plug and Play), 560561, 569571

suppression (CFG), 741, 748

suspending threads, 264

swap files, 392393

swapper (working sets), 421422

switches/switching

context switches/switching, 215, 255256

Direct Switch, 255256

directed context switch, 19

voluntary switching, 256257

symbols

kernel debugging, 38

viewing kernel type information, 4142

symmetric multiprocessing, 5153

synchronization

heaps, 334335

internal synchronization, 308

IRPs, 531533

memory, 308

synchronous I/O, 511

Sysinternals, 44

system address space layouts (x86), 352353

System and Compressed Memory process, 90

system calls (trustlets), 128

system capabilities (power manager), 597599

System process, 9091

system processes

Idle process, 8990

Memory Compression process, 91

overview, 8889

Secure System process, 91

Service Control Manager, 96

service processes, 9798

Session Manager process, 9295

System and Compressed Memory process, 90

System process, 9091

system thread, 9091

Windows Initialization process, 9596

Windows logon process, 9899

system PTEs (page table entries)

address spaces, 355356

address translation, 375376

creating shared PTEs, 462464

defined, 372

invalid PTEs, 384385

prototype PTEs, 385386

system services (functions), 72

system thread, 9091

system working sets, 422423

systems

PTEs (page table entries). See PTEs (page table entries)

subsystems. See subsystems

Sysinternals, 44

system address space layouts (x86), 352353

System and Compressed Memory process, 90

system calls (trustlets), 128

system capabilities (power manager), 597599

System process, 9091

system processes. See system processes

system services (functions), 72

system thread, 9091

system working sets, 422423

SystemParametersInfo function, 178

viewing (system service dispatcher), 7071

T

tables (PTEs, page table entries)

address spaces, 355356

address translation, 375376

creating shared PTEs, 462464

defined, 372

invalid PTEs, 384385

prototype PTEs, 385386

Task Manager, 911

TCB (thread control block)

minimum TCB list, 117

overview, 196

TCSEC (Trusted Computer System Evaluation Criteria), 605607

TEB (thread environment block)

overview, 194, 198

viewing, 201205

Terminal Services, 2930

terminating

I/O, 539

processes, 154155

TerminateJobObject function, 179

threads, 260, 539

thread-agnostic I/O, 536537

thread control block (TCB)

minimum TCB list, 117

overview, 196

thread environment block (TEB)

overview, 194, 198

viewing, 201205

Thread Information Block (TIB), 201

thread local storage (TLS), 18

thread pools, 297300

threads

access tokens, 20, 677

cancelling I/O, 539

concurrency, 542

context, 18

context switching, 255256

contexts, 18

cores, 52

creating, 193194, 206207, 399

data structures

CSR_THREAD, 195, 205206

ETHREAD, 194201

KTHREAD, 194201

Direct Switch, 255256

directed context switch, 19

dispatcher database, 228230

fibers, 19

file mapping objects, 20

freezing, 264266

group scheduling

CPU rate limits, 292295

DFSS, 289292

dynamic processors, 295296

overview, 287289

idle threads, 260263, 267

initial thread, 144, 145146, 148

maximum number, 399

multiprocessor systems. See multiprocessor systems

overview, 1819

PCR, 260

priorities

levels, 215219

real-time, 218219

viewing, 219222

priority boosts

applying, 249

Autoboost, 254

balance set manager, 247

CPU starvation, 246248

deadline scheduling, 254

dispatch events, 239240

executive resources, 242243

foreground threads, 243245

games, 251254

GUI threads, 245246

I/O, 241242

locks, 241

MMCSS, 239, 251254

multimedia, 251254

overview, 238239

priority inversion, 246

removing, 250

scheduling category, 251

unwait boosts, 240241

quantums. See quantums (threads)

ready, 230231

saturation values, 216

scheduling

context switches, 215

dispatchers, 215

exiting, 260

heterogenous, 286287

preemption, 257258

quantums, 258260

terminating, 260

voluntary switching, 256257

scheduling overview, 214215

selecting, 266267, 283284

states, 223228

suspending, 264

system thread, 9091

TCB (thread control block). See TCB (thread control block)

TEB (thread environment block). See TEB (thread environment block)

terminating, 539

thread-agnostic I/O, 536537

thread pools, 297300

TIB (Thread Information Block), 201

TLS (thread local storage), 18

UMS threads, 1920

VADs (virtual address descriptors), 20

viewing

kernel-mode debugger, 210212

overview, 207209

protected processes, 212213

ready, 230231

TEB, 201205

user-mode debugger, 209210

worker factories, 297300

throughput (I/O priorities), 549551

TIB (Thread Information Block), 201

TLB (translation look-aside buffer), 377378

TLS (thread local storage), 18

tokens

access tokens, 677

AppContainters, 690692

BNO isolation, 708

SIDs, 632640

stored handles, 706708

tools

Debugging Tools for Windows (kernel debugging), 3842

Windows, viewing internals, 3536

tracing

process startup, 149154

SuperFetch, 474475

tracking pools (Device Driver), 556557

translating addresses

ARM virtual address translation, 381382

overview, 371

page tables, 375376

PTEs, 375376

TLB, 377378

viewing, 378380

write bits, 376377

x64 virtual address translation, 380381

x86 virtual address translation, 371375

translation look-aside buffer (TLB), 377378

trees (Plug and Play), 561563

troubleshooting pools, 329330

trust SIDs, 657658

Trusted Computer System Evaluation Criteria (TCSEC), 605607

trustlets

attributes, 125

built-in, 125

identifying, 129

identities, 125126

overview, 61, 123124

policies, 124125

services, 127128

system calls, 128

types

device drivers, 492496

heaps, 334

kernels, 4142

subsystems, 6263

U

UAC (User Account Control)

elevation

Admin Approval Mode (AAM), 729

administrative rights, 729732

auto-elevation, 732733

consent, 729

over-the-shoulder (OTS), 729

overview, 729

settings, 733734

overview, 722

virtualization

files, 722727

registry, 722724, 727728

UEFI (Credential Guard), 616

UIPI (User Interface Privilege Isolation), 660661

UMDF (WDF), 578, 580581, 587590

UMS threads (user mode scheduling threads), 1920

Unicode, 3335

Universal Windows Drivers, 85

unkillable processes, debugging, 539541

unwait boosts, 240241

updating Windows, 3

usage (pools), 327329

User Account Control. See UAC

user address spaces

calculating load address, 368369

EMET, 370

heap randomization, 369

image randomization, 367369

IRPs, 528531

kernel, 369

layouts, 365367

overview, 365367

security mitigations, 370

stack randomization, 369

viewing, 366367

viewing randomization support, 370371

User Interface Privilege Isolation (UIPI), 660661

user mode

architecture, 4749

kernel mode comparison, 2327, 46

user-mode debugging

Debugging Tools for Windows, 39

viewing threads, 209210

user mode scheduling threads (UMS threads), 1920

user stacks, 399

users

authentication, 713718

Kerberos, 714715

MSV1_0, 713714

viewing active logon sessions, 715717

cancelling I/O, 537538

fast user switching, 30, 475

multiple sessions, 2930

SuperFetch, 475

UAC. See UAC

user address spaces. See user address spaces

using virtual service accounts, 647650

UWP apps, 685687

UWP processes, 687692

V

VADs (virtual address descriptors)

overview, 20, 401

process VADs, 402403

rotate VADs, 403

validating parameters (processes), 131135

values (saturation values), 216

variable quantums, 235236

VBS (virtualization-based security)

architecture, 5961

hypervisor, 28

versions (Windows)

OneCore, 34

overview, 13

updating, 3

viewing

access masks, 624

active logon sessions, 715717

addresses

randomization support, 370371

translation, 378380

usage, 361363

user address spaces, 366367, 370371

VADs (virtual address descriptors), 402403

AppContainer

atom table, 697698

capabilities, 701703

security attributes, 695697

tokens, 690692

brokers, 709

CFG, 742744

CFG bitmaps, 746747

control areas, 408412

CPU. See CPU

CSR_PROCESS data structure, 112

CSR_THREAD structure, 206

DEP, 321

device drivers, 8588

device objects, 502506

devnodes, 568569

DFSS (dynamic fair share scheduling), 290292

drivers, 496498

catalog files, 574

device drivers, 8588

dispatch routines, 517518

INF files, 573

KMDF drivers, 580581

objects, 504506

power mappings, 596

UMDF drivers, 580581

dumping. See dumping

enabling privileges, 673675

EPROCESS data structure, 107108

ETHREAD structure, 196201

files

catalog files, 574

file objects, 508509

INF files, 573

memory-mapped files, 316317

page files, 390392, 397398

prefetch file reads and writes, 415416

swap files, 393

virtual page files, 393

virtualization, 726727

free page lists, 429430

functions, exported, 3435

global audit policy, 682

HAL image dependencies, 8082

heaps, 338341

image loader, 156157

DLL load search order, 163164

loaded modules database, 166167

integrity levels, 628631

I/O

fast I/O, 512513

IRPs, 518519, 521524

priority boosting/bumping, 551

priority throughput, 549551

IRPs, 518519, 521524

jobs, 180183

kernel

kernel-mode debugger, 210212

KPRCB (kernel processor control block), 7778

KPCR (kernel processor control region), 7778

stacks, 400401

type information, 4142

KTHREAD structure, 196201

look-aside lists, 331332

memory, 305308

combining, 465467

compression, 455456

memory-mapped files, 316317

partitions, 458

modified page lists, 430435

notification events, 424425

NUMA processors, 270271

object access auditing, 679681

pages

files, 390392, 397398

free page lists, 429430

modified page lists, 430435

pageheap, 344346

PFN (Page Frame Number), 427428, 443

priorities, 437

PTEs (page table entries), 355356

standby page lists, 430435

virtual page files, 393

zero page lists, 429430

PEB (Process Environmental Block), 110111

PFN (Page Frame Number), 427428, 443

pools. See pools

power

availability requests, 603

driver power mappings, 596

states, 592593

system capabilities, 597599

prefetch file reads and writes, 415416

priority boosts

bumping (I/O), 551

CPU starvation, 247248

foreground threads, 243245

GUI threads, 245246

MMCSS (Multimedia Class Scheduler Service), 252253

processes

affinity, 275276

data structures, 109

PEB (Process Environmental Block), 110111

Process Explorer, 1418, 118119

process tree, 1214

protected processes, 118119, 212213

service processes, 9798

Task Manager, 911

UWP processes, 689690

PTEs (page table entries), 355356

section objects, 406407

security

AppContainer, 695697

descriptors, 654656

registry keys, 610

SIDs (security identifiers), 626627

trust SIDs, 658

services, 97

MMCSS (Multimedia Class Scheduler Service), 252253

service processes, 9798

system service dispatcher, 7071

sessions, 353355, 715717

SMT processors, 268269

SRPs (software restriction policies), 764

stacks, 400401, 521

standby page lists, 430435

swap files, 393

systems

power capabilities, 597599

subsystems, 6263

system service dispatcher, 7071

threads

clock cycles per quantum, 233234

clock interval, 232

foreground threads, 243245

freezing, 265266

GUI threads, 245246

idle threads, 260262

kernel-mode debugger, 210212

KTHREAD structure, 196201

overview, 207209

pools, 299300

priorities, 219222

protected processes, 118119, 212213

ready, 230231

states, 224228

user-mode debugger, 209210

tokens, 635640

AppContainers, 690692

filtered admin tokens, 645646

token stored handles, 706708

virtual page files, 393

Windows

enabled features, 5657

tools, 3536

working sets, 418421

zero page lists, 429430

virtual address descriptors (VADs). See VADs (virtual address descriptors)

virtual address spaces. See address spaces

virtual memory, 2123

virtual page files, 393

Virtual Secure Mode. See VBS

virtual service accounts, 646650

Virtual Trust Levels (VTLs), 5961

virtualization

security

authentication policies, 616617

Device Guard, 617619

files, 722727

Kerberos armoring, 616617

NTOWF/TGT key, 613614

overview, 611613, 722

passwords, 613

registry, 722724, 727728

secure communication, 614615

UEFI, 616

VBS (virtualization-based security). See VBS (virtualization-based security)

virtualization-based security (VBS): See VBS (virtualization-based security)

voluntary switching, 256257

VSM. See VBS

VTLs (Virtual Trust Levels), 5961

W

W32PROCESS data structure, 105, 113

WBF (Windows Biometric Framework), 719721

WDF (Windows Driver Foundation)

KMDF, 578587

overview, 84, 578579

UMDF, 578, 580581, 587590

WDK (Windows Driver Kit), 4344

WDM (Windows Driver Model), 8384, 493494

windows, opening command prompts, 13

Windows

client memory limits, 447449

design goals, 4546

editions

comparison, 5456

viewing enabled features, 5657

operating system model, 4647

portability, 5051

SDK (software development kit), 43

versions

OneCore, 34

overview, 13

updating, 3

viewing internals, 3536

W32PROCESS data structure, 105, 113

WBF (Windows Biometric Framework), 719721

WDF (Windows Driver Foundation). See WDF Windows Driver Foundation)

WDK (Windows Driver Kit), 4344

WDM (Windows Driver Model), 8384, 493494

Windows API. See APIs

Windows Hello, 721

Windows Initialization process, 9596

Windows logon process, 9899

Windows Runtime, 56

Windows subsystem, 6467

Winlogon initialization, 711712

winver command, 3

WSRM (Windows System Resource Manager ), 222223

Windows Biometric Framework (WBF), 719721

Windows Driver Foundation (WDF)

KMDF, 578587

overview, 84, 578579

UMDF, 578, 580581, 587590

Windows Driver Kit (WDK), 4344

Windows Driver Model (WDM), 8384, 493494

Windows Hello, 721

Windows Initialization process, 9596

Windows logon process, 9899

Windows Runtime, 56

Windows System Resource Manager (WSRM), 222223

Winlogon initialization, 711712

worker factories, 297300

working sets

balance set manager, 421422

demand paging, 413

managing, 417421

memory, 412

notification events, 423425

overview, 413

placement policies, 416417

prefetcher, 413416

ReadyBoot, 413416

swapper, 421422

system working sets, 422423

viewing, 418421

write bits, 376377

WSRM (Windows System Resource Manager), 222223

X–Z

x64 systems, 50

x64 virtual address limitations, 359

x64 virtual address translation, 380381

x86 address space layouts, 349352

x86 session space, 353355

x86 system address space layouts, 352353

x86 virtual address translation, 371375

zero page lists, 429430

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.94.171