#pragma once | |
//------------------------------------------------------------------------------------------------- | |
// <copyright file="procutil.h" company="Outercurve Foundation"> | |
// Copyright (c) 2004, Outercurve Foundation. | |
// This software is released under Microsoft Reciprocal License (MS-RL). | |
// The license and further copyright text can be found in the file | |
// LICENSE.TXT at the root directory of the distribution. | |
// </copyright> | |
// | |
// <summary> | |
// Header for process helper functions. | |
// </summary> | |
//------------------------------------------------------------------------------------------------- | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
// structs | |
typedef struct _PROC_FILESYSTEMREDIRECTION | |
{ | |
BOOL fDisabled; | |
LPVOID pvRevertState; | |
} PROC_FILESYSTEMREDIRECTION; | |
HRESULT DAPI ProcElevated( | |
__in HANDLE hProcess, | |
__out BOOL* pfElevated | |
); | |
HRESULT DAPI ProcWow64( | |
__in HANDLE hProcess, | |
__out BOOL* pfWow64 | |
); | |
HRESULT DAPI ProcDisableWowFileSystemRedirection( | |
__in PROC_FILESYSTEMREDIRECTION* pfsr | |
); | |
HRESULT DAPI ProcRevertWowFileSystemRedirection( | |
__in PROC_FILESYSTEMREDIRECTION* pfsr | |
); | |
HRESULT DAPI ProcExec( | |
__in_z LPCWSTR wzExecutablePath, | |
__in_z_opt LPCWSTR wzCommandLine, | |
__in int nCmdShow, | |
__out HANDLE *phProcess | |
); | |
HRESULT DAPI ProcExecute( | |
__in_z LPWSTR wzCommand, | |
__out HANDLE *phProcess, | |
__out_opt HANDLE *phChildStdIn, | |
__out_opt HANDLE *phChildStdOutErr | |
); | |
HRESULT DAPI ProcWaitForCompletion( | |
__in HANDLE hProcess, | |
__in DWORD dwTimeout, | |
__out DWORD *pReturnCode | |
); | |
HRESULT DAPI ProcWaitForIds( | |
__in_ecount(cProcessIds) const DWORD* pdwProcessIds, | |
__in DWORD cProcessIds, | |
__in DWORD dwMilliseconds | |
); | |
HRESULT DAPI ProcCloseIds( | |
__in_ecount(cProcessIds) const DWORD* pdwProcessIds, | |
__in DWORD cProcessIds | |
); | |
// following code in proc2utl.cpp due to dependency on PSAPI.DLL. | |
HRESULT DAPI ProcFindAllIdsFromExeName( | |
__in_z LPCWSTR wzExeName, | |
__out DWORD** ppdwProcessIds, | |
__out DWORD* pcProcessIds | |
); | |
// following code in proc3utl.cpp due to dependency on Wtsapi32.DLL. | |
HRESULT DAPI ProcExecuteAsInteractiveUser( | |
__in_z LPCWSTR wzExecutablePath, | |
__in_z LPCWSTR wzCommand, | |
__out HANDLE *phProcess | |
); | |
#ifdef __cplusplus | |
} | |
#endif |