Microsoft KB Archive/89989

= List of Articles for Win32 Base Programming Issues =

ID: Q89989

The information in this article applies to:

Microsoft Win32 Application Programming Interface (API) included with:

- Microsoft Windows NT versions 3.1, 3.5, and 3.51 - Microsoft Windows 95 version 4.0

INSTRUCTIONS
Microsoft FastTips is available 24 hours a day, 7 days a week, from a touch-tone telephone. To order items from this catalog, first select the items you want to receive, noting the five- to six-digit number of the Item ID shown below for each item, and then:


 * Dial the toll-free FastTips number (800) 936-4300.
 * When prompted, select the Win32 Software Development Kit.
 * Press one (1) on your phone keypad to select Express Order Service.
 * When prompted, select the delivery method, fax.
 * When prompted, enter your three-digit area code and seven-digit fax number on your phone keypad.
 * When prompted, enter the number of the Item ID and press #, for up to five items.

When finished, simply hang up. If you have problems receiving a fax, please call (425) 635-3105.

ARTICLE LISTING
ITEM ID ARTICLE TITLE                                               PAGES Q 83298 Objects Inherited Through a CreateProcess Call                  1 Q 83670 Correct Use of Try/Finally                                      2 Q 83706 Exporting Callback Functions                                    1 Q 84240 Consoles Do Not Support ANSI Escape Sequences                   1 Q 84244 Processes Maintain Only One Current Directory                   1

Q 89296 How HEAPSIZE/STACKSIZE Commit > Reserve Affects Execution       1 Q 89373 Replacing the Windows NT Task Manager                           1 Q 89750 AllocConsole Necessary to Get Valid Handles                   1 Q 89817 How to Specify Shared and Nonshared Data in a DLL               1 Q 90083 Windows NT Servers in Locked Closets                            2

Q 90088 CreateFile Using CONOUT$ or CONIN$                            1 Q 90368 Canceling Overlapped I/O                                        1 Q 90470 Getting Real Handle to Thread/Process Requires Two Calls        1 Q 90493 Determining Whether an Application is Console or GUI            4 Q 90530 Exporting Data from a DLL or an Application                     2

Q 90745 Dynamic Loading of Win32 DLLs                                   2 Q 90749 Implementing a &quot;Kill&quot; Operation in Windows NT                   2 Q 90837 Default Attributes for Console Windows                          1 Q 90910 Win32 Priority Class Mechanism and the START Command            1 Q 91146 PRB: SEH with Abort in the try Body                           1

Q 91147 PRB: SEH with return in the finally Body Preempts Unwind        2 Q 91149 Using volatile to Prevent Optimization of try/except            1 Q 91150 Icons for Console Applications                                  1 Q 91194 Memory Handle Allocation                                        1 Q 91698 Sharing Win32 Services                                          1

Q 92395 Determining System Version from a Win32-based Application       3 Q 92761 Process Will Not Terminate Unless System Is In User-mode        1 Q 92764 Non-Addressable Range in Address Space                          1 Q 92862 Alternatives to Using GetProcAddress With LoadLibrary       1 Q 94239 Secure Erasure Under Windows NT                                 1

Q 94561 WM_COMMNOTIFY is Obsolete for Win32-Based Applications          1 Q 94804 Thread Local Storage Overview                                   2 Q 94839 Precautions When Passing Security Attributes                    1 Q 94840 Physical Memory Limits Number of Processes/Threads              1 Q 94920 Calculating String Length in Registry                           1

Q 94947 PAGE_READONLY May Be Used as Discardable Memory                 1 Q 94950 Clarification of COMMPROP dwMax?xQueue Members                  1 Q 94990 OpenComm and Related Flags Obsolete Under Win32               1 Q 94993 Global Quota for Registry Data                                  2 Q 94996 VirtualLock Only Locks Pages into Working Set                 1

Q 94997 Reducing the Count on a Semaphore Object                        1 Q 94998 Trapping Floating-Point Exceptions in a Win32-based App         1 Q 94999 FormatMessage Converts GetLastError Codes                   1 Q 95043 FlushViewOfFile on Remote Files                               1 Q 95900 Interprocess Communication on Windows NT, Windows 95, & Win32s 2

Q 96005 Validating User Accounts (Impersonation)                        2 Q 96209 Chaining Parent PSP Environment Variables                       1 Q 96242 Distinguishing Between Keyboard ENTER and Keypad ENTER          1 Q 96418 Priority Inversion and Windows NT Scheduler                     2 Q 96780 Security and Screen Savers                                      1

Q 97786 Default Stack in Win32-Based Applications                       2 Q 97926 The Use of the SetLastErrorEx API                             1 Q 98216 Windows NT Virtual Memory Manager Uses FIFO                     1 Q 98575 File Manager Passes Short Filename as Parameter                 1 Q 98722 Getting the Net Time on a Domain                                1

Q 98756 Increased Performance Using FILE_FLAG_SEQUENTIAL_SCAN           1 Q 98840 Noncontinuable Exceptions                                       1 Q 98892 PRB: Unexpected Result of SetFilePointer with Devices         2 Q 98893 Limit on the Number of Bytes Written Asynchronously             2 Q 98952 Setting File Permissions                                        1

Q 99026 Possible Serial Baud Rates on Various Machines                  1 Q 99114 Using GMEM_DDESHARE in Win32 Programming                        1 Q 99115 Preventing the Console from Disappearing                        1 Q 99173 Types of File I/O Under Win32                                   2 Q 99261 Performing a Clear Screen (CLS) in a Console Application        1

Q 99456 Win32 Equivalents for C Run-Time Functions                      6 Q 99794 FILE_FLAG_WRITE_THROUGH and FILE_FLAG_NO_BUFFERING              2 Q 99795 PRB: SetConsoleOutputCP Not Functional                        1 Q 100027 Direct Drive Access Under Win32                                1 Q 100291 Restriction on Named-Pipe Names                                1

Q 100329 CPU Quota Limits Not Enforced                                  1 Q 101186 Time Stamps Under the FAT File System                          1 Q 101190 Examining the dwOemId Value                                    1 Q 101193 Interrupting Threads in Critical Sections                      1 Q 101378 Impersonation Provided by ImpersonateNamedPipeClient         1

Q 102098 Gaining Access to ACLs                                         1 Q 102099 Administrator Access to Files                                  1 Q 102100 Passing Security Information to SetFileSecurity              1 Q 102101 Extracting the SID from an ACE                                 1 Q 102102 How to Add an Access-Allowed ACE to a File                     5

Q 102103 Computing the Size of a New ACL                                1 Q 102104 FILE_READ_EA and FILE_WRITE_EA Specific Types                  1 Q 102105 System GENERIC_MAPPING Structures                              1 Q 102128 Why LoadLibraryEx Returns an HINSTANCE                       1 Q 102352 Passing a Pointer to a Member Function to the Win32 API        2

Q 102429 Detecting Closure of Command Window from a Console App         1 Q 102447 Definition of a Protected Server                               1 Q 102555 How Windows NT Handles Floating-Point Calculations             2 Q 102798 Security Attributes on Named Pipes                             2 Q 103237 Using Temporary File Can Improve Application Performance       1

Q 103858 Copy on Write Page Protection for Windows NT                   2 Q 104136 Mapping .INI File Entries to the Registry                      1 Q 105302 Canceling WaitCommEvent with SetCommMask                   1 Q 105304 SetErrorMode Is Inherited                                    1 Q 105305 Calling CRT Output Routines from a GUI Application             2

Q 105306 Getting and Using a Handle to a Directory                      1 Q 105531 Named Pipe Buffer Size                                         1 Q 105532 The Use of PAGE_WRITECOPY                                      1 Q 105674 Setting the Console Configuration                              1 Q 105675 First and Second Chance Exception Handling                     1

Q 105678 Critical Sections Versus Mutexes                               1 Q 105763 Using NTFS Alternate Data Streams                              2 Q 106383 RegSaveKey Requires SeBackupPrivilege                        1 Q 106387 Sharing Objects with a Service                                 1 Q 106663 Accessing the Macintosh Resource Fork                          1

Q 107728 Retrieving Counter Data From the Registry                      3 Q 108228 Replace IsTask with GetExitCodeProcess                     1 Q 108230 Accessing the Event Logs                                       2 Q 108231 CreateFileMapping SEC_* Flags                                2 Q 108448 Use LoadLibrary on .EXE Files Only for Resources             1

Q 108449 Working Set Size, Nonpaged Pool, and VirtualLock             3 Q 109619 Sharing All Data in a DLL                                      2 Q 110148 PRB: ERROR_INVALID_PARAMETER from WriteFile or ReadFile    1 Q 110853 PRB: Can't Increase Process Priority                           1 Q 111541 New Owner in Take-Ownership Operation                          1

Q 111543 Creating a World SID                                           1 Q 111544 Looking Up the Current User and Domain                         1 Q 111545 Security Context of Child Processes                            1 Q 111546 Taking Ownership of Registry Keys                              1 Q 111559 PRB: GetExitCodeProcess Always Returns 0 for 16-Bit Processes 1

Q 111837 ERROR_BUS_RESET May Be Benign                                  1 Q 111838 Possible Cause for ERROR_INVALID_FUNCTION                      1 Q 115231 Retrieving Time-Zone Information                               1 Q 115232 Timer Resolution in Windows NT                                 1 Q 115236 Long Filenames on Windows NT FAT Partitions                    2

Q 115522 Limits on Overlapped Pipe Operations                           1 Q 115825 Accessing the Application Desktop from a Service               2 Q 115826 Clarification of SearchPath Return Value                     1 Q 115827 Filenames Ending with Space or Period Not Supported            1 Q 115828 Getting Floppy Drive Information                               3

Q 115829 How to Gracefully Fail at Service Start                        1 Q 115831 Specifying Serial Ports Larger than COM9                       1 Q 115848 Services and Redirected Drives                                 1 Q 115945 Determining the Maximum Allowed Access for an Object           1 Q 115946 PRB: AccessCheck Returns ERROR_INVALID_SECURITY_DESCR        1

Q 115947 Adding Categories for Events                                   2 Q 115948 Creating Access Control Lists for Directories                  2 Q 117223 PRB: Byte-Range File Locking Deadlock Condition                2 Q 117261 PRB: RegCreateKeyEx Gives Error 161 Under Windows NT 3.5     2 Q 117330 PRB: Error Message Box Returned When DLL Load Fails            2

Q 117892 Memory Requirements for a Win32 App vs. the Win16 Version      1 Q 118605 How to Create Inheritable Win32 Handles in Windows 95          2 Q 118625 Detecting Data on the Communications Port                      1 Q 118626 Determining Whether the User is an Administrator               2 Q 118816 PRB: LoadLibrary Fails with _declspec(thread)                1

Q 119163 Getting the Filename Given a Window Handle                     5 Q 119218 PRB: Named Pipe Write Limited to 64K                         1 Q 119669 Listing Account Privileges                                     2 Q 120556 PRB: Starting a Service Returns &quot;Logon Failure&quot; Error          1 Q 120557 Dealing w/ Lengthy Processing in Service Control Handler       1

Q 120697 Additional Information for WIN32_FIND_DATA                     1 Q 124103 Obtaining a Console Window Handle (HWND)                       2 Q 124207 Detecting x86 Floating Point Coprocessor in Win32              2 Q 124305 Which Windows NT (Server or Workstation) Is Running? 2 Q 125657 Mutex Wait Is FIFO But Can Be Interrupted                      1

Q 125660 How to Set Foreground/Background Responsiveness in Code        1 Q 125661 How to Support Language Independent Strings in Event Logging   2 Q 125677 How to Share Data Between Different Mappings of a DLL          2 Q 125688 How to Port a 16-bit DLL to a Win32 DLL                        5 Q 125689 How to Detect All Program Terminations                         3

Q 125691 Overview of the Windows 95 Virtual Address Space Layout        3 Q 125710 Types of Thunking Available in Win32 Platforms                 3 Q 125712 How To Open Volumes Under Windows 95                           1 Q 125713 Common File Mapping Problems and Platform Differences          4 Q 125714 How to Start an Application at Boot Time Under Windows 95      1

Q 125717 Limitations of Overlapped I/O in Windows 95                    2 Q 125867 Understanding Win16Mutex                                       2 Q 125868 How to Display Debugging Messages in Windows 95                1 Q 126628 How to Spawn a Console App and Redirect Standard Handles       1 Q 126629 How CREATOR_OWNER and CREATOR_GROUP Affect Security            2

Q 126645 PRB: Access Denied When Opening a Named Pipe from a Service    2 Q 126766 Determining the Network Protocol Used By Named Pipes           1 Q 126767 Improve System Performance by Using Proper Working Set Size    1 Q 126768 How to Design Multithreaded Applications to Avoid Deadlock     2 Q 127860 PRB: CreateProcess of Windows-Based Application Fails        1

Q 127862 PRB: After CreateService with UNC Name, Service Start Fails  1 Q 127904 How to Modify Executable Code in Memory                        1 Q 127905 PRB: Messages Sent to Mailslot Are Duplicated                  1 Q 127990 How to Delete Keys from the Windows NT Registry                1 Q 127991 GetLastError May Differ Between Windows 95 and Windows NT    1

Q 127992 Thread Handles and Thread IDs                                  1 Q 128126 FileTimeToLocalFileTime Adjusts for Daylight Saving Time     3 Q 128404 PRB: Corruption of the Perflib Registry Values                 2 Q 128642 How to Change Hard Error Popup Handling in Windows NT          3 Q 128731 How to Back Up the Windows NT Registry                         5

Q 128787 PRB: COMM (TTY) Sample Does Not Work on Windows 95             1 Q 129003 PRB: Description for Event ID Could Not Be Found               1 Q 130331 Copying Compressed Files                                       1 Q 131065 How to Obtain a Handle to Any Process with SeDebugPrivilege    4 Q 131144 How to Assign Privileges to Accounts for API Calls             1

Q 131320 How to Convert a Binary SID to Textual Form                    4 Q 140570 How to Move Files That Are Currently in Use                    2 Q 154093 How to Call 32-bit Code from 16-bit Code in Windows 95         4 End of listing.

Keywords         : kblist kbnokeyword kbKernBase kbGrpKernBase Version          : 3.1 3.5 3.51 4.0 Platform         : NT WINDOWS Last Reviewed: October 23, 1997