throbber
ADRIAN KING
`
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket