SeQuerySecureBootPolicyValue
NTSTATUS __stdcall SeQuerySecureBootPolicyValue(
const _UNICODE_STRING *ValuePath,
const _UNICODE_STRING *ValueName,
UINT64 ValueType,
VOID *Data,
UINT64 DataSize,
UINT64 *ResultDataSize){
int v7;
NTSTATUS PolicyValueByRef;
_DWORD *MatchingRegistryRule;
unsigned int v11;
size_t Size;
VOID *Src;
Src = 0i64;
Size = 0;
v7 = ValueType;
if( !*(&stru_140CF2E80 + 911) )
return -2143092730;
MatchingRegistryRule = SepSecureBootFindMatchingRegistryRule(
(__int64)ValuePath,
(_UNICODE_STRING *)ValuePath,
(_UNICODE_STRING *)ValueName);
if( !MatchingRegistryRule )
return -1073741772;
PolicyValueByRef = SepSecureBootGetPolicyValueByRef(
(unsigned __int16 *)(qword_140CF9DA0 + (unsigned int)MatchingRegistryRule[3]),
v7,
&Src,
(int *)&Size);
if( PolicyValueByRef >= 0 )
{
v11 = Size;
*(_DWORD *)ResultDataSize = Size;
if( Data )
{
if( (unsigned int)DataSize >= v11 )
memmove(Data, Src, v11);
else
return -1073741789;
}
}
return PolicyValueByRef;
}Referenced by:
No references.