`
`Facebook's Exhibit No. 1907
`Page 1
`
`
`
`
`
`Facebook's Exhibit No. 1007
`Page 2
`
`
`
`, Sarry Reitteahan
`
`Facebook's Exhibit No. 1007
`Page 3
`
`
`
`cts
`
`1S esse
`
`ele ae: 3 eB)
`
`ea bh eee: eee
`
`THE PHILOSOPHY,
`
`DESIGN,
`
`OF MICROSCFT WINDOWS
`
`AND ARCHITECTURE
`
`Lash
`
`NEXT GENERATION
`
`Facebook's Exhibit No. 1007
`Page 4
`
`
`
`Facebook's Exhibit. No. 1007
`Page 5
`
`
`
`
`
`
`
`Facebook's Exhibit No. 1007
`Page 6
`
`
`
`PUBLISHED BY
`Microsoft Press
`A Division of Microsoft Corporation
`Onc Microsoft Way
`Redmond, Washington 98052-6399
`Copyright © 1994 byAdrian King
`All rights reserved. No part of the contents of this book niay be reproduced or
`transmitted in any form or byany means without the wrinen permisslon of che publisher.
`
`Library ofCongress Cataloging-in-Publication Data
`Bing, Adrian, 1953-
`Inside Windows $5 / Adrian King.
`p
`cm.
`Includes index.
`ISBN 1-55615-626-X
`1, Windows (Computer programs}
`fite})
`J. Title,
`QATE.76.W56K58, 1994
`005.4'460--de20
`
`2. Microsoft Windows (Computer
`
`93-48485
`CIP
`
`Printed und bound in the United States of America.
`
`323456789 QMOM 987654
`
`Distributed to the book trade in Canada by Macmmitlan of Canada, a division of Canada Publishing
`Corporation,
`ACIP catalogue record for this bookis available from the Britigh Library.
`Microsoft Press books are available throughbooksellers and distributors worldwide, For fartherinformation
`about international editions, contact your local Microsoft Corporationoffice. Or contact Micrasoft Press
`International directly at fax (206) 986-7320.
`~
`
`PageMakeris a registered trademark of Aldus Corporation. Apple, AppleTalk, LaserWriter, Mace,
`Macintosh, and TrueType ave registered trademarks ofApple Computer, Inc, LANtasticis a registered
`trademark ofArtisaft, Ine. Banyan and Visiesare repistered tradentarksofBanyan Systems, Inc,
`Compagts a registered trademark of Compaq Computer Corporation. CompuServe isa registered
`trademark of CompuServe, Inc, Alpha AXP,.DEG, and Pathworks are trademarks of Digital Equipraent
`Corporation, LANstepis a trademark ofHayes Microcomputer Products,Inc. HP and LaserJet are
`registered trademarks of HewletePackaed Company. Intel isa registered wademark aud EthexExpress,
`Pentium, and 8X are trademarks of Intel Gorperation. COMDEX Is a registered trademark of Interface
`Group-Neévada, Inc. AS/400, IBM, Micro Channel, OS/2, and PS/2 are registeredtrademarks and PC/
`AT is'a wademark of International Business Machines Corporation. 1-2-3, Lotus, and Notes are
`registered trademarks of Lotus Development Corporntios. Micresoft, MS, MS-DOS, and XENIX are
`registered trademarks and ODBC, Win32s, Windows, Windows NT, and the Windows operating system
`logo are wademarks of Microsoft Corporation. MIPS is a registered trademark and R4000 is a irade-
`mark of MIPS Computer Systems, Inc, NetWare and Novell are registered trademarks of Novell, lac.
`Solt-Ice/W is a registered trademark of No-Mega Technologies, Inc. DESQview is a registered trade
`mark and Qentm isa wademark of Quarterdeck Office Systems. OpenGLisa trademark ofSilicon
`Graphics, Inc, PO-NFS, Sun, and Sun Microsystems are registered tradlemarks.of Sun Microsystems, Inc,
`TOPSis a registered trademark of TOPS, a Sun Microsystemé company, UNEX is a registered trademark
`of UNIX Systems Laboratories.
`
`Acquisitions Editor: Mike Halvorson
`:
`Project Editor: Erin O'Conner
`Technical Editors: Seth McEvoy and Dail Magee,Jr.
`soa
`
`
`
`Facebook's Exhibit No. 1007
`Page 7?
`
`
`
`
`
`CONTENTS SUMMARY
`
`FOPOWOIG oc en cece eee tenet eeLtr eae btn eaeas xvil
`PREFACEee eect bent e eben enaeaas perenne xxi
`introduction o.......eee eee es Ledeen ete eene xxV
`
`CHAPTER ONE
`
`THE ROAD TO CHICAGO........... etna eat 1
`GHAPTER TWO
`
`INTEL PROCESSOR ARCHITECTURE......... 33
`
`CHAPTER THREE
`-
`A TOUR OF CHICAGO .....,.. beeen as. 68
`CHAPTER FOUR
`THE BASE SYSTEM. .... 20... ccs ce cece ees 103
`CHAPTER FIVE
`THE USER INTERFACE AND THE SHELL... ... 157
`CHAPTER SIX
`;
`APPLICATIONS AND DEVICES ........ an 223
`CHAPTERSEVEN
`.
`THEFILESYSTEM ...... Veen cette eens275
`CHAPTER ZIGHT
`PLUG AND PLAY... ocean 309
`CHAPTER NINE
`:
`.
`NETWORKING... 2.0.0.0... cc cece eee eee . 341
`CHAPTER TEN
`MOBILE COMPUTING. ...............0000- 384
`_ EPILOGUE
`LEAVING CHICAGO ......0..000.0..0.000... 407
`GIOSSATY oo ee een Aon eereeeseaes Sede en en eua eae 427
`WOCOX a cece ee te etre nae pa pans re455
`
`Facebook's Exhibit No. 1007
`Page 8
`
`
`
`Facebook's Exhibit No. 1007
`Page 9
`
`
`
`
`
`TABLE OF CONTENTS
`
`FOFOWOFO oo ct tec cee eee eeu enna ben aneugananae_ xvii
`Preface .. 6... be bbaneneee vac se beeenabet been cue en seers cane ax
`IEOCQUCHON tere reer e es eceenenneteung eget ig HRV
`
`CHAPTER ONE
`THE. ROAD TO CHICAGO... 2.00. 1
`The Mission for Windows 85 ......0.0. ccc ea ee esNese eeeee eee B
`Help forthe End User... ce eee ree eee naeees 3
`Hardware Platforms. 0.0.00... ceca cette ee eee teenseee A
`For the Developer—i32 Bits at Last... 06. cc cece usc e ees anes 5.
`Shall We Go ta Chicago or Caito?. 2... ceca eee eaevee G
`First Stop—Chicago 2... ccc ccc eee ceceeeenes 7
`Clients and Servers... 2... cece ce eee etc aeeeey 8
`And On ta Cairo oe. ee ee eee ees 10
`Summary... i.e eeeMaeva e ee ateaaasre 12.
`Project Goals... ee lee eesened eter t eres 13
`Compatibiity ......a 14
`The Compatibility Fallbackre 15
`Performance 05... ceca detect ees eves noes 16
`Robustness—-Adiew UAE? o.oo eee e cece aes 7
`Timety Product Availability 2.0000... c ccc ccc cece eeu cesses 18
`Easy Sétup and Configuration ........ dere eta were eeeeees 19
`The Plug and PlayInitiative ...0...... aca?veers ace 20
`Configuring Windows .. 00... ete eee aes 21
`User-Leval Operations... ee ee eee eae 24
`New Shell and User Interface... 00.0.0: ccs ce eee ve eaee 20
`The New Shell. .c.. acc cea eee eee ea eeeeees 22
`Complete Protected Mocle Operating System .......eae tees 23
`32-Bit Application Support ......... 000 ce ee eee eee eeeLees 24
`The Jump to 32 Bits... ke ieee eect ee es GB
`Networking and Mobile Computing .. 0.0.0.2... 000000 cee eeu 27
`
`Facebook’s Exhibit No. 1007
`Page 10
`
`
`
`INSIDE WINDOWS 95
`
`Bringing Windows 95 to Markét.......ener ee ete ete n ee en ed-, 28
`For Micrasoft—The Bottom Line oo. ee ee eee 30
`Conctusion........ Lee eden ee cea cereus sue tectpaneaenseeage 31
`
`CHAPTER TWO
`INTEL PROCESSOR ARCHITECTU RE.......... 33
`Intel INSIGE eee et ee sets tees aernrens 34
`The Intel Processor Family 2.0.0.0... cece cece ee reece res 35
`Backward Compatibility... 00... ce ene ees 36
`Processor ArChHiteCtye. oc. cee eee eet eee eee eee 37
`The 8080 and 086 Processors 6.6... eee ees 38
`The 640K Barrier oo... ccc cc cece cee ee eens.. 39
`The B0286-Processor oo... ieee ce eeseee eens her awes Ay
`The 80386 Processor oo... cece cece etre cance es 43
`_
`80386 Memory Addressing ..............05 en eee eae b eee 45°
`80386 Descriptor Format... 0. 0c ce ccc eect evaeeeescanans 45
`The Descriptor in Summary ..... Lede e teen eee ee beeen 48
`Virtual Memory 22. cece tence eee e eee eens 48
`Virtual Memory Management ....0 2.0.0. .e. ces ee eee 49
`Good Virtual Memory Management......... 0.000006 ,. 50
`Mixing 286 and 386 Programs... 66.0. cee cece eee eee 54
`The Protection System... 2... bade neees vated ee eaees venea SAS
`Memory Protection ...... bebe aeeeewe ae eee eee 55
`Operating System Protection ....... 0... esse eee e renee 56
`Device Protection ............... Lene ena pte ne eee 57
`Low-Level Device Access ....... beac ete ce eeeebaeeee 57
`High-Level Device Access ....... 00.22. eee eee eee 58
`Using the 80386 Device Protection Capabilities ...-.. ,+. 59
`Virtual 8086 Mode ..e.. cecce ccc eee re eee tne er seine BO
`Gonclusion....,. We eee eee ee Deere ea eee setae 61
`
`GHAPTER THREE
`A TOUR OF CHICAGO ....00........ Leave eeenees 63
`System Overview 0.0... ccc cece cece ec eusecunneees ».. 63
`The Base System . 22... eee cee ewes cree ees BE
`Windows and Modes......... eae ee teen eran teeeees 67
`
`vi
`
`Facebook's Exhibit No. 1007
`Page 11
`
`
`
`Table of Contents
`
`Virtual Machines ...... vee enesteuasee euveeeees beesoe. 68
`Windows Virtual Machines voi... 0... cece cee cere as 70
`initialization... 6... eee bbe nee eee tees eiatenes FO
`The System Virtual Machine. 2.0... cece ee eee cane 7t
`MS-DOS Virtual Machines ............. ab ee een eae 72
`
`Protected Mode MS-DOS Applicationstaees venue edenscetaee 73
`
`DPM... eee cere een env aeeSeen ees bees 74
`Multitasking and Scheduling ..... anesLa ence ees ee ee eneeaaee 75
`Multitasking Models... 0.0.00... 0 cca awecescnseeaveee 1». 76
`Critical Sectlons oo... .: cca vc eee ec cs vue nee nan eres paves FO
`Processesin Windows sence ete e tance teens eee eters, 80
`Modules........., Shee eee vanes eee enieyeee Maeeeaeee 80
`API SUBPO. C0. eee ees ere eee eeeeaepeenee 83
`Dynamic Linking ..........., weer es neraee Veeeaee beeeaee 82
`Support frorn the Base System. ......... naeSees weedas 84
`“Memory Management .......... 006. tee eenaeern waa
`Application Virtual Memory. ....... 0... .08c0 ue vee eevuenue 86
`Haap Allocation 0.00. eee een eeees 87
`
`Windows 95 Application Memory Managementseen 87
`
`System Memory Management .............00i0005peas 8B
`Windows Device Supporto... 0.0 cece ee tne ebe ried 90
`BeviceVirtualization ...... ween teeta been este eeereges 90
`Minidrivers oo. ee eas rerSee ve ee eeneeeas a1
`The WindowsInterface ......5.....2
`What isa Window? «20.0... cece cece crac eee eeees 92
`Windows 95 UserInterface Design ........... cc cece ee eeee 95
`Windows Programming Basics .....02..0.00..0 0000-000. aetna 96
`Event Driven Programming...... bbe veep eeae ess eeaatanees 96
`' Message Handling .............. wee b ee eee eet e eee eetee 97
`Program R@SOUrCES 2.6... cece eke eee aes shee h seen eae:99
`Windows 95 Programming .....0....cccee ese ce eee eee ene 99°
`COMCIUSION 0. ieee cece eee ae eae tees wets eee ences 104
`References... 0... cece ee eee Deeb ieee arene eeenaaeaens 101
`
`CHAPTER FOUR
`THE BASE SYSTEM .........000..00000 000.eves, 108
`Windows 95 Diagrarnmed........ Ueda tg eae ata 104
`
`vii
`
`Facebook's Exhibit No. 1007
`Page 12
`
`
`
`INSIDE WINDOWS 95
`
`Windows 95 Surveyed... .......... beeen eee eee eee ..- 106
`Protection Rings in Windows 95.0.0... 0. ceca eee e era eee . 107
`Windows 95 Mernory Map ....... csc. cca ra ese eeen eres 108
`Tasks and ProcesS€S oo... eee tener ete nnas 110
`Virtual Machine Management .........rer 111
`Real MS-DOS ............0.004Caeaae bee taeeeeeeeee 4
`Virtuat Machine Scheduling ..........0..c0.eegeeaee reve 112
`The Windows 95 Schedulers ........ 0.0.0 cece eee eee 114
`Scheduling Within the System Virtual Machine ......... 116
`Controlling the Scheduler... ...aetna eee beens 416
`Threads and UAEs..... eke teeter avauvaeas via 497
`Threads and Idle Time ......... canes beans deen eee 118.
`ApplicationMessage Queués ......... 0.00.eens 119
`' Physical Memory Management...........cccccr eee eu eves 121
`Virtual Memory Management .......0.... cere eee eee e 125
`Mernory Mapped Files ..............05, pevrenetare 127.
`Reserving Virtual AddressSpace............ 00008. we 128
`Private Heaps... ieee eee ee ree 129
`Virtual Machine Manager Services... 20.0.0 0000....leversssa 129
`Calling Virtual Machine ManagerServices.......... peeeeae 131
`VMM Callbacks... 00. cece ee ere cena e ee anes 131
`Loading VxD8..........-Sees eens wena be bbeees 132
`The Sheil xD. ea eee eee abate pet anne 134
`Getting Around in Ring Zero ..... Peete e ewes ete eae 138
`Calling Windows 95 Base OS Services ..........0.0.. 137
`Cailing from One VxD to Another. .......... peeeseees 138
`VMM Service Groups .... 00... cee cere cece eee ens 140
`’ Application Support. 6.00.0. ee cece teen eeete ees 144
`The API Layer 00. teeters aces nee ee nee 142
`Mixing 16-Bit and 32-Bil Code cede new wee eee anaes. 143:
`The Win32 Subsystem .. 0.0.0.0... cee ceca pena . 147
`Internal Synchronization. 0... 0.02... eae eee 149
`GONcluSION. . ccc cee eee et eae ven been eee tenes 155
`ROPEreNCES. ec ce cee tenet e eae ne es Lo keeaee 156
`
`viii
`
`Facebook's Exhibit No. 1007
`Page 13
`
`
`
`Table of Contenis
`
`CHAPTER FIVE
`THE USERINTERFACE AND THE SHELL..... 157
`improving on Windows 3.0 and3.1.....tlw eevee ee te taeeeeenn 158
`System Configuration and Control .......-.60. eres vee. 160
`Program Manager, File Manager, Task Manager........ 160
`Control Function§ .. 00. cc cee eee ».. 162
`Consistency ... sec e cee ee cece cece eaters e ee veeees 162
`VISUAIS eee eeeepee begin nae nas 164.
`Sealability 0.0.0... cee cee cee este ener
`. 164
`Concepts Guiding the New User interface ween eeseer bernees 165
`
`The Document-Centric Interface 22.0... ca cee eaeeee e ne 186
`Look and Feel... ccc eee renee ec eereeeeas see 167
`The Windows 95 Shell... ... cei ee eee ence eaee 169
`
`Folders and Shortcuts in thé Windows 95 Shell beeen 170
`
`Desktop Folders ..........006 Lace cece ene eaeeaens 172
`System Setup.........SaasSau buet ha eee ee cer eens 173
`The InitialDesktop oo... 00. . sve ee ees Ce ae ewesee 174
`The Desktop ...... epee react eens vee cea TF
`The Taskbar 22... eee ees neces2. 179
`On-Screen Appearance oo. ccs eee es « 182
`Light Source .. 0.0.05 beers ceabenens beavers ereseae 1B4
`Property Sheets... 6.06. ccc cece ceca ence rv eee veetees 185
`Online Help 0... ce eee eee been neteee 186
`fmplementation ........ cc crete e eet e eee et ee eet es 188
`Design Retrospective 20... 1... eee teeter erect eee es 189
`The Outside Influences .......... 0.00 ccc ee eee etre wenen 189
`The Development of the Shell... 0. eee -. 190
`Changes in the Sheil... 0.0.00. ccc ee tee eye ces 192
`The Taskbar... ec e eeeeee neeeeesciveee 194
`Folders and Browsing......... Pace etna e were eee nene 195
`AMUMALION 66 eters eae vareee 196
`The Transfer Modei..........rn 197
`Other Changes ......., pee e tee venta unateateeenae 198
`The New Appearance . 0.0... 6k cee cent eet enee 198
`Screen Appearance ............ 0.0006.pene eveeeesener 198
`Visual Elements 02.06. erence ane dete e teen rea eees 201
`Scalability 2.0. cece teen bene ens 201
`
`ix
`
`Facebook's Exhibit No. 1007
`Page 14
`
`
`
`INSIDE WINDOWS 95
`
`Menus... ccc csc eeeeeceeeeee tees bene ates ee ». 202
`Window Buttons .............00, Liven cree etn ee ae 204
`ICONS 2. cee es eee cna eee eee eee 204
`Proportional Seroll Box and Sizing Handle .......... 0 205
`New Controls. ise cece eee teen newaeas weep ane enes 205
`- Tool Bar Control ...-......testes sees ere 205
`Button List Box Control, . 0... ce cee eee eee eae 206
`Status Window Conttol .... 2. ccc cece ees-.. 206
`Column Heading Control ......... 0. cece eee ee ee 207
`Progress Indicator Control........ bee cesar dees ines OB
`Slider Control... 6... cece ce ere etna bases 208
`Spin Box Control... 00 cee eee ee eee aee 208
`Rich Text Control... ... Pee eee ee et aera nets 209
`Tab Control....... dene cent nba eer en eensMeek eaas 209
`Property Sheet Control
`.Phebe ee scene ee eturanae 209
`List View and Tree View Contralg ..........4. cba e ees 210
`New Dialog Boxes. .......... Lan geeenuvane enn getvaas. 210
`File Open Dialog... ccc eee ee ear ener aaes 211
`Page Setup Dialog ............., bedded ne eee eee 213
`Long Filenames 0.5... 60. eee c eee cece cede cece eeeeuas 213
`Windows 95 Support for MS-DOS Applications ...... ere215
`Application Guidelines for Windows 95........ faeces ate eee 217
`Follow the Style Guidelines... ..4.....4.6.00000- beeen 2i8
`Support Long Filenames....- 0... cece eee eee Va. 218
`Support UNG Pathnames ........ 00.2. cece eevee pre eead» 218
`Register Document and Data Types,
`oo.
`and Support Drag and Drop.....beeper e eee pe ee eeeaae 218
`Use Common Dialogs ....... 0. ccc epee ce eee 219
`Reduce Multiple Instances of an Application wee cette eee 219
`
`BeConsistent with the Shell 00.22.20 eee BID
`Revise Onlin Help... ee ee ee beac c eee en eee 219
`Support OLE Functionality ...........0 0000 bebe eters 220.
`CONCIUSION. 1 eee eee tee ee neces tee tenete tae 220
`REPPENCE Coe eee ee tebe bebe beeen 221
`
`Facebook's Exhibit No. 4007
`Page 15
`
`
`
`Table of Contents
`
`GHAPTER SIX
`APPLICATIONS AND DEVICES .. 000.000.0000... 223
`The Win82 APL... cae eee eee tea ereseuuenanes 224
`Goais for WIn82. 0. cece eens beeen nena 226
`Components of the Win32 API Pade eel ee rene ee endees 227
`The Win32 API on Windows 95 ............005Pied eens 229
`Porting to the Win82 API............. dene eee eeeueueeecs 229
`. Porting Tools... 00... cepa nee ees dene tee ane es 229
`API Changes........0....0.55ere tea easaanseves 290
`Memory Management ......0.. 0.0... eee eeeae Oe
`Version Checking ........20.ccceeeseaeees eden 233
`Nonportable APIS uli aaa c eee cranes 233
`Win32 on Windows 95.....4... sleeker bee er tenes eered 234
`Security APIS ...........Savages sae ve nee wei. 234
`Console APIS ooo... ieee cece eee bee et hanes tae OSD
`32-Bit Coordinate System. ......... ecaveseueaveaas 235
`Unicode APIS 2... 6. eis cc ccc cee rea cesiunpee 235
`Server APIS... ccs eae eevees te ealawenesetnees 236
`PrinterSupport ....... 2... beans pee eeeetaeewes 1. 236
`Service Control Manager APIs ..... steers beens 236
`Event Logging ....... 0.0... e eeeeae es 236
`Detailed Differences... 0.0.0.0... cee denen ae nena 237
`
`Programming for Windows 95 2... ....... 0005 note eta eee ntaes 238
`Multitasking.........4. beeededeeereaae webbed eee naas 238
`Memory Management....... a re cree, OAT
`Plug and Play Support ......0.....00cce cousMeeneeens ». 241
`The Registry .2 0... cece cede caterer eee ueeeraes ees 242
`The Userinterface ooo. cece cece eee ve B45
`SS eee 245
`International Support... e eee e tere ee eee 248
`Structured Exception Handling. ..... 0.0 .c cece cree eee 249
`The Graphics Device Interface ...., bee raeeeee tenis ween nes 252
`GDI Architecture... 0.0... eeDente beeen tebe bees 255
`Performance Improvements ee eee eee ne nee beans.. 256
`Limit Expansion ........ ee renee eee nee e wna ens 256
`New Graphics Features ............000. Liven eee ee 257
`
`xl
`
`Facebook's Exhibit No. 1007
`Page 16
`
`
`
`INSIDE WINDOWS 96
`
`TrueType... 2...bee etaeeuuees veep epee eneunees 268
`Metafile Support ..... Bebb aad eect eter eens 258
`Image Color Matching 2.02... iceciat ices ee teeereevaaes 259
`Color Profiles ........,..0.0-8 Leste rae eueteas 261
`Communicating Color information beensbees ete ens 261
`The Display Subsystem ......0 0.006 c eee ee cec ive v eensNoes 262
`The DIB Engine,....... Deere eee eee ete nee 265
`The Display Mini-Driver...... wee eee bee teats bebe evans 266
`Bank-Switched Video Adapters .....0......605 teen 26F
`Interfacing with the DIB Engine ............cc0cee ees 268
`The Printing Subsystem. ...... even ca vecbectepeseueecsvnges 269
`Printing Architecture 2.6.0.0... sce ede eee eee ees.. 270
`The Printing Process 0.0.0... cc cece cece deena 270
`Using the Universal Printer Driver.rr 2£1
`GOnchusion..... sci ee eee eae debe ee eee eee ane nes Tae B74
`Raferences...... wee nee eee ee epee eect? 274
`
`CHAPTER SEVEN
`THE FILESYSTEM ...0 0000000. .., 278
`‘Overview of the Architecture... 2.1...eee er genet teeter eee 277
`Long Filename Support............, ate leaer eens be bieeneiaue 281
`Storing Long Filenames ........ detec e eseen b ee unaas 262
`Generating Short Filenames ..........-. beeen Men aes 288
`MS-DOS Support for Long Filenames. .....:..0.0 cece enue 289
`Long Filenames on Other Systems ....... 0.6. ce eee ee ee . 291
`Installable Filesystem Manager........... de See eeeners beens 291
`Calling a Filesystem Driver ............ieee seer aae tenes 293
`Filesystem Drivers 2.2.0. eee ee eee eee“294
`FSD Entry Points ..........Veneta deaeceaes yee eeeaues . 296
`/O Subsystem. ...... pene bebe aaeens bedded a kee bae eee 296
`Device Driver Initialization... ........ 000.00 eeeeueeeeedass BOB
`Controlling an YO Request 0.6.0... cence eeeeen eas-.,, 299
`Calldown Chains... 2... eke eee rn2. 800
`Asynchronous Driver Events... 2... cee eee lene 301
`Interfacing to the Hardware .... 0.0... e cece e eee e cues302.
`Initialization 5... cee cece ee nap eeseens » 302
`Execution ........0....Let ees dete w acer vaneeuece 303
`Interrupt
`o 6. eee eee eee ee eee aee 303 -
`
`xii
`
`Facebook's Exhibit No. 1007
`Page 17
`
`
`
`Tableof Contents
`
`Other Layers in the Filesystem Hierarchy; ....... beer eens baeaee 303
`Volume Tracking Drivers... 20.0000... ne tee aesDenne es »» B04
`Type Specific Drivers oe epee eee eee ees BOB
`SCSI Manager... 2 eee eee te ence ceuues 306
`Real Mode Drivers .......cccccscervecsuvaues we eeeey es 307
`Conclusion......... Pe entree deen eee e ese Vetere aes GOB
`References...... Lat b been crerucae buted ea ebaeae Aeateneae 308
`
`CHAPTER EIGHT
`PLUG AND PLAY ..........00cc cece ee L.. 309
`Why Do We Need Another Standard?.......... Cece ee eeene 310
`History of the Plug and Play Project «2... 00.0.0. cae ewe eee OB
`Goals for Plug and Play... cc i ee enacted O14
`Easy insiallation and Configuration of New Devices ......... 315
`Support for a New Hardware Standard ............... 315
`New ISA Board Standard ......0......06. ales veces OIF
`Seamless Dynamic Configuration Changes .......,.......4 318
`Compatibility with the Installed Base and Old Peripherals... .
`. 319
`Operating System and Hardware Independence..........., 320
`Reduced Complexity and increased Plexiblity cof Hardware ,.. 320
`The Components of Plug and Play ccc. ccc reece aaa eee ees 321
`How the Subsystem Fits Together........ bbb eee ene ene ees 325
`After a System Configuration Change ou... 60... cee 328
`Hardware Tree... 6.2 eee ee rn Seeeteree ss 328-
`Device Nodes. ...i...- cece eee Lede e eka e nana 329
`Device Identifiers ............ wee een ne aay 331
`Hardware Information Databases. 00... cece eee ee 332
`Plug and Play Everts ........ ran ee 333
`. Configuration Manager -:.........64,re 333
`EQMATICIALOTS oo ce eee ee eee a ge eet etanees 334
`Resource Arblitrators.........06. ede tne ee sees eenasanes 335
`Plug and Play BIOS............5022 0005 bee eees rn 336
`Plug and Play Device Drivers. .......... 0.005 ete daeeees 337
`Applications iin a Plug and PlaySystem ........ bebe ese encase
`» 338
`Conclusion... .... Wee eee beeen ee eee ee nen ante pened 339
`References. 0... cee ceca cence ceeeeneeees ... 840
`
`xii
`
`Facebook's Exhibit No. 1007
`Page 18
`
`
`
`INSIDE WINDOWS 95
`
`CHAPTER NINE
`NETWORKING ..........0..00...c00cc cece eee eee 344
`Windows Neiworking History .... 02.0.0. .0. 20202.Lene eae 342
`Networking Goals . 2.0.0... ccs be eed e eaten eeaenee 346
`Network Software Architecture ............ veeees dea k rents 347
`oO bees 348
`Network Layers,.........., enka heb aa eb eaneNea a., 351
`Network Operations 00... cece cece eee ee ee nee ees 353 .
`The Multiple Provider Router .... . ween enna atte nes be eeeenees 365
`32-Bit Networking APIs ...........eben d etme p eee ee eae 357
`Network Resources. ...., 0.0.0.5Levteaee patna ete S57
`Connection ARIS. 0... eee neces 358
`Enumeration APIs... .. Lueaeeieee ecteeaees beneves 359
`Error Reporting APIS... .. 00. 0c cae eee eee in eeas 360
`Local Device Name APIS ........0... 0 ce cece cence 360
`UNG APIS 0.0.0. ct eae eens tana Vee eee tee ee!360
`- Password Cache API ...........bene ete a nate none 360
`Authentication Dialog API... ........-0055ene 1... 861
`Interfacing to the Network Provider .. 00... .. ccc cece eee 364
`The Network Provider ......000.00 00402 cece easeLaat ceeaas 362
`Network Provider Services . 0.00.0... ce cece eae ne aee 363
`Device Redirection SPI, ....... pete e wena eae enaees, 364,
`ShellSPh ow. eee ved beeen eaves tweed tees 365
`Enumeration SPI, ......... Ree e been eee nee e eee 1 365
`Authentication SPI ...... wee eee ee eee e nn peep enes 366
`Network Transports 2.0.6. ce tee ect eee ete BOE
`Network Device Drivers 0... eet e ee teens 368
`Network Driver Compatibility ..0,....0...5., ste naes 1. 369
`Network Configurations. ...... eee b abe p eves ab ae ue euwes 370
`The Network Server... keen ene e ere e eens 372
`Server Componente . 2.0.02. 373
`NetworkPrinting .......0-..6) 065ee eee ee aaa ee feeenes B75
`Network Security 2.00000... ccc c aces ecenvereeraeeeescaens SPF
`ACCESS CONMOIS wk eect eee ... 378
`Share-Level Security......... Seen deen eeenes nee 379
`User-Level Security... 0.00.0... cree eee eee eset aeg ee eees 379
`Conclusion... bene net ee ewesDoves wee eaes 379
`ROEPRTENCE oo ck ce eee tern n tree eben e nee eeey 380
`
`xiv
`
`Facebook's Exhibit No. 1007
`Page 19
`
`
`
`Table of Contenta
`
`CHAPTER TEN
`MOBILE COMPUTING ...00000.00.000000 cee, 381
`Remote Communications Support......... eee eke ewer 382
`Remote Network Access.....0...6 00.065en 385
`Types of Remote Access ..,.........- tne eensnan 385
`The Telephony APL oo keen ee eter eee eebes 389
`Telephony Applications ............., bee bea ana aes 390
`Modem Support ......0..0. Mead acne eee tees eeenes 391
`The Communications Driver .... 0.66... cece cca eee es 392
`The InfoCenter ............... waka eens cea pave e etree BO4
`info Center Applicationsra we eee eee 396
`Messaging APIs ..-...0. 055 date rete e renee aaeee wees, B96
`Messaging Service Providers... 0... .cecc cere eee beens 397
`Portable System Support... 6.0 cee cece eee vee eenieves 398
`Power Management .... 0... eee cece eee ees nes 398
`Docking Station Support... 0.0.20... eee eae sent eeeaeaee 399
`File Synehronization.............Nae beeen cient ese enaee 400
`The Briefcase API...... eben ees cee en eet deaees 403
`Conclusion... 6... cee. ve neee ee eeeees bebe nee ceaes 404
`
`EPILOGUE
`,
`:
`LEAVING CHICAGO ....... sete edie eee ee teen ens 407
`
`GIOSBALY 2 ees Lec neces cree ed eee e cede eee a tees 427
`INAEX oe ceaLeteeeeeden ene en an tananes we AB
`
`Facebook's Exhibit No., 1007
`Page 20
`
`
`
`Facebook's Exhibit No. 1007
`Page 21
`
`
`
`
`
`FOREWORD
`
`Ifrst met Adrian King in 1981, on the floor of a trade show in
`Amsterdam. IT was new to Microsoft-~a small company of75 people
`with $7.5 million in revenues—and I was on myfirst trip to Europe to.
`meet customers and distribution parmers. The trade show turned out
`to be a flop—more. exhibitors than customers. Adrian and I by our
`selves hight have outnumbered the customers.
`We had a lot of time to talk to each other, and J found out that
`Adrian had graduated from the University of Liverpool with a master’s.
`degree in computerscience and had joined Logica, a big European
`consulting outtit, straight out ofschool. Itwas clear right offthat he un-
`derstood technolegy andalot else besides.
`"Wetried fo figure out why the aisleswere so empty, and that got us
`into talking about the future for software. T remember thinking. that
`Adrian was an impressive guy and reflecting that with more people like
`Adrian involved, the software business mightreally take off. But even in
`our freewheeling exchange of ideas, we didn't come close to envision-
`ing today’s incredible market for software.
`A livde later, Adrian managed to convince Logica to branch out
`from their consulting business into sofeware products—no small featat
`the time—and they became Microsoft's European XENIX. partner.
`Throughthe early 1980s, Adrian and | workedtogetherto develop the
`European XENIX business. Then, in April of 1984, we met to review
`XENIX support issues. That's howit started out, anyway. During the
`first half of the meeting, Adrian did his best to convince me that
`Microsoft had to do a number of different things to improve our
`XENIX product support. During the second half, I dict my best to con-
`vince Adrian that hereally ought to become our XENIX product man-
`ager and take care of those things himself. With a little help from Bill
`Gates, I was able to persuadeAdrian to cdo just that.
`Adrian dida greatjob, and before long we gavehim even more to
`do. He eventually became our director of operating systems products,
`picking up responsibilities for MS-DOS and: Microsoft OS/2 as well as
`
`Facebook's Exhibit No. 1007
`Page 22
`
`
`
`INSIDE WINDOWS 35
`
`XENIX. At the same time I was focusing on Windows, which had be-
`come a big priority for the company. We had cometo believe that using
`a mouse with a graphical user interface was a natural, intuitive way to
`use a computer. Adrian worked on the early Windows projects, and in
`November of 1985 I put him in charge. ofWindows/386.
`The effort we putin on the early versions of Windows was a foun-
`dation for the blockbuster success of Windows3.0 and Windows 3.1,
`The workthatAdrian and the rest ofthe team did on the Windows/386
`project formedthe basis for much of Micrasoft’sMS-DOS supportin
`Windows 3.1 and even in Windows NT,for example. And many of the
`people from. that Windows/386 teamare still involved in our Windows
`development today.
`Adrian went on to other important projects at Microsoft, and
`then in 1991 he Jeft to. pursue his interest in peer-to-peernetworking at
`a smaller company. I'm surethat if Adrian were still at Microsoft he'd
`he deeply involvedin. the development ofWindows95. But. at least he's
`back in the Microsoft orbit—this time asa chronicler, the author of
`inside Windows 95,
`Microsoft's goals for Windows 95 are the same goals we’ve had for
`every release of Windows. We want to make computing even easier. We
`wantto increase end user productivity. We want to provide a develop-
`ment platform for the desktop. We want to provide a high-volume, low-
`cost operatingsystem that will spur industry growth andinnovation. We
`believe that Winclows 96 will accomplish these goals and that Windows
`95 will be even more important to the PC world than Windows 3.1, '
`which now has over 60 million users:
`Thelist of great new feaiures for Windows 95, a true 32-bit operat
`ing system,is amazingly long. Windows95 will offer a vastly improved
`user interface, true multitasking, a freshly designed filesystem, better
`contiectivity, better support for notebook PCs, easierinstallation and
`configuration—all with performance at least as good: as Windows 3.1
`performance.
`I'm very excited that Adrian has written this book about our most
`important Windows operating system ever. We're lucky that Adrian
`turned outto be a good writer too because he has a perspective that
`only someonefrom theold days could bring to bear onthehistory and
`the accomplishments of the “Chicago” Windows project. Everyone will
`want to read Inside Windows 95.the interested power user, solution
`providers, developers, and administrators. I heartily recommend this
`
`Facebook's Exhibit No. 1007
`Page 23
`
`
`
`Foreword
`
`book to anyone whowill wantto take full advantage of thetechnologi-
`cal innovations in Windows 95. Adrian doesan excellentjob ofexplain-
`ing the major architectural components-of the system and provides a
`lotof insightinto the thinking behind the design and implementation
`ofWindows 95, I’ve greatly enjoyed reading his accountof the project
`and the productin this book, and I think you will too.
`
`Steve Ballmer
`Executive Vice President, Microsoft
`Redmond, Washington
`August 1994
`
`Facebook's Exhibit No. 1007
`Page 24
`
`
`
`Facebook's Exhibit No. 1007 .
`Page 25
`
`
`
`
`
`PREFACE
`
`Whiting a bouk about a yet to be releasedsoftware product and pub-
`lishing it before the product even ships has to be asking for trouble.
`Throw in otherfactors such as the fact that the product in question is
`one that literally thousands of people will examine and critique in
`minute detail, and you can easily build a case for declining the writing
`opportunity, So, of course, | accepted. Inside Windows 95 is the result.
`When I started working for Microsoft in 1984, I’d already known.
`the company as a customer and developmentpartnerfor a few years.
`One thing I'd learned very quickly about Bill Gates and Steve Ballmer
`is. that they never, ever give up on something they believe in. In 1984
`and 1985, even with massive delays in its initial plannedshipment, Win-
`dows was the somethingthey. weren't giving up on. My first office at
`Microsoft was next to Steve Ballmer’s. One day, after more bad news
`about Windows shipmentdates, he and his assistant packed everything
`up and moved downstairs to occupy new offices in the midst of the Win-
`dows development team (a group maybetenstrong‘atthe time), Steve
`was now the Windows project manager, and he wasn’t aboutto give up.
`Windows 1.0 eventually shipped in late 1985. Describing the
`market's reaction as lukewarm is akin to describing Bill Gates as well
`off. [ rememberinstalling the first Windows Softwaré DevelapmentKit
`onan IBM PC XT and heingat different moments impressed byits fea-
`tures and hewildered by its complexity. Looking back on it now, T can
`see that it was of course sheer madness for Microsoft to believe that
`Windows could succeed on the limited hardware available at the time.
`But Microsoft wasn’t about to give up. Through successive ver.
`sions, Windows gradually got better and the hardware got faster and
`more capacious. In 1987 and 1988 I managed the project that pro-
`duced Windows/386 and launched it on the first 386-based PCS the
`Compaq Deskpro. It was my favorite time at Microsoft, and the entire
`project team~—all fifteen of us—were rather proudofWindows/386, In
`comparison to MS-DOS.it still didn’t sell worth a darn. Even Steve
`Ballmer was beginning to think that OS/2 mightbe the right strategy,
`
`Facebook's Exhibit No. 1007
`Page 26
`
`
`
`INSIDE WIND