Windows System Programming, 3/e (Hardcover)

Johnson M. Hart

  • 出版商: Addison-Wesley Professional
  • 出版日期: 2004-11-05
  • 售價: $900
  • 語言: 英文
  • 頁數: 576
  • 裝訂: Hardcover
  • ISBN: 0321256190
  • ISBN-13: 9780321256195

限量商品 (庫存=8)

買這商品的人也買了...

商品描述

Table of Contents:

Figures.

Tables.

Programs.

Preface.

1. Getting Started with Win32 and Win64.

    Operating System Essentials.

    Windows Evolution.

    Windows Versions.

    The Windows Market Role.

    Windows, Standards, and Open Systems.

    Windows Principles.

    Getting Ready for Win64.

    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.

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.

    Standard Devices and Console I/O.

    Example: Printing and Prompting.

    Example: Error Processing.

    Example: Copying Multiple Files to Standard Output.

    Example: ASCII to Unicode Conversion.

    File and Directory Management.

    Example: Printing the Current Directory.

    Summary.

    Exercises.

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.

    Mount Points.

    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.

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.

5. Memory Management, Memory-Mapped Files, and DLLs.

    Win32 and Win64 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.

6. Process Management.

    Windows Processes and Threads.

    Process Creation.

    Process Handle Counts.

    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.

    Job Objects.

    Summary.

    Exercises.

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-Divide and Conquer to Exploit SMP.

    Thread Local Storage.

    Process and Thread Priority and Scheduling.

    Thread States.

    Pitfalls and Common Mistakes.

    Timed Waits.

    Fibers.

    Summary.

    Exercises.

8. Thread Synchronization.

    The Need for Thread Synchronization.

    Thread Synchronization Objects.

    The CRITICAL_SECTION Object.

    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.

9. Synchronization Performance Impact and Guidelines.

    Synchronization Performance Impact.

    A Model Program for Performance Experimentation.

    Tuning SMP Performance with CS Spin Counts.

    Semaphore "Throttles" to Reduce Thread Contention.

    Processor Affinity.

    I/O Completion Ports.

    Performance Guidelines and Pitfalls.

    Summary.

    Exercises.

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.

    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.

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.

    Comments on Thread Models.

    Summary.

    Exercises.

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 vs. Windows Sockets.

    Overlapped I/O with Windows Sockets.

    Windows Sockets 2.

    Summary.

    Exercises.

13. Windows Services.

    Writing Windows Services-Overview.

    The main() Function.

    The ServiceMain() Functions.

    The Service Control Handler.

    Example: A Service "Wrapper".

    Managing Windows Services.

    Summary: Service Operation and Management.

    Example: A Service Control Shell.

    Sharing Kernel Objects with a Service.

    Event Logging.

    Notes on Debugging a Service.

    Summary.

    Exercises.

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.

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.

16. Win64 Programming.

    Current Win64 Status.

    64-Bit Architecture Overview.

    The Win64 Programming Model.

    The Data Types.

    Legacy Code Migration.

    Example: Migrating sortMM (Program 5-5).

    Summary.

    Exercises.

Appendix A. Using the Sample Programs.

    Web Site Organization.

    Include File Listings.

    Additional Utility Programs.

Appendix B. Windows, UNIX, and C Library Comparisons.

    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.