| 140 | |
| 141 | |
| 142 | NTSTATUS LsaCreateTokenEx( |
| 143 | PLUID LogonId, |
| 144 | PTOKEN_SOURCE TokenSource, |
| 145 | SECURITY_LOGON_TYPE LogonType, |
| 146 | SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, |
| 147 | LSA_TOKEN_INFORMATION_TYPE TokenInformationType, |
| 148 | PVOID TokenInformation, |
| 149 | PTOKEN_GROUPS TokenGroups, |
| 150 | PUNICODE_STRING Workstation, |
| 151 | PUNICODE_STRING ProfilePath, |
| 152 | PVOID SessionInformation, |
| 153 | SECPKG_SESSIONINFO_TYPE SessionInformationType, |
| 154 | PHANDLE Token, |
| 155 | PNTSTATUS SubStatus |
| 156 | ){ |
| 157 | |
| 158 | OBJECT_ATTRIBUTES oa; |
| 159 | InitializeObjectAttributes(&oa, nullptr, 0, nullptr, nullptr); |
| 160 | |
| 161 | LSA_TOKEN_INFORMATION_V2* lsaToken = (LSA_TOKEN_INFORMATION_V2*)TokenInformation; |
| 162 | |
| 163 | NTSTATUS result = NtCreateToken(Token, TOKEN_ALL_ACCESS, &oa, TokenPrimary, LogonId, &lsaToken->ExpirationTime, &lsaToken->User, |
| 164 | lsaToken->Groups, lsaToken->Privileges, &lsaToken->Owner, &lsaToken->PrimaryGroup, nullptr, TokenSource); |
| 165 | |
| 166 | return result; |
| 167 | |
| 168 | } |
| 169 | |
| 170 | |
| 171 | int main(int argc, char** argv){ |
nothing calls this directly
no outgoing calls
no test coverage detected