OpenProcess  B3UGNI 

The OpenProcess function returns a handle of an existing process object.

HANDLE OpenProcess(

    DWORD dwDesiredAccess,

// access flag

    BOOL bInheritHandle,

// handle inheritance flag

    DWORD dwProcessId

// process identifier

   );

 

 

Parameters

dwDesiredAccess

Specifies the access to the process object. For operating systems that support security checking, this access is checked against any security descriptor for the target process. Any combination of the following access flags can be specified in addition to the STANDARD_RIGHTS_REQUIRED access flags:

Access

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 CreateRemoteThread19IU6KT 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 DuplicateHandle1OJQKWY function to duplicate a handle.

PROCESS_QUERY_INFORMATION

Enables using the process handle in the GetExitCodeProcess2MM.I. and GetPriorityClassF6UWF_ functions to read information from the process object.

PROCESS_SET_INFORMATION

Enables using the process handle in the SetPriorityClass1HDPHK3 function to set the priority class of the process.

PROCESS_TERMINATE

Enables using the process handle in the TerminateProcess.D3M14 function to terminate the process.

PROCESS_VM_OPERATION

Enables using the process handle in the VirtualProtectExSFLVDY and WriteProcessMemory_4C4HP functions to modify the virtual memory of the process.

PROCESS_VM_READ

Enables using the process handle in the ReadProcessMemory2RLM_KF function to read from the virtual memory of the process.

PROCESS_VM_WRITE

Enables using the process handle in the WriteProcessMemory_4C4HP function to write to the virtual memory of the process.

SYNCHRONIZE

Windows NT only: Enables using the process handle in any of the wait functionsY2TC_3 to wait for the process to terminate.

 

bInheritHandle

Specifies whether the returned handle can be inherited by a new process created by the current process. If TRUE, the handle is inheritable.

dwProcessId

Specifies the process identifier of the process to open.

 

Return Values

If the function succeeds, the return value is an open handle of the specified process.

If the function fails, the return value is NULL. To get extended error information, call GetLastError11C2VS7.

Remarks

The handle returned by the OpenProcess function can be used in any function that requires a handle to a process, such as the wait functionsY2TC_3, provided the appropriate access rights were requested.

When you are finished with the handle, be sure to close it using the CloseHandle function.

See Also

CloseHandle, CreateProcess, CreateRemoteThread, DuplicateHandle, GetCurrentProcess, GetCurrentProcessId, GetExitCodeProcess, GetPriorityClass, ReadProcessMemory, SetPriorityClass, TerminateProcess, VirtualProtectEx, WriteProcessMemory