Win32 System Programming: A Windows 2000 Application Developer's Guide, 2/e (Hardcover)

Johnson M. Hart

  • 出版商: Addison Wesley
  • 出版日期: 2000-09-22
  • 售價: $2,280
  • 貴賓價: 9.5$2,166
  • 語言: 英文
  • 頁數: 544
  • 裝訂: Hardcover
  • ISBN: 0201703106
  • ISBN-13: 9780201703108
  • 已過版
    無現貨庫存(No stock available)




The expert guide to serious Win32 server-side and system programming -- now completely updated for Windows 2000.

  • Includes up-to-the-minute coverage of the coming migration to Win64.
  • Specific techniques for porting UNIX/Linux applications to Win32.
  • Doesn't waste time on topics experienced system programmers already understand or don't care about!
Win32 System Programming, Second Edition focuses exclusively on non-GUI Windows system programming, helping experienced system programmers make the most of Win32 fast -- whether they're migrating UNIX applications, building new server-side software, or addressing other difficult technical challenges. This new edition is fully updated to reflect Windows 2000, with valuable new coverage of network programming, threading, synchronization, the forthcoming Win64 migration, and other issues critical to high-end enterprise development. Each chapter ends with a detailed example that shows how its techniques are used in real-world systems, as well as hands-on exercises. Expert system programmer Johnson Hart assumes developers are familiar with "generic concepts" by now, and focuses instead on the specific issues they will face in maximizing the performance and reliability of their high-end Win32 server and system applications. For all developers who need to develop reliable, high-performance Win32 applications fast -- especially those familiar with UNIX, VMS, MVS, or other high-end operating systems. Previous Edition 0-201-63465-1

Johnson Hart is a consultant specializing in distributed computing and software engineering. He is also a Technical Fellow for Peritus Software Services. Hart is co-author of Client/Server Computing for Technical Professionals: Concepts and Solutions (Addison-Wesley).

Back to Top

Appropriate Courses

Windows Programming.

Back to Top

Table Of Contents

1. Getting Started with Win32 and Win64.
Operating System Essentials.
Win32 and Windows 2000, NT, 9x, and CE.
Win32, Standards, and Open Systems.
Win32 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.

2. Using the Win32 File System and Character I/O.
The Win32 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.

3. Advanced File and Directory Processing, and the Registry.
The 64-Bit File System.
File Pointers.
Getting the File Size.
Example: Viewing the Tail of a File.
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.

4. Structured 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.

5. Securing Win32 Objects.
Security Attributes.
Security Overview: The Security Descriptor.
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.
Overview of Additional Security Features.

6. Memory Management, Memory-Mapped Files, and DLLs.
Win32 Memory Management Architecture.
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.

7. 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.
Process Execution Times.
Example: Process Execution Times.
Generating Console Control Events.
Example: Simple Job Management.
Job Objects.

8. Threads and Scheduling.
Thread Overview.
Thread Basics.
Thread Management.
Using the C Library in Threads.
Example: Multithreaded Pattern Searching.
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.

9. Thread Synchronization.
The Need for Thread Synchronization.
Thread Synchronization Objects.
A CRITICAL_SECTION for Protecting Shared Variables.
Example: A Simple Producer/Consumer System.
Example: A Producer/Consumer System.
Example: Synchronization Performance Impact.
More Mutex and CRITICAL_SECTION Guidelines.
More Interlocked Functions.
Memory Management Performance Considerations.

10. Advanced Thread Synchronization.
Mutexes, Events, and the Condition Variable Model.
Example: A Threshold Barrier Object.
A Queue Object.
Example: Using Queues in a Multistage Pipeline.
Hints for Designing, Debugging, and Testing.

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.
Pipe and Mailslot Creation, Connection, and Naming.
Example: A Server That Clients Can Locate.
Comments on Thread Models.

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 Services.
Line-Oriented Messages, DLL Entry Points, and TLS.
Example: A Thread-Safe DLL for Socket Messages.
Example: An Alternative Thread-Safe DLL Strategy.
Berkeley vs. Windows Sockets.
Overlapped I/O with Windows Sockets.
Windows Sockets 2.

13. NT Services.
Writing NT Services — Overview.
The Main Function.
The ServiceMain Functions.
The Service Control Handler.
Example: A Service "Wrapper".
Managing Windows NT Services.
Summary: Service Operation and Management.
Example: A Service Control Shell.
Sharing Kernel Objects with a Service.
Event Logging.
Notes on Debugging a Service.

14. Asynchronous Input/Output and Completion Ports.
Overview of Win32 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.

15. Remote Procedure Calls and COM Overview.
Remote Procedure Calls.
Basic RPC Architecture.
RPC Interface Definitions.
Example: An Interface Definition.
Example: An RPC Client.
Example: An RPC Server.
A Brief COM and DCOM Overview.

16. Win64 Programming.
64-Bit Architecture Overview.
The Win64 Programming Model.
The Data Types.
The Three Win64 Programming Models.
Legacy Code Migration.

Appendix A: Using the Sample Programs.
Disc Organization.
Include File Listings.
Additional Utility Programs.

Appendix B: Win32, UNIX, and C Library Comparisons.
Chapters 2 and 3: File and Directory Management.
Chapter 4: Structured Exception Handling.
Chapter 5: Securing Win32 Objects.
Chapter 6: Memory Management, Memory-Mapped Files, and DLLs.
Chapter 7: Process Management.
Chapter 8: Threads and Scheduling.
Chapters 9 and 10: Thread Synchronization.
Chapter 11: Interprocess Communication.
Chapter 14: Asynchronous I/O.

Appendix C: Performance Results.
Test Configurations.
Performance Measurements.
Running the Tests.

Index. 0201703106T04062001

Back to Top