VfNotifyOfHibernate
VOID __stdcall VfNotifyOfHibernate(UINT8 Entering){
UINT64 *v1;
UINT64 v2;
NTSTATUS IsVerifierExtensionEnabled;
__int64 v4;
char v5;
int v6;
if( Entering )
{
if( ViVerifyDma )
{
ViEnableAfterHibernate = 1;
VfDisableHalVerifier();
}
}
else
{
if( !ViEnableAfterHibernate )
return;
v1 = (UINT64 *)ViAdapterList;
ViVerifyDma = 1;
ViEnableAfterHibernate = 0;
while( &ViAdapterList != v1 )
{
v2 = v1[2];
if( v2 )
*(_QWORD *)(v2 + 8) = &ViDmaOperations;
v1 = (UINT64 *)*v1;
}
}
IsVerifierExtensionEnabled = VfIsVerifierExtensionEnabled();
if( IsVerifierExtensionEnabled == v6 )
{
if( ViFnExtensionHiberFunc )
{
LOBYTE(v4) = v5;
((void(__fastcall *)(__int64))ViFnExtensionHiberFunc)(v4);
}
}
}Referenced by:
PopInvokeSystemStateHandler