WmipFindRegEntryByDevice

LIST_ENTRY *__fastcall WmipFindRegEntryByDevice(DEVICE_OBJECT *DeviceObject){
  UINT64 v2; 
  unsigned __int8 v3; 
  unsigned __int64 v4; 
  VOID **RegEntryByDevice; 
  LIST_ENTRY *v6; 
  KeWaitForSingleObject(&WmipSMMutex, Executive, 0, 0, 0i64);
  KeAcquireSpinLockRaiseToDpc(&WmipRegistrationSpinLock, v2);
  v4 = v3;
  RegEntryByDevice = WmipDoFindRegEntryByDevice(DeviceObject);
  v6 = (LIST_ENTRY *)RegEntryByDevice;
  if( RegEntryByDevice )
    _InterlockedIncrement((volatile signed __int32 *)RegEntryByDevice + 12);
  KxReleaseSpinLock(&WmipRegistrationSpinLock);
  __writecr8(v4);
  KeReleaseMutex(&WmipSMMutex, 0);
  return v6;
}

Referenced by:

IoWMIRegistrationControl
WmipDeregisterDevice
WmipQueryWmiDataBlock
WmipRegisterDevice
WmipUpdateRegistration