RtlWriteRegistryValue
NTSTATUS __stdcall RtlWriteRegistryValue(
UINT64 RelativeTo,
const WCHAR *Path,
const WCHAR *ValueName,
UINT64 ValueType,
VOID *ValueData,
UINT64 ValueLength){
int v6;
int v8;
NTSTATUS result;
NTSTATUS v10;
UINT64 DataSize;
VOID *KeyHandle;
_UNICODE_STRING DestinationString[2];
KeyHandle = 0i64;
v6 = ValueType;
DestinationString[0] = 0i64;
v8 = RelativeTo;
result = RtlpGetRegistryHandle(RelativeTo, Path, 1u, &KeyHandle);
if( result >= 0 )
{
RtlInitUnicodeString(DestinationString, ValueName);
LODWORD(DataSize) = ValueLength;
v10 = ZwSetValueKey(KeyHandle, DestinationString, 0i64, v6 & 0xFFFFFF, ValueData, DataSize);
if( (v8 & 0x40000000) == 0 )
ZwClose((_HANDLE)KeyHandle);
return v10;
}
return result;
}Referenced by:
EtwStartAutoLogger
EtwpEnableAutoLoggerProvider
EtwpEnumerateAutologgerPath
EtwpEnumerateKeyProviders
ExpWriteSiloTimeZoneMarker
KseKPSOHookDriverTargeted
PerfDiagpSaveActiveDCLLogFileName
RtlSetActiveTimeBias
RtlSetPortableOperatingSystem
RtlpSetTimeZoneInformationWorker
RtlpUpdateDynamicTimeZones
WheapCommitPolicy
WmipSaveGuidSecurityDescriptor