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