RtlpMuiRegLoadInstalled
NTSTATUS __stdcall RtlpMuiRegLoadInstalled(
VOID *ParentDescriptor,
VOID *ExplicitDescriptor,
VOID **NewDescriptor,
_GUID *ObjectType,
UINT8 IsDirectoryObject,
UINT64 AutoInheritFlags,
_SECURITY_SUBJECT_CONTEXT *SubjectContext,
_GENERIC_MAPPING *GenericMapping,
_POOL_TYPE PoolType){
int InstallUILanguage;
_MUILANGUAGES *Languages;
_MUISTRINGPOOL *StringPool;
BOOL v13;
WCHAR v14;
const WCHAR *v15;
NTSTATUS result;
InstallUILanguage = 0;
if( !ParentDescriptor )
return -1073741811;
if( PsUILanguageComitted )
{
InstallUILanguage = ZwQueryInstallUILanguage((UINT16 *)ParentDescriptor + 2);
if( InstallUILanguage < 0 || ((*((_WORD *)ParentDescriptor + 2) - 4096) & 0xFBFF) == 0 )
goto LABEL_12;
RtlpLoadInstallLanguageFallback(
(_MUIREGISTRYINFO *)ParentDescriptor,
(UINT16 *)ParentDescriptor + 3,
(UINT16 *)ParentDescriptor + 4);
}
RtlpMuiRegFreeRegistryInfo((_MUIREGISTRYINFO *)ParentDescriptor, 0x3FFui64);
Languages = RtlpMuiRegCreateLanguages();
*((_QWORD *)ParentDescriptor + 3) = Languages;
if( !Languages )
{
InstallUILanguage = -1073741801;
LABEL_12:
RtlpMuiRegFreeRegistryInfo((_MUIREGISTRYINFO *)ParentDescriptor, 0x3FFui64);
return InstallUILanguage;
}
*(_DWORD *)ParentDescriptor |= 1u;
StringPool = RtlpMuiRegCreateStringPool(0xFFFFFFFFi64, 0xFFFFFFFFi64);
*((_QWORD *)ParentDescriptor + 4) = StringPool;
if( !StringPool )
goto LABEL_12;
*(_DWORD *)ParentDescriptor |= 2u;
v13 = IsMachineLanguageListInMutableLocation();
v15 = L"\\Registry\\Machine\\OSDATA\\System\\CurrentControlSet\\Control\\MUI\\UILanguages";
if( !v13 )
v15 = L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\MUI\\UILanguages";
InstallUILanguage = RtlpMuiRegLoadInstalledFromKey((_MUIREGISTRYINFO *)ParentDescriptor, v15, v14);
if( InstallUILanguage < 0 )
goto LABEL_12;
result = RtlpMuiRegValidateInstalled((_MUIREGISTRYINFO *)ParentDescriptor);
InstallUILanguage = result;
if( result < 0 )
goto LABEL_12;
return result;
}Referenced by:
No references.