PfpGetParameter
INT64 __stdcall PfpGetParameter(
PVOID ParametersKey,
WCHAR *ValueNameBuffer,
UINT64 ValueType,
PVOID Value,
UINT64 *ValueSize){
int v7;
INT64 result;
unsigned int v9;
ULONG ResultLength;
struct _UNICODE_STRING DestinationString;
char KeyValueInformation[4];
int v13;
unsigned int Src;
UINT8 Src_4;
ResultLength = 272;
DestinationString = 0i64;
v7 = ValueType;
RtlInitUnicodeString(&DestinationString, ValueNameBuffer, ValueType);
if( !ParametersKey )
return 3221225485i64;
LODWORD(result) = ZwQueryValueKey(
ParametersKey,
&DestinationString,
KeyValuePartialInformation,
KeyValueInformation,
0x110u,
&ResultLength);
if( (int)result >= 0 )
{
if( ResultLength < 0x10 )
{
return 3221225473i64;
}
else if( v13 == v7 )
{
v9 = Src;
if( Src > *(_DWORD *)ValueSize )
{
return 3221225507i64;
}
else
{
memmove((UINT8 *)Value, &Src_4, Src);
result = 0i64;
*(_DWORD *)ValueSize = v9;
}
}
else
{
return 3221225508i64;
}
}
return result;
}Referenced by:
PfSnParametersRead
PfpParametersInitialize
PfpParametersRead
PfpSetBaseTime