- Used Books
- Staff Picks
- Gifts & Gift Cards
- Sell Books
- Stores & Events
- Let's Talk Books
Special Offers see all
More at Powell's
Recently Viewed clear list
This item may be
Check for Availability
Win32 System Programming with CDROM
Synopses & Reviews
A practical guide to the central features and functions of the Win32 API, Win32 System Programming, Second Edition, will get you up and running with Windows NT and Windows 2000. Unlike most Windows programming resources, this book focuses exclusively on the core system services--file system, memory, processes, communication, and security--rather than on the more commonly featured graphical user interface functions. Especially geared for those already familiar with UNIX or other high-end operating systems, Win32 System Programming, Second Edition, helps you to build on your knowledge base to learn Win32 features quickly and easily.
This new edition has been updated and enhanced with new coverage of network programming, servers, NT services, thread performance, and synchronization. It also offers a preview of Win64, the new 64-bit API for Windows 2000. Beginning with an examination of the features required in a single-process application, the text gradually progresses to increasingly sophisticated functions relating to a multithreaded environment. You will find extensive coverage of such critical Win32 topics as:
Win32 System Programming, Second Edition, will give you a solid grounding in the core operating system functions of the Windows environment, an understanding of Win64 for Windows 2000, and the know-how you need to put them to work.
Book News Annotation:
For those UNIX programmers and computer science students grudgingly or otherwise accepting that Windows has taken over as the computer platform of choice, Hart (Peritus Software Services and consultant) provides a guide to the essentials of Windows 95, Windows NT, and Win32 system programming. He probes the mysteries of: the Win32 file system and character I/O, direct file access and attributes, structured exception handling, memory management, security, process management, interprocess communication, threads and scheduling, Win32 synchronization, dynamic link libraries, asynchronous I/O, performance results, and Win32, UNIX and C library comparisons. Includes notes on using the sample CD-ROM programs and, unusual for computer books, a bibliography.
Annotation c. Book News, Inc., Portland, OR (booknews.com)
System requirements for accompanying computer disc: Windows 95 or Windows NT; a C compiler and development system, such as Microsoft Visual C++ version 4.0 or greater. Includes bibliographical references (p. 345-347) and index.
About the Author
Johnson M. Hart is a software trainer and consultant specializing in Windows, L inux, and UNIX application development, enhancement, and maintenance. John develops and delivers professional training courses and seminars to clients worldwide, and he is the author of numerous technical articles.
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.
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.
Opening, Reading, Writing, and Closing Files.
Interlude: Unicode and Generic Characters.
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.
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.
Example: Listing Registry Keys and Contents.
4. Structured Exception Handling.
Exceptions and Their Handlers.
Errors and Exceptions.
Example: Treating Errors as Exceptions.
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 Overview: The Security Descriptor.
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.
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.
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.
8. Threads and Scheduling.
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.
Pitfalls and Common Mistakes.
9. 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.
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.
Example: I/O Redirection Using an Anonymous Pipe.
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.
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.
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.
Notes on Debugging a Service.
14. Asynchronous Input/Output and Completion Ports.
Overview of Win32 Asynchronous 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.
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.
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.
Running the Tests.
What Our Readers Are Saying