C/C++ 函数原型
EXTERN_C HRESULT WINAPI NSudoCreateProcess(
_In_ NSUDO_USER_MODE_TYPE UserModeType,
_In_ NSUDO_PRIVILEGES_MODE_TYPE PrivilegesModeType,
_In_ NSUDO_MANDATORY_LABEL_TYPE MandatoryLabelType,
_In_ NSUDO_PROCESS_PRIORITY_CLASS_TYPE ProcessPriorityClassType,
_In_ NSUDO_SHOW_WINDOW_MODE_TYPE ShowWindowModeType,
_In_ DWORD WaitInterval,
_In_ BOOL CreateNewConsole,
_In_ LPCWSTR CommandLine,
_In_opt_ LPCWSTR CurrentDirectory);
UserModeType 参数
一个类型为 NSUDO_USER_MODE_TYPE 枚举类型的值, 用以表示用户类别。
typedef enum class _NSUDO_USER_MODE_TYPE
{
DEFAULT, ;0以当前用户的访问令牌运行程序,如果用户账户控制即 UAC 没有被禁用, 则该模式的权限与标准用户等价
TRUSTED_INSTALLER, ;1以 TrustedInstaller 访问令牌运行程序
SYSTEM, ;2以 System 访问令牌运行程序
CURRENT_USER, ;3以提升后的当前用户的访问令牌运行程序,该模式的权限与提升后的用户等价
CURRENT_PROCESS, ;4以当前进程的访问令牌运行程序,该模式的权限与提升后的用户等价
CURRENT_PROCESS_DROP_RIGHT ;5以当前进程 LUA 模式的访问令牌运行程序,该模式的权限与标准?户等价且该实现和 Internet Explorer 浏览器中的 iertutil.dll 中的对应实现一致
} NSUDO_USER_MODE_TYPE, *PNSUDO_USER_MODE_TYPE;
PrivilegesModeType 参数
一个类型为 NSUDO_PRIVILEGES_MODE_TYPE 枚举类型的值, 用以表示特权类型。
typedef enum class _NSUDO_PRIVILEGES_MODE_TYPE
{
DEFAULT, ;0默认特权
ENABLE_ALL_PRIVILEGES, ;1启用全部特权
DISABLE_ALL_PRIVILEGES ;2禁用所有特权
} NSUDO_PRIVILEGES_MODE_TYPE, *PNSUDO_PRIVILEGES_MODE_TYPE;
MandatoryLabelType 参数
一个类型为 NSUDO_MANDATORY_LABEL_TYPE 枚举类型的值, 用以表示完整性标签。
typedef enum class _NSUDO_MANDATORY_LABEL_TYPE
{
UNTRUSTED, ;0不信任的
LOW, ;1低
MEDIUM, ;2中
MEDIUM_PLUS, ;3中高
HIGH, 4高
SYSTEM, ;5系统
PROTECTED_PROCESS, ;6受保护进程
} NSUDO_MANDATORY_LABEL_TYPE, *PNSUDO_MANDATORY_LABEL_TYPE;
ProcessPriorityClassType 参数
一个类型为 NSUDO_PROCESS_PRIORITY_CLASS_TYPE 枚举类型的值, 用以表示进程优先级。
typedef enum class _NSUDO_PROCESS_PRIORITY_CLASS_TYPE
{
BELOW_NORMAL, ;0低于正常
NORMAL, ;1正常
ABOVE_NORMAL, ;2高于正常
HIGH, ;3高
REALTIME, ;4实时
} NSUDO_PROCESS_PRIORITY_CLASS_TYPE, *PNSUDO_PROCESS_PRIORITY_CLASS_TYPE;
ShowWindowModeType 参数
一个类型为 NSUDO_SHOW_WINDOW_MODE_TYPE 枚举类型的值, 用以表示显示窗口模式。
typedef enum class _NSUDO_SHOW_WINDOW_MODE_TYPE
{
DEFAULT, ;0默认
SHOW, ;1显示窗口
HIDE, ;2隐藏窗口
MAXIMIZE, ;3最大化
MINIMIZE, ;4最小化
} NSUDO_SHOW_WINDOW_MODE_TYPE, *PNSUDO_SHOW_WINDOW_MODE_TYPE;
WaitInterval 参数
等待创建的进程的时间 (毫秒)。
CreateNewConsole 参数
如果这个参数设为 TRUE, 新进程则在新的控制台窗口运行, 否则则直接在⽗进程对应的控 制台窗口运行 (默认设定)。
CommandLine 参数
要执行的命令行, 对应的字符串最大长度为 32k 即 32768 字符, 命令行所执行的应用的路径被限制为MAX_PATH 即 260 字符。
CurrentDirectory 参数
用来指定进程的当前⽬录, 需要使用完整路径。可以使用 UNC 路径。如果该参数为 nullptr, 新进程将使用调用该函数的进程所使用的当前路径。
|