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.