PopNotifyPolicyDevice

INT64 __stdcall PopNotifyPolicyDevice(PVOID Notification, PVOID 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(&PresentFlag, !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((UINT64)&PopPolicyDeviceLock);
  }
  return 0i64;
}

Referenced by:

No references.