CAccessToken::CreateProcessAsUser
Вызовите этот метод, чтобы создать новый процесс, выполняемый в контексте безопасности пользователя, представленного объектом 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( );
Параметры
pApplicationName
Указатель на null- завершенной строку, определяющую модуль для выполнения. Этот параметр не может принимать значение null.pCommandLine
Указатель на null- завершенной строке, которая задает командную строку для выполнения.pProcessInformation
Указатель на структуру PROCESS_INFORMATION, которая получает данные идентификации о новом процессе.pStartupInfo
Указатель на структуру STARTUPINFO, которая определяет, как главное окно для нового процесса должно отображаться.dwCreationFlags
Определяет дополнительные флаги, которые контролируют класс приоритета и создание процесса. См. раздел Win32 функцию CreateProcessAsUser список флагов.bLoadProfile
True, если профиль пользователя загружен с LoadUserProfile.pProcessAttributes
Указатель на структуру SECURITY_ATTRIBUTES, которая задает дескриптор безопасности для нового процесса и определяет, является ли процессы дочернего элемента могут наследовать возвращаемый маркер. Если pProcessAttributes NULL, то процесс получает дескриптор безопасности по умолчанию и дескриптор не может быть унаследован.pThreadAttributes
Указатель на структуру SECURITY_ATTRIBUTES, которая задает дескриптор безопасности для нового потока и определяет, является ли процессы дочернего элемента могут наследовать возвращаемый маркер. Если pThreadAttributes NULL, то поток получает дескриптор безопасности по умолчанию и дескриптор не может быть унаследован.bInherit
Показывает, наследует ли новый процесс маркеры из вызывающего процесса. True, если каждый наследуется открытый дескриптор в вызывающем процессе унаследован новым процессом. Унаследованные дескрипторы обладают теми же значение и права доступа, как дескрипторы оригинала.pCurrentDirectory
Указатель на null- завершенной строке, которая задает текущие диск и каталог для нового процесса. Строка должна представлять собой полный путь, включая букву диска. Если этот параметр имеет значение null, новый процесс будет иметь одни и те же текущие диск и каталог, что и вызывающий процесс.
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
Заметки
CreateProcessAsUser использует функцию Win32 CreateProcessAsUser чтобы создать новый процесс, который выполняется в контексте безопасности пользователя представили объектом CAccessToken. См. описание функции CreateProcessAsUser подробное обсуждение, требуемых параметров.
Для этого метода, которые должны выполняться успешно, объект CAccessToken должен содержать AssignPrimaryToken (если не является маркером ограниченного доступа и привилегий IncreaseQuota).
Требования
Header: atlsecurity.h