INFO: Objects Inherited Through a CreateProcess Call (83298)



The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), when used with:
    • the operating system: Microsoft Windows NT 3.5
    • the operating system: Microsoft Windows NT 3.51
    • the operating system: Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 95
    • the operating system: Microsoft Windows 98
    • the operating system: Microsoft Windows Millennium Edition
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP

This article was previously published under Q83298

SUMMARY

The objects inherited by a process started by a call to CreateProcess() are those objects that you can get a handle to and on which you can use the CloseHandle() function. These objects include the following:

Processes
Events
Semaphores
Mutexes
Files (including file mappings)
Standard input, output, or error devices

However, the new process will only inherit objects that were marked inheritable by the old process.

These are duplicate handles. Each process maintains memory for its own handle table. If one of the processes modifies its handle (for example, closes it or changes the mode for the console handle), other processes will not be affected.

Processes will also inherit environment variables, the current directory, and priority class.

Modification Type:MinorLast Reviewed:9/27/2004
Keywords:kbinfo kbKernBase kbThread KB83298