CAccessToken::CreateProcessAsUser
Llame a este método para crear un nuevo proceso que se ejecuta en el contexto de seguridad del usuario representado por el objeto de CAccessToken .
bool CreateProcessAsUser(
LPCTSTR pApplicationName,
LPTSTR pCommandLine,
LPPROCESS_INFORMATION pProcessInformation,
LPSTARTUPINFO pStartupInfo,
DWORD dwCreationFlags = NORMAL_PRIORITY_CLASS,
bool bLoadProfile = false,
const CSecurityAttributes* pProcessAttributes = NULL,
const CSecurityAttributes* pThreadAttributes = NULL,
bool bInherit = false,
LPCTSTR pCurrentDirectory = NULL
) throw( );
Parámetros
pApplicationName
Puntero a una cadena terminada en null que especifica el módulo para ejecutarse. Este parámetro no puede ser NULL.pCommandLine
Puntero a una cadena terminada en null que especifica la línea de comandos para ejecutar.pProcessInformation
Puntero a una estructura de PROCESS_INFORMATION que recibe información de identificación sobre el nuevo proceso.pStartupInfo
Puntero a una estructura de STARTUPINFO que especifica cómo la ventana principal del nuevo proceso debe aparecer.dwCreationFlags
Especifica marcadores adicionales que controlan la clase de prioridad y la creación del proceso. Vea la función CreateProcessAsUser Win32 para una lista de marcas.bLoadProfile
Si es true, el perfil de usuario se carga con LoadUserProfile.pProcessAttributes
Puntero a una estructura de SECURITY_ATTRIBUTES que especifica un descriptor de seguridad para el nuevo proceso y determina si los procesos secundarios pueden heredar el identificador devuelto. Si los pProcessAttributes son NULL, el proceso obtiene un descriptor de seguridad predeterminado y el identificador no puede heredarse.pThreadAttributes
Puntero a una estructura de SECURITY_ATTRIBUTES que especifica un descriptor de seguridad para el nuevo subproceso y determina si los procesos secundarios pueden heredar el identificador devuelto. Si los pThreadAttributes son NULL, el subproceso obtiene un descriptor de seguridad predeterminado y el identificador no puede heredarse.bInherit
Indica si el nuevo proceso hereda los identificadores del proceso de llamada. Si es true, cada identificador abierto heredable en el proceso de llamada heredan el nuevo proceso. Los identificadores heredados tienen el mismo valor y privilegios de acceso que los identificadores de original.pCurrentDirectory
Puntero a una cadena terminada en null que especifica la unidad o el directorio actual para el nuevo proceso. la cadena debe ser una ruta de acceso completa que incluye una letra de unidad. Si este parámetro es NULL, el nuevo proceso tendrá la misma unidad actual y directorio que el proceso de llamada.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
Comentarios
CreateProcessAsUser utiliza la función de CreateProcessAsUser Win32 para crear un nuevo proceso que se ejecuta en el contexto de seguridad del usuario representado por el objeto de CAccessToken . Vea la descripción de la función de CreateProcessAsUser para obtener una descripción completa de los parámetros necesarios.
Para que este método se realiza correctamente, el objeto de CAccessToken debe contener AssignPrimaryToken (a menos que es un token restringido) y privilegios de IncreaseQuota.
Requisitos
encabezado: atlsecurity.h