Retrieves a pseudo handle for the current process.
Syntax
HANDLE WINAPI GetCurrentProcess(void);
Parameters
This function has no parameters.
Return Value
The return value is a pseudo handle to the current process.
Remarks
A pseudo handle is a special constant, currently (HANDLE)-1, that is interpreted as the current process handle. For compatibility with future operating systems, it is best to call
GetCurrentProcess instead of hard-coding this constant value. The calling process can use a pseudo handle to specify its own process whenever a process handle is required. Pseudo handles are not inherited by child processes.
This handle has the PROCESS_ALL_ACCESS access right to the process object. For more information, see
Process Security and Access Rights.
Windows Server 2003 and Windows XP/2000: This handle has the maximum access allowed by the security descriptor of the process to the primary token of the process.
A process can create a "real" handle to itself that is valid in the context of other processes, or that can be inherited by other processes, by specifying the pseudo handle as the source handle in a call to the DuplicateHandle function. A process can also use the
OpenProcess function to open a real handle to itself.
The pseudo handle need not be closed when it is no longer needed. Calling the
CloseHandle function with a pseudo handle has no effect. If the pseudo handle is duplicated by
DuplicateHandle, the duplicate handle must be closed.
Examples
For an example, see
Creating a Child Process with Redirected Input and Output.
Requirements
| Minimum supported client | Windows 2000 Professional |
| Minimum supported server | Windows 2000 Server |
| Header | Winbase.h (include Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |
See Also
- CloseHandle
- DuplicateHandle
- GetCurrentProcessId
- GetCurrentThread
- OpenProcess
- Process and Thread Functions
- Processes
Send comments about this topic to Microsoft
Build date: 11/19/2009