throbber
rt I.’
`
`{Q%'»\J ADRIfl' KING
`
`et1 10ner V 1CI‘OSO t
`
`0 Ora 10n
`
`X.
`
`Petitioner Microsoft Corporation, Ex. 1007, p. x
`
`

`
`osoft Corporation, Ex. 1007, Spine
`
`Petitioner Microsoft Corporation, Ex. 1007, Spine
`
`

`
`Potitioner Microsoft Co oration EX. 1007 Title
`
`Petitioner Microsoft Corporation, Ex. 1007, Title
`
`

`
`THE
`
`IN-DEPTH.
`
`STORY BEHIND
`
`WINDows“95—
`
`THE PHILOSOPHY.
`
`DESIGN.
`
`AND ARCHITECTURE
`
`OF THE
`
`NEXT GENERATION
`
`OF MICROSOFT WINDOWS
`
`Petitioner Microsoft Corporation, Ex. 1007, Title
`
`

`
`

`
`I
`
`N
`
`s
`
`I
`
`D
`
`E
`
`ADRIAN KING
`
`Petitioner Microsoft Co oration;i’EX. 1007 Title
`
`Petitioner Microsoft Corporation, Ex. 1007, Title
`
`

`
`PUBLISHED BY
`Microsoft Press
`A Division of Microsoft Corporation
`One Microsoft Way
`Redmond, Washington 98052-6399
`
`Copyright© 1994 by Adrian King
`
`All rights reserved. No part of the contents of this book may be reproduced or
`transmitted in any form or by any means without the written permission of the publisher.
`
`Library of Congress Cataloging-in-Publication Data
`King, Adrian, 1953-
`Inside Windows 95 I Adrian King.
`p.
`em.
`Includes index.
`ISBN 1-55615-626-X
`1. Windows (Computer programs)
`I. Title.
`file)
`QA76.76.W56K56 1994
`005.4' 469--dc20
`
`2. Microsoft Windows (Computer
`
`93-48485
`CIP
`
`Printed and bound in the United States of America.
`
`123456789 QMQM 987654
`
`Distributed to the book trade in Canada by Macmillan of Canada, a division of Canada Publishing
`Corporation.
`
`A CIP catalogue record for this book is available from the British Library.
`
`Microsoft Press books are available through booksellers and distributors worldwide. For further information
`about international editions, contact your local Microsoft Corporation office. Or contact Microsoft Press
`International directly at fax (206) 936-7329.
`
`PageMaker is a registered trademark of Aldus Corporation. Apple, AppleTalk, LaserWriter, Mac,
`Macintosh, and TrueType are registered trademarks of Apple Computer, Inc. LANtastic is a registered
`trademark of Artisoft, Inc. Banyan and Vines are registered trademarks of Banyan Systems, Inc.
`Compaq is a registered trademark of Compaq Computer Corporation. CompuServe is a registered
`trademark of CompuServe, Inc. Alpha AXP, DEC, and Path works are trademarks of Digital Equipment
`Corporation. LAN step is a trademark of Hayes Microcomputer Products, Inc. HP and Laser Jet are
`registered trademarks of Hewlett-Packard Company. Intel is a registered trademark and EtherExpress,
`Pentium, and SX are trademarks oflntel Corporation. COMDEX is a registered trademark oflnterface
`Group-Nevada, Inc. AS/400, IBM, Micro Channel, OS/2, and PS/2 are registered trademarks and PC/
`XT is a trademark of International Business Machines Corporation. 1-2-3, Lotus, and Notes are
`registered trademarks of Lotus Development Corporation. Microsoft, MS, MS-DOS, and XENIX are
`registered trademarks and ODBC, Win32s, Windows, Windows NT, and the Windows operating system
`logo are trademarks of Microsoft Corporation. MIPS is a registered trademark and R4000 is a trade(cid:173)
`mark of MIPS Computer Systems, Inc. NetWare and Novell are registered trademarks of Novell, Inc.
`Soft-Ice/W is a registered trademark ofNu-Mega Technologies, Inc. DESQview is a registered trade(cid:173)
`mark and Qemm is a trademark of Quarterdeck Office Systems. OpenGL is a trademark of Silicon
`Graphics, Inc. PC-NFS, Sun, and Sun Microsystems are registered trademarks of Sun Microsystems, Inc.
`TOPS is a registered trademark of TOPS, a Sun Microsystems company. UNIX is a registered trademark
`of UNIX Systems Laboratories.
`
`Acquisitions Editor: Mike Halvorson
`Project Editor: Erin O'Connor
`Technical Editors: Seth McEvoy and Dail Magee,Jr.
`
`Petitioner Microsoft Corporation, Ex. 1007, Copyright
`
`

`
`CONTENTS SUMMARY
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
`Foreword
`Preface ..................................................... xxi
`Introduction ................................................ xxv
`
`CHAPTER ONE
`THE ROAD TO CHICAGO .................... 1
`CHAPTER TWO
`INTEL PROCESSOR ARCHITECTURE ......... 33
`CHAPTER THREE
`A TOUR OF CHICAGO ..................... 63
`CHAPTER FOUR
`THE BASE SYSTEM ....................... 103
`CHAPTER FIVE
`THE USER INTERFACE AND THE SHELL ...... 157
`CHAPTER SIX
`APPLICATIONS AND DEVICES .............. 223
`CHAPTER SEVEN
`THE FILESYSTEM ........................ 275
`CHAPTER EIGHT
`PLUG AND PLAY ......................... 309
`CHAPTER NINE
`NETWORKING ........................... 341
`CHAPTER TEN
`MOBILE COMPUTING ..................... 381
`EPILOGUE
`LEAVING CHICAGO ...................... 407
`Glossary ................................................... 427
`Index ..................................................... 455
`
`Petitioner Microsoft Corporation, Ex. 1007, Contents Summary
`
`

`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`

`
`TABLE OF CONTENTS
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
`Foreword
`Preface ..................................................... xxi
`Introduction ................................................ xxv
`
`CHAPTER ONE
`THE ROAD TO CHICAGO ......................... 1
`The Mission for Windows 95 .................................. 3
`Help for the End User ................................... 3
`Hardware Platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
`For the Developer-32 Bits at Last ......................... 5
`Shall We Go to Chicago or Cairo? .............................. 6
`First Stop-Chicago .................................... 7
`Clients and Servers ..................................... 8
`And On to Cairo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0
`Summary ............................................ 12
`Project Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
`Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
`The Compatibility Fallback . . . . . . . . . . . . . . . . . . . . . . . . . . 15
`Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
`Robustness-Adieu UAE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
`Timely Product Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
`Easy Setup and Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
`The Plug and Play Initiative ......................... 20
`Configuring Windows .............................. 21
`User-Level Operations ............................. 21
`New Shell and User Interface ............................ 22
`The New Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
`Complete Protected Mode Operating System ............... 23
`32-Bit Application Support .............................. 24
`The Jump to 32 Bits ............................... 26
`Networking and Mobile Computing ....................... 27
`
`Petitioner Microsoft Corporation, Ex. 1007, p. v
`
`

`
`INSIDE WINDOWS 95
`
`Bringing Windows 95 to Market. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
`For Microsoft-The Bottom Line .......................... 30
`Conclusion ............................................... 31
`
`CHAPTER TWO
`INTEL PROCESSOR ARCHITECTURE .......... 33
`Intel Inside ............................................... 34
`The Intel Processor Family .................................. 35
`Backward Compatibility ................................ 36
`Processor Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
`The 8080 and 8086 Processors . . . . . . . . . . . . . . . . . . . . . . . . . . 38
`The 640K Barrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`The 80286 Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
`The 80386 Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
`80386 Memory Addressing .................................. 45
`80386 Descriptor Format ............................... 45
`The Descriptor in Summary . . . . . . . . . . . . . . . . . . . . . . . . . 48
`Virtual Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
`Virtual Memory Management . . . . . . . . . . . . . . . . . . . . . . . . 49
`Good Virtual Memory Management . . . . . . . . . . . . . . . . . . . 50
`Mixing 286 and 386 Programs ........................... 54
`The Protection System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
`Memory Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
`Operating System Protection ............................ 56
`Device Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
`Low-Level Device Access . . . . . . . . . . . . . . . . . . . . . . . . . . 57
`High-Level Device Access .......................... 58
`Using the 80386 Device Protection Capabilities ......... 59
`Virtual 8086 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
`Conclusion ............................................... 61
`
`CHAPTER THREE
`A TOUR OF CHICAGO ........................... &3
`System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
`The Base System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
`Windows and Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
`
`vi
`
`Petitioner Microsoft Corporation, Ex. 1007, p. vi
`
`

`
`Table of Contents
`
`Virtual Machines .......................................... 68
`Windows Virtual Machines .............................. 70
`Initialization ...................................... 70
`The System Virtual Machine ......................... 71
`MS-DOS Virtual Machines .......................... 72
`Protected Mode MS-DOS Applications . . . . . . . . . . . . . . . . . . . . 73
`DPMI ........................................... 74
`Multitasking and Scheduling ................................. 75
`Multitasking Models ................................... 76
`Critical Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
`Processes in Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
`Modules ............................................. 80
`API Support .............................................. 81
`Dynamic Linking ...................................... 82
`Support from the Base System . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
`Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
`Application Virtual Memory .............................. 86
`Heap Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
`Windows 95 Application Memory Management .......... 87
`System Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
`Windows Device Support ................................... 90
`Device Virtualization ................................... 90
`Minidrivers .......................... : . ............... 91
`The Windows Interface ..................................... 92
`What Is a Window? .................................... 92
`Windows 95 User Interface Design ....................... 95
`Windows Programming Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
`Event Driven Programming .............................. 96
`Message Handling .................................... 97
`Program Resources ................................... 99
`Windows 95 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
`Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
`References .............................................. 101
`
`CHAPTER FOUR
`THE BASE SYSTEM .............................. 103
`Windows 95 Diagrammed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 04
`
`vii
`
`Petitioner Microsoft Corporation, Ex. 1007, p. vii
`
`

`
`INSIDE WINDOWS 95
`
`Windows 95 Surveyed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 106
`Protection Rings in Windows 95 . . . . . . . . . . . . . . . . . . . . . . . . . 107
`Windows 95 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
`Tasks and Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
`Virtual Machine Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
`Real MS-DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
`Virtual Machine Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
`The Windows 95 Schedulers . . . . . . . . . . . . . . . . . . . . . . . 114
`Scheduling Within the System Virtual Machine . . . . . . . . . 116
`Controlling the Scheduler .......................... 116
`Threads and UAEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
`Threads and Idle Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
`Application Message Queues . . . . . . . . . . . . . . . . . . . . . . 119
`Physical Memory Management. . . . . . . . . . . . . . . . . . . . . . . . . . 121
`Virtual Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
`Memory Mapped Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
`Reserving Virtual Address Space. . . . . . . . . . . . . . . . . . . . 128
`Private Heaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
`Virtual Machine Manager Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
`Calling Virtual Machine Manager Services ................. 131
`VMM Callbacks .................................. 131
`Loading VxDs ................................... 132
`The Shell VxD ................................... 134
`Getting Around in Ring Zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
`Calling Windows 95 Base OS Services ............... 137
`Calling from One VxD to Another . . . . . . . . . . . . . . . . . . . . 138
`VMM Service Groups ................................. 140
`Application Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
`The API Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
`Mixing 16-Bit and 32-Bit Code . . . . . . . . . . . . . . . . . . . . . . 143
`The Win32 Subsystem ............................ 147
`Internal Synchronization ........................... 149
`Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
`References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
`
`viii
`
`Petitioner Microsoft Corporation, Ex. 1007, p. viii
`
`

`
`Table of Contents
`
`CHAPTER FIVE
`THE USER INTERFACE AND THE SHELL ..... 157
`Improving on Windows 3.0 and 3.1 ........................... 159
`System Configuration and Control . . . . . . . . . . . . . . . . . . . . . . . 160
`Program Manager, File Manager, Task Manager . . . . . . . . 160
`Control Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
`Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
`Visuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
`Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
`Concepts Guiding the New User Interface . . . . . . . . . . . . . . . . . . . . . 165
`The Document-Centric Interface ........................ 166
`Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
`The Windows 95 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
`Folders and Shortcuts in the Windows 95 Shell . . . . . . . . . 170
`Desktop Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
`System Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
`The Initial Desktop ............................... 174
`The Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
`The Taskbar .................................... 179
`On-Screen Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
`Light Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
`Property Sheets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
`Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
`Implementation ...................................... 188
`Design Retrospective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
`The Outside Influences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
`The Development of the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
`Changes in the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
`The Taskbar .................................... 194
`Folders and Browsing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
`Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
`The Transfer Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
`Other Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
`The New Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
`Screen Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
`Visual Elements ...................................... 201
`Scalability ...................................... 201
`
`ix
`
`Petitioner Microsoft Corporation, Ex. 1007, p. ix
`
`

`
`INSIDE WINDOWS 95
`
`Menus ......................................... 202
`Window Buttons ................................. 204
`Icons .......................................... 204
`Proportional Scroll Box and Sizing Handle ............ 205
`New Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
`Tool Bar Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
`Button List Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
`Status Window Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
`Column Heading Control .......................... 207
`Progress Indicator Control ......................... 208
`Slider Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
`Spin Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
`Rich Text Control ........ ' ......................... 209
`Tab Control ..................................... 209
`Property Sheet Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
`List View and Tree View Controls .................... 210
`New Dialog Boxes .................................... 210
`File Open Dialog ................................. 211
`Page Setup Dialog ............................... 213
`Long Filenames .......................................... 213
`Windows 95 Support for MS-DOS Applications ................. 215
`Application Guidelines for Windows 95 ........................ 217
`Follow the Style Guidelines ............................. 218
`Support Long Filenames ............................... 218
`Support UNC Pathnames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
`Register Document and Data Types,
`and Support Drag and Drop . . . . . . . . . . . . . . . . . . . . . . . . . . 218
`Use Common Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
`Reduce Multiple Instances of an Application ............... 219
`Be Consistent with the Shell ............................ 219
`Revise Online Help ................................... 219
`Support OLE Functionality ............................. 220
`Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
`Reference .............................................. 221
`
`X
`
`Petitioner Microsoft Corporation, Ex. 1007, p. x
`
`

`
`Table of Contents
`
`CHAPTER SIX
`APPLICATIONS AND DEVICES ................. 223
`The Win32 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
`Goals for Win32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
`Components of the Win32 API . . . . . . . . . . . . . . . . . . . . . . . . . . 227
`The Win32 API on Windows 95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
`Porting to the Win32 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
`Porting Tools .................................... 229
`API Changes .................................... 230
`Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
`Version Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
`Nonportable APis ................................ 233
`Win32 on Windows 95. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
`Security APis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
`Console APis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
`32-Bit Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . 235
`Unicode APis ................................... 235
`Server APis ..................................... 236
`Printer Support .................................. 236
`Service Control Manager APis . . . . . . . . . . . . . . . . . . . . . . 236
`Event Logging .................................. 236
`Detailed Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
`Programming for Windows 95 ............................... 238
`Multitasking ......................................... 238
`Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
`Plug and Play Support ................................ 241
`The Registry ........................................ 242
`The User Interface ................................... 245
`OLE ............................................... 245
`International Support ................................. 248
`Structured Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 249
`The Graphics Device Interface .............................. 252
`GDI Architecture ..................................... 255
`Performance Improvements ........................ 256
`Limit Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
`New Graphics Features ........................... 257
`
`xi
`
`Petitioner Microsoft Corporation, Ex. 1007, p. xi
`
`

`
`INSIDE WINDOWS 95
`
`TrueType ....................................... 258
`Metafile Support ................................. 258
`Image Color Matching ................................ 259
`Color Profiles ................................... 261
`Communicating Color Information ................... 261
`The Display Subsystem .................................... 262
`The DIB Engine ...................................... 265
`The Display Mini-Driver ................................ 266
`Bank-Switched Video Adapters ..................... 267
`Interfacing with the DIB Engine ..................... 268
`The Printing Subsystem .................................... 269
`Printing Architecture .................................. 270
`The Printing Process .................................. 270
`Using the Universal Printer Driver ........................ 272
`Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4
`References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4
`
`CHAPTER SEVEN
`THE FILESYSTEM ................................ 275
`Overview of the Architecture ................................ 277
`Long Filename Support .................................... 281
`Storing Long Filenames ............................... 282
`Generating Short Filenames ............................ 288
`MS-DOS Support for Long Filenames ..................... 289
`Long Filenames on Other Systems ....................... 291
`lnstallable Filesystem Manager .............................. 291
`Calling a Filesystem Driver ............................. 293
`Filesystem Drivers ........................................ 294
`FSD Entry Points ..................................... 295
`1/0 Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
`Device Driver Initialization .............................. 298
`Controlling an 1/0 Request ............................. 299
`Calldown Chains ................................. 300
`Asynchronous Driver Events ............................ 301
`Interfacing to the Hardware ............................ 302
`Initialization ..................................... 302
`Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
`Interrupt ....................................... 303
`
`xii
`
`Petitioner Microsoft Corporation, Ex. 1007, p. xii
`
`

`
`Table of Contents
`
`Other Layers in the Filesystem Hierarchy ...................... 303
`Volume Tracking Drivers ............................... 304
`Type Specific Drivers ................................. 305
`SCSI Manager ....................................... 306
`Real Mode Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
`Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
`References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
`
`CHAPTER EIGHT
`PLUG AND PLAY ................................. 309
`Why Do We Need Another Standard? ..................... 310
`History of the Plug and Play Project .......................... 312
`Goals for Plug and Play .................................... 314
`Easy Installation and Configuration of New Devices ......... 315
`Support for a New Hardware Standard ............... 315
`New ISA Board Standard .......................... 317
`Seamless Dynamic Configuration Changes ................ 318
`Compatibility with the Installed Base and Old Peripherals ..... 319
`Operating System and Hardware Independence ............ 320
`Reduced Complexity and Increased Flexibility of Hardware ... 320
`The Components of Plug and Play ........................... 321
`How the Subsystem Fits Together ........................ 325
`After a System Configuration Change .. _; .............. 328
`Hardware Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
`Device Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
`Device Identifiers ................................ 331
`Hardware Information Databases ........................ 332
`Plug and Play Events ................................. 333
`Configuration Manager ................................ 333
`Enumerators ........................................ 334
`Resource Arbitrators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
`Plug and Play BIOS ................................... 336
`Plug and Play Device Drivers ........................... 337
`Applications in a Plug and Play System ....................... 338
`Conclusion .............................................. 339
`References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
`
`xiii
`
`Petitioner Microsoft Corporation, Ex. 1007, p. xiii
`
`

`
`INSIDE WINDOWS 95
`
`CHAPTER NINE
`NETWORKING .................................... 341
`Windows Networking History ........................... 342
`Networking Goals ........................................ 346
`Network Software Architecture .............................. 347
`WOSA ............................................. 348
`Network Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
`Network Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
`The Multiple Provider Router ................................ 355
`32-Bit Networking APis ................................ 357
`Network Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
`Connection APis ................................. 358
`Enumeration APis ................................ 359
`Error Reporting APis .............................. 360
`Local Device Name APis .......................... 360
`UNC APis ...................................... 360
`Password Cache API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
`Authentication Dialog API .......................... 361
`Interfacing to the Network Provider ...................... 361
`The Network Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
`Network Provider Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
`Device Redirection SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
`Shell SPI ....................................... 365
`Enumeration SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
`Authentication SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
`Network Transports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
`Network Device Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
`Network Driver Compatibility ....................... 369
`Network Configurations ................................ 370
`The Network Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
`Server Components .................................. 373
`Network Printing ......................................... 375
`Network Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
`Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
`Share-Level Security .................................. 379
`User-Level Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
`Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
`Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
`
`xiv
`
`Petitioner Microsoft Corporation, Ex. 1007, p. xiv
`
`

`
`Table of Contents
`
`CHAPTER TEN
`MOBILE COMPUTING ........................... 381
`Remote Communications Support ............................ 382
`Remote Network Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
`Types of Remote Access .......................... 386
`The Telephony API ................................... 389
`Telephony Applications ........................... 390
`Modem Support ..................................... 391
`The Communications Driver ............................ 392
`The Info Center .......................................... 394
`Info Center Applications ............................... 396
`Messaging APis ..................................... 396
`Messaging Service Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
`Portable System Support ................................... 398
`Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
`Docking Station Support ............................... 399
`File Synchronization ....................................... 400
`The Briefcase API .................................... 403
`Conclusion .............................................. 404
`
`EPILOGUE
`LEAVING CHICAGO ............................. 407
`
`Glossary ................................................... 427
`Index ..................................................... 455
`
`XV
`
`Petitioner Microsoft Corporation, Ex. 1007, p. xv
`
`

`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`

`
`FOREWORD
`
`I first met Adrian King in 1981, on the floor of a trade show in
`Amsterdam. I was new to Microsoft-a small company of 75 people
`with $7.5 million in revenues-and I was on my first trip to Europe to
`meet customers and distribution partners. The trade show turned ou

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