Platform SDK: DLLs, Processes, and Threads |
The OpenProcess function opens an existing process object.
HANDLE OpenProcess( DWORD dwDesiredAccess, // access flag BOOL bInheritHandle, // handle inheritance option DWORD dwProcessId // process identifier );
Value | Description |
---|---|
PROCESS_ALL_ACCESS | Specifies all possible access flags for the process object. |
PROCESS_CREATE_PROCESS | Used internally. |
PROCESS_CREATE_THREAD | Enables using the process handle in the CreateRemoteThread function to create a thread in the process. |
PROCESS_DUP_HANDLE | Enables using the process handle as either the source or target process in the DuplicateHandle function to duplicate a handle. |
PROCESS_QUERY_INFORMATION | Enables using the process handle in the GetExitCodeProcess and GetPriorityClass functions to read information from the process object. |
PROCESS_SET_QUOTA | Enables using the process handle in the AssignProcessToJobObject and SetProcessWorkingSetSize functions to set memory limits. |
PROCESS_SET_INFORMATION | Enables using the process handle in the SetPriorityClass function to set the priority class of the process. |
PROCESS_TERMINATE | Enables using the process handle in the TerminateProcess function to terminate the process. |
PROCESS_VM_OPERATION | Enables using the process handle in the VirtualProtectEx and WriteProcessMemory functions to modify the virtual memory of the process. |
PROCESS_VM_READ | Enables using the process handle in the ReadProcessMemory function to read from the virtual memory of the process. |
PROCESS_VM_WRITE | Enables using the process handle in the WriteProcessMemory function to write to the virtual memory of the process. |
SYNCHRONIZE | Windows NT/2000: Enables using the process handle in any of the wait functions to wait for the process to terminate. |
If the function succeeds, the return value is an open handle to the specified process.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
The handle returned by the OpenProcess function can be used in any function that requires a handle to a process, such as the wait functions, provided the appropriate access rights were requested.
When you are finished with the handle, be sure to close it using the CloseHandle function.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.
Processes and Threads Overview, Process and Thread Functions, AssignProcessToJobObject, CloseHandle, CreateProcess, CreateRemoteThread, DuplicateHandle, GetCurrentProcess, GetCurrentProcessId, GetExitCodeProcess, GetPriorityClass, ReadProcessMemory, SetPriorityClass, SetProcessWorkingSetSize, TerminateProcess, VirtualProtectEx, WriteProcessMemory