NtFlushInstallUILanguage
NTSTATUS __stdcall NtFlushInstallUILanguage(UINT64 InstallUILanguage, UINT64 SetComittedFlag){
int v2;
NTSTATUS v3;
int v4;
char PreviousMode;
INT64 v6;
NTSTATUS result;
_ETHREAD *CurrentThread;
v2 = SetComittedFlag;
v3 = 0;
v4 = InstallUILanguage;
PreviousMode = KeGetCurrentThread()->PreviousMode;
if( !PreviousMode )
return -1073741823;
if( !SeSinglePrivilegeCheck(*(_QWORD *)&SeTcbPrivilege, PreviousMode) )
return -1073741790;
if( PsUILanguageComitted )
{
if( v4 == (unsigned __int16)PsInstallUILanguageId )
return 0;
return -1073741823;
}
if( *(&stru_140CF2E80 + 658)
|| (result = MUIInitializeResourceLock((_ERESOURCE **)&stru_140CF2E80 + 658), (result & 0xC0000000) != -1073741824) )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceExclusiveLite(*(&stru_140CF2E80 + 658), 1, v6);
if( v2 )
PsUILanguageComitted = 1;
if( (_WORD)v4 != PsInstallUILanguageId )
{
PsInstallUILanguageId = v4;
PsMachineUILanguageId = v4;
v3 = MigrateOOBELanguageToInstallationLanguage();
}
ExReleaseResourceLite(*(&stru_140CF2E80 + 658));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v3;
}
return result;
}Referenced by:
No references.