@@ -26,7 +26,8 @@ use um::minwinbase::{
26
26
LPOVERLAPPED , LPOVERLAPPED_COMPLETION_ROUTINE , LPSECURITY_ATTRIBUTES , PREASON_CONTEXT ,
27
27
} ;
28
28
use um:: processthreadsapi:: {
29
- LPPROC_THREAD_ATTRIBUTE_LIST , LPSTARTUPINFOA , STARTUPINFOA , STARTUPINFOW ,
29
+ LPPROCESS_INFORMATION , LPPROC_THREAD_ATTRIBUTE_LIST , LPSTARTUPINFOA , LPSTARTUPINFOW ,
30
+ STARTUPINFOA , STARTUPINFOW ,
30
31
} ;
31
32
use um:: winnt:: {
32
33
BOOLEAN , CHAR , DWORDLONG , EXECUTION_STATE , FILE_ID_128 , HANDLE , HRESULT , INT , LANGID ,
@@ -2306,9 +2307,37 @@ extern "system" {
2306
2307
pdwProfileLength : LPDWORD ,
2307
2308
pQuotaLimits : PQUOTA_LIMITS ,
2308
2309
) -> BOOL ;
2309
- // pub fn CreateProcessWithLogonW();
2310
- // pub fn CreateProcessWithTokenW();
2311
- // pub fn IsTokenUntrusted();
2310
+ }
2311
+ pub const LOGON_WITH_PROFILE : DWORD = 0x00000001 ;
2312
+ pub const LOGON_NETCREDENTIALS_ONLY : DWORD = 0x00000002 ;
2313
+ extern "system" {
2314
+ pub fn CreateProcessWithLogonW (
2315
+ lpUsername : LPCWSTR ,
2316
+ lpDomain : LPCWSTR ,
2317
+ lpPassword : LPCWSTR ,
2318
+ dwLogonFlags : DWORD ,
2319
+ lpApplicationName : LPCWSTR ,
2320
+ lpCommandLine : LPWSTR ,
2321
+ dwCreationFlags : DWORD ,
2322
+ lpEnvironment : LPVOID ,
2323
+ lpCurrentDirectory : LPCWSTR ,
2324
+ lpStartupInfo : LPSTARTUPINFOW ,
2325
+ lpProcessInformation : LPPROCESS_INFORMATION ,
2326
+ ) -> BOOL ;
2327
+ pub fn CreateProcessWithTokenW (
2328
+ hToken : HANDLE ,
2329
+ dwLogonFlags : DWORD ,
2330
+ lpApplicationName : LPCWSTR ,
2331
+ lpCommandLine : LPWSTR ,
2332
+ dwCreationFlags : DWORD ,
2333
+ lpEnvironment : LPVOID ,
2334
+ lpCurrentDirectory : LPCWSTR ,
2335
+ lpStartupInfo : LPSTARTUPINFOW ,
2336
+ lpProcessInformation : LPPROCESS_INFORMATION ,
2337
+ ) -> BOOL ;
2338
+ pub fn IsTokenUntrusted (
2339
+ TokenHandle : HANDLE ,
2340
+ ) -> BOOL ;
2312
2341
pub fn RegisterWaitForSingleObject (
2313
2342
phNewWaitObject : PHANDLE ,
2314
2343
hObject : HANDLE ,
0 commit comments