PopNotifyPolicyDevice
NTSTATUS __stdcall PopNotifyPolicyDevice(VOID *Notification, VOID *Context){
unsigned int v2;
__int64 v3;
bool v5;
char v7;
v2 = (unsigned int)Context;
v3 = *(_QWORD *)((char *)Notification + 4) - *(_QWORD *)&GUID_DEVICE_INTERFACE_REMOVAL.Data1;
if( !v3 )
v3 = *(_QWORD *)((char *)Notification + 12) - *(_QWORD *)GUID_DEVICE_INTERFACE_REMOVAL.Data4;
v5 = v3 == 0;
if( (_DWORD)Context == 8 )
{
PopAcquirePolicyLock();
PopChangeCapability((UINT8 *)&stru_140C23628 + 2091, !v5);
PopReleasePolicyLock();
}
else if( (_DWORD)Context == 3 )
{
PopAcquireTransitionLock();
PopAcquirePolicyLock();
v7 = PopHiberEnabled;
PopEnableHiberFile(0, 0);
if( v7 )
PopEnableHiberFile(1u, 0);
PopReleasePolicyLock();
PopReleaseTransitionLock();
}
else if( v3 )
{
PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopPolicyDeviceLock);
PopConnectToPolicyDevice(v2, *((_QWORD *)Notification + 5));
PopReleaseRwLock((_POP_RW_LOCK *)&PopPolicyDeviceLock);
}
return 0;
}Referenced by:
No references.