ViTargetWMIDeregister
VOID __fastcall ViTargetWMIDeregister(_DEVICE_OBJECT *DeviceObject, VOID *CallerAddress){
int v3;
UINT64 v4;
CHAR *v5;
__int64 v6;
__int64 v7;
__int128 v8;
v8 = 0i64;
VfAvlInitializeLockContext((INT64)&v8, 0i64);
v5 = VfAvlLookupTreeNode(&ViTargetDriversAvl, (INT64)&v8, v4, (unsigned int)(v3 + 1));
if( v5 && (v7 = *((_QWORD *)v5 + 7)) != 0 && *(_DEVICE_OBJECT **)(v7 + 8) == DeviceObject )
{
*(_QWORD *)(v7 + 8) = 0i64;
}
else
{
++ViTargetWMIRegistrationMismatches;
VfAvlEnumerateNodes(
v6,
(__int64)&v8,
(unsigned int(__fastcall *)(PVOID, __int64))ViTargetWMIDeregisterCallback,
(__int64)DeviceObject);
}
VfAvlCleanupLockContext((INT64)&v8);
}Referenced by:
VerifierIoWMIRegistrationControl