CAccessToken::CreateProcessAsUser
Chiamare questo metodo per creare un nuovo processo in esecuzione nel contesto di sicurezza dell'utente rappresentato dall'oggetto 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( );
Parametri
pApplicationName
Puntatore a una stringa con terminazione null che specifica il modulo per l'esecuzione. Questo parametro non può essere NULL.pCommandLine
Puntatore a una stringa con terminazione null che specifica la riga di comando da eseguire.pProcessInformation
Puntatore a una struttura PROCESS_INFORMATION che riceve le informazioni di identificazione relative al nuovo processo.pStartupInfo
Puntatore a una struttura STARTUPINFO che specifica come finestra principale per il nuovo processo deve essere visualizzato.dwCreationFlags
Specifica i flag aggiuntivi che controllano la classe di priorità e creazione di processo. Vedere la funzione Win32 CreateProcessAsUser per un elenco di flag.bLoadProfile
Se true, il profilo utente viene caricato con LoadUserProfile.pProcessAttributes
Puntatore a una struttura SECURITY_ATTRIBUTES che specifica un descrittore di sicurezza per il nuovo processo e determina se i processi figlio possono ereditare gli handle restituiti. Se i pProcessAttributes è NULL, il processo ottiene un descrittore di sicurezza predefinito e handle non possono essere ereditate.pThreadAttributes
Puntatore a una struttura SECURITY_ATTRIBUTES che specifica un descrittore di sicurezza per il nuovo thread e determina se i processi figlio possono ereditare gli handle restituiti. Se i pThreadAttributes è NULL, il thread ottiene un descrittore di sicurezza predefinito e handle non possono essere ereditate.bInherit
Indica se il nuovo processo eredita gli handle del processo chiamante. Se true, ogni handle aperti ereditabili nel processo chiamante vengono ereditate dal nuovo processo. L'handle ereditate hanno lo stesso valore e privilegi di accesso handle di origine.pCurrentDirectory
Puntatore a una stringa con terminazione null che specifica l'unità e la directory corrente per il nuovo processo. La stringa deve essere un percorso completo che include una lettera di unità. Se questo parametro è NULL, il nuovo processo disporrà della stessa unità e directory corrente del processo chiamante.
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
Note
CreateProcessAsUser utilizza la funzione Win32 CreateProcessAsUser per creare un nuovo processo eseguito nel contesto di sicurezza dell'utente è rappresentato dall'oggetto CAccessToken. Vedere la descrizione della funzione CreateProcessAsUser per una descrizione completa dei parametri necessari.
Affinché questo metodo ha esito positivo, l'oggetto CAccessToken deve utilizzare AssignPrimaryToken (a meno che non sia un token limitato) e privilegi di IncreaseQuota.
Requisiti
Header: atlsecurity.h