ViDevObjAdd
UINT8 __stdcall ViDevObjAdd(_DEVICE_OBJECT *DeviceObject){
UINT8 v1;
_VF_AVL_TREE_NODE *v2;
_VF_AVL_TREE_NODE *v3;
_VF_AVL_LOCK_CONTEXT Context[4];
v1 = 1;
*(_OWORD *)Context = 0i64;
if( ViDevObjInitialized )
{
v2 = VfAvlReserveNode(&ViDevObjAvl, DeviceObject, 0x150ui64);
if( v2 )
{
LODWORD(v2[1].p) = 0;
VfAvlInitializeLockContext(Context, Exclusive);
VfAvlInsertReservedTreeNode(&ViDevObjAvl, Context, v3);
VfAvlCleanupLockContext(Context);
return v1;
}
_InterlockedExchange(&ViDevObjAllocationFailures, 1);
}
return 0;
}Referenced by:
VerifierIoCreateDevice