Windows System Programming (4th Edition) (Addison-Wesley Microsoft Technology Series)
معرفی کتاب «Windows System Programming (4th Edition) (Addison-Wesley Microsoft Technology Series)» نوشتهٔ [英] 亚当·斯密، 译者: 杨敬年 و Johnson M. Hart، منتشرشده توسط نشر Addison-Wesley Professional در سال 2010. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
__"If you're writing a native Win32 program or just want to know what the OS is really doing underneath, you need John's book. He covers the stuff that real systems programmers absolutely must know. Recommended."____"This fourth edition does a great job of incorporating new features in the Vista, Windows 2008, and Windows 7 API, but also stays true to teaching the foundational elements of building applications that target the Windows OS."__**The Definitive Guide to Windows API Programming, Fully Updated for Windows 7, Windows Server 2008, and Windows Vista**now contains extensive new coverage of 64-bit programming, parallelism, multicore systems, and many other crucial topics. Johnson Hart's robust code examples have been updated and streamlined throughout. They have been debugged and tested in both 32-bit and 64-bit versions, on single and multiprocessor systems, and under Windows 7, Vista, Server 2008, and Windows XP. To clarify program operation, sample programs are now illustrated with dozens of screenshots. Hart systematically covers Windows externals at the API level, presenting practical coverage of all the services Windows programmers need, and emphasizing how Windows functions actually behave and interact in real-world applications. Hart begins with features used in single-process applications and gradually progresses to more sophisticated functions and multithreaded environments. Topics covered include file systems, memory management, exceptions, processes, threads, synchronization, interprocess communication, Windows services, and security. New coverage in this edition includesLeveraging parallelism and maximizing performance in multicore systems Promoting source code portability and application interoperability across Windows, Linux, and UNIX Using 64-bit address spaces and ensuring 64-bit/32-bit portability Improving performance and scalability using threads, thread pools, and completion ports Techniques to improve program reliability and performance in all systems Windows performance-enhancing API features available starting with Windows Vista, such as slim reader/writer locks and condition variables A companion Web site,, contains all sample code, Visual Studio projects, additional examples, errata, reader comments, and Windows commentary and discussion. Contents Figures Tables Programs Program Runs Preface About the Author CHAPTER 1 Getting Started with Windows Operating System Essentials Windows Evolution Windows Versions The Windows Market Role Windows, Standards, and Open Systems Windows Principles 32-bit and 64-bit Source Code Portability The Standard C Library: When to Use It for File Processing What You Need to Use This Book Example: A Simple Sequential File Copy Summary Exercises CHAPTER 2 Using the Windows File System and Character I/O The Windows File Systems File Naming Opening, Reading, Writing, and Closing Files Interlude: Unicode and Generic Characters Unicode Strategies Example: Error Processing Standard Devices Example: Copying Multiple Files to Standard Output Example: Simple File Encryption File and Directory Management Console I/O Example: Printing and Prompting Example: Printing the Current Directory Summary Exercises CHAPTER 3 Advanced File and Directory Processing, and the Registry The 64-Bit File System File Pointers Getting the File Size Example: Random Record Updates File Attributes and Directory Processing Example: Listing File Attributes Example: Setting File Times File Processing Strategies File Locking The Registry Registry Management Example: Listing Registry Keys and Contents Summary Exercises CHAPTER 4 Exception Handling Exceptions and Their Handlers Floating-Point Exceptions Errors and Exceptions Example: Treating Errors as Exceptions Termination Handlers Example: Using Termination Handlers to Improve Program Quality Example: Using a Filter Function Console Control Handlers Example: A Console Control Handler Vectored Exception Handling Summary Exercises CHAPTER 5 Memory Management, Memory-Mapped Files, and DLLs Windows Memory Management Architecture Heaps Managing Heap Memory Example: Sorting Files with a Binary Search Tree Memory-Mapped Files Example: Sequential File Processing with Mapped Files Example: Sorting a Memory-Mapped File Example: Using Based Pointers Dynamic Link Libraries Example: Explicitly Linking a File Conversion Function The DLL Entry Point DLL Version Management Summary Exercises CHAPTER 6 Process Management Windows Processes and Threads Process Creation Process Identities Duplicating Handles Exiting and Terminating a Process Waiting for a Process to Terminate Environment Blocks and Strings Example: Parallel Pattern Searching Processes in a Multiprocessor Environment Process Execution Times Example: Process Execution Times Generating Console Control Events Example: Simple Job Management Example: Using Job Objects Summary Exercises CHAPTER 7 Threads and Scheduling Thread Overview Thread Basics Thread Management Using the C Library in Threads Example: Multithreaded Pattern Searching Performance Impact The Boss/Worker and Other Threading Models Example: Merge-Sort—Exploiting Multiple Processors Introduction to Program Parallelism Thread Local Storage Process and Thread Priority and Scheduling Thread States Pitfalls and Common Mistakes Timed Waits Fibers Summary Exercises CHAPTER 8 Thread Synchronization The Need for Thread Synchronization Thread Synchronization Objects CRITICAL_SECTION Objects A CRITICAL_SECTION for Protecting Shared Variables Example: A Simple Producer/Consumer System Mutexes Semaphores Events Example: A Producer/Consumer System More Mutex and CRITICAL_SECTION Guidelines More Interlocked Functions Memory Management Performance Considerations Summary Exercises CHAPTER 9 Locking, Performance, and NT6 Enhancements Synchronization Performance Impact A Model Program for Performance Experimentation Tuning Multiprocessor Performance with CS Spin Counts NT6 Slim Reader/Writer Locks Thread Pools to Reduce Thread Contention I/O Completion Ports NT6 Thread Pools Summary: Locking Performance Parallelism Revisited Processor Affinity Performance Guidelines and Pitfalls Summary Exercises CHAPTER 10 Advanced Thread Synchronization The Condition Variable Model and Safety Properties Using SignalObjectAndWait Example: A Threshold Barrier Object A Queue Object Example: Using Queues in a Multistage Pipeline Windows NT6 Condition Variables Asynchronous Procedure Calls Queuing Asynchronous Procedure Calls Alertable Wait States Safe Thread Cancellation Pthreads for Application Portability Thread Stacks and the Number of Threads Hints for Designing, Debugging, and Testing Beyond the Windows API Summary Exercises CHAPTER 11 Interprocess Communication Anonymous Pipes Example: I/O Redirection Using an Anonymous Pipe Named Pipes Named Pipe Transaction Functions Example: A Client/Server Command Line Processor Comments on the Client/Server Command Line Processor Mailslots Pipe and Mailslot Creation, Connection, and Naming Example: A Server That Clients Can Locate Summary Exercises CHAPTER 12 Network Programming with Windows Sockets Windows Sockets Socket Server Functions Socket Client Functions Comparing Named Pipes and Sockets Example: A Socket Message Receive Function Example: A Socket-Based Client Example: A Socket-Based Server with New Features In-Process Servers Line-Oriented Messages, DLL Entry Points, and TLS Example: A Thread-Safe DLL for Socket Messages Example: An Alternative Thread-Safe DLL Strategy Datagrams Berkeley Sockets versus Windows Sockets Overlapped I/O with Windows Sockets Windows Sockets Additional Features Summary Exercises CHAPTER 13 Windows Services Writing Windows Services—Overview The main( ) Function ServiceMain( ) Functions The Service Control Handler Event Logging Example: A Service “Wrapper” Managing Windows Services Summary: Service Operation and Management Example: A Service Control Shell Sharing Kernel Objects with a Service Notes on Debugging a Service Summary Exercises CHAPTER 14 Asynchronous Input/Output and Completion Ports Overview of Windows Asynchronous I/O Overlapped I/O Example: Synchronizing on a File Handle Example: File Conversion with Overlapped I/O and Multiple Buffers Extended I/O with Completion Routines Example: File Conversion with Extended I/O Asynchronous I/O with Threads Waitable Timers Example: Using a Waitable Timer I/O Completion Ports Example: A Server Using I/O Completion Ports Summary Exercises CHAPTER 15 Securing Windows Objects Security Attributes Security Overview: The Security Descriptor Security Descriptor Control Flags Security Identifiers Managing ACLs Example: UNIX-Style Permission for NTFS Files Example: Initializing Security Attributes Reading and Changing Security Descriptors Example: Reading File Permissions Example: Changing File Permissions Securing Kernel and Communication Objects Example: Securing a Process and Its Threads Overview of Additional Security Features Summary Exercises APPENDIX A: Using the Sample Programs Examples File Organization APPENDIX B: Source Code Portability: Windows, UNIX, and Linux Source Code Portability Strategies Windows Services for UNIX Source Code Portability for Windows Functionality Chapters 2 and 3: File and Directory Management Chapter 4: Exception Handling Chapter 5: Memory Management, Memory-Mapped Files, and DLLs Chapter 6: Process Management Chapter 7: Threads and Scheduling Chapters 8–10: Thread Synchronization Chapter 11: Interprocess Communication Chapter 14: Asynchronous I/O Chapter 15: Securing Windows Objects APPENDIX C: Performance Results Test Configurations Performance Measurements Running the Tests Bibliography Index A B C D E F G H I J K L M N O P Q R S T U V W The Definitive Guide to Windows API Programming, Fully Updated for Windows 7, Windows Server 2008, and Windows Vista Windows System Programming, Fourth Edition, now contains extensive new coverage of 64-bit programming, parallelism, multicore systems, and many other crucial topics. Johnson Hart's robust code examples have been updated and streamlined throughout. They have been debugged and tested in both 32-bit and 64-bit versions, on single and multiprocessor systems, and under Windows 7, Vista, Server 2008, and Windows XP. To clarify program operation, sample programs are now illustrated with dozens of screenshots. Hart systematically covers Windows externals at the API level, presenting practical coverage of all the services Windows programmers need, and emphasizing how Windows functions actually behave and interact in real-world applications. Hart begins with features used in single-process applications and gradually progresses to more sophisticated functions and multithreaded environments. Topics covered include file systems, memory management, exceptions, processes, threads, synchronization, interprocess communication, Windows services, and security. New coverage in this edition includes Leveraging parallelism and maximizing performance in multicore systems Promoting source code portability and application interoperability across Windows, Linux, and UNIX Using 64-bit address spaces and ensuring 64-bit/32-bit portability Improving performance and scalability using threads, thread pools, and completion ports Techniques to improve program reliability and performance in all systems Windows performance-enhancing API features available starting with Windows Vista, such as slim reader/writer locks and condition variables A companion Web site, jmhartsoftware.com, contains all sample code, Visual Studio projects, additional examples, errata, reader comments, and Windows commentary and discussion. The Definitive Guide To Programming With The Windows Api - Now Updated For Microsoft's Latest Apis And Best Practices • •includes Extensive New Coverage Of Win64, Parallelism, Multicore System Performance, Source Code Portability, .net Coexistence, Security, Benchmarking, And Much More. •updated, Streamlined Code Examples Reflect Today's Most Effective Windows Programming Techniques. •the Perfect Practical Complement To Mark Russinovich's Windows Internals Windows System Programming, 4/e Is The Definitive Developer's Guide To Making The Most Of Of The Core Windows Api, Including Those Introduced With Windows Vista, Windows Server 2008, And Beyond. Thoroughly Updated To Reflect Microsoft's New Apis, This Book Focuses On Essential Core System Services -- File System, Memory, Processes And Threads, Synchronization, Communication, And Security -- Rather Than The More Commonly Featured Graphical User Interface Functions. Beginning With An Examination Of The Features Required In A Single-process Application, The Text Gradually Progresses To Increasingly Sophisticated Functions And Multithreaded Environments. Each Chapter Contains Realistic Examples, And This Edition's Code Samples Have Been Updated And Streamlined To Reflect Today's Best Practices For Windows Development And 64-bit Code Portability. This Edition's Extensive New Coverage Includes: ' An All-new Chapter On Parallelism And Performance In Multicore Systems ' Detailed New Coverage Of Source Code Portability Across Windows, Linux, And Unix ' New Coverage Of .net And Managed Code Impact And Co-existence ' When, Why, And How To Use The Windows Api Vs. .net ' More Coverage Of Security, Benchmarking, And Other Key Topics. Many Readers Have Noted That Hart's Book Perfectly Complements Mark Russinovich's Well-known Windows Internals. Hart Shows Us How To Make The Most Of The Features That Russinovich Describes.
دانلود کتاب Windows System Programming (4th Edition) (Addison-Wesley Microsoft Technology Series)