PopQueryPowerButtonBugcheckEnabled
NTSTATUS __stdcall PopQueryPowerButtonBugcheckEnabled(){
_ETHREAD *CurrentThread;
int v1;
NTSTATUS v2;
int v3;
INT64 enabled;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockSharedEx(&PopPowerButtonBugcheckLock, 0i64);
v1 = PopPowerButtonBugcheckConfig;
v2 = 0;
if( _InterlockedCompareExchange64(&PopPowerButtonBugcheckLock._bf_0, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(&PopPowerButtonBugcheckLock);
KeAbPostRelease(&PopPowerButtonBugcheckLock);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
v3 = v1 - 1;
if( v3 )
{
if( v3 == 1 )
{
v2 = 1;
}
else
{
LODWORD(enabled) = 0;
wil_details_FeatureReporting_ReportUsageToService(
(wil_details_FeatureReportingCache *)&stru_140CF2E80 + 820,
0x8DF90Eui64,
0i64,
0i64,
(FEATURE_LOGGED_TRAITS *)&Feature_PPLEnforcement_logged_traits,
enabled);
}
}
byte_140C20738 = v2;
return v2;
}Referenced by:
PopPowerButtonWorkCallback
PopPowerInformationInternal