VfThunkAddTargetNotify

VOID __stdcall VfThunkAddTargetNotify(_VF_TARGET_DRIVER *TargetNode){
  union {_VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks;struct {unsigned __int32 SnapSharedExportsFailed : 1;unsigned __int32 Spare : 31;} Flags;} *p_u1; 

  p_u1 = &TargetNode->u1;
  if( !(unsigned int)ViThunkCreateSharedExportInformation(
                        (char *)TargetNode->TreeNode.Base.p,
                        (__int64)&VfRegularThunks,
                        48i64,
                        &VfRegularThunksBitMapHeader,
                        (void **)&TargetNode->u1.AllSharedExportThunks.SharedExportThunks)
    || !(unsigned int)ViThunkCreateSharedExportInformation(
                        (char *)TargetNode->TreeNode.Base.p,
                        (__int64)&VfPoolThunks,
                        48i64,
                        &VfPoolThunksBitMapHeader,
                        (void **)&TargetNode->u1.AllSharedExportThunks.PoolSharedExportThunks)
    || !(unsigned int)ViThunkCreateSharedExportInformation(
                        (char *)TargetNode->TreeNode.Base.p,
                        (__int64)&VfOrderDependentThunks,
                        56i64,
                        &VfOrderDependentThunksBitMapHeader,
                        (void **)&TargetNode->u1.AllSharedExportThunks.OrderDependentSharedExportThunks)
    || !(unsigned int)ViThunkCreateSharedExportInformation(
                        (char *)TargetNode->TreeNode.Base.p,
                        (__int64)&VfXdvThunks,
                        48i64,
                        &VfXdvThunksBitMapHeader,
                        (void **)&TargetNode->u1.AllSharedExportThunks.XdvSharedExportThunks) )
  {
    ViThunkFreeSharedThunksArray((void **)&p_u1->AllSharedExportThunks.SharedExportThunks);
    ViThunkFreeSharedThunksArray((void **)&TargetNode->u1.AllSharedExportThunks.PoolSharedExportThunks);
    ViThunkFreeSharedThunksArray((void **)&TargetNode->u1.AllSharedExportThunks.OrderDependentSharedExportThunks);
    ViThunkFreeSharedThunksArray((void **)&TargetNode->u1.AllSharedExportThunks.XdvSharedExportThunks);
    LODWORD(p_u1->AllSharedExportThunks.SharedExportThunks) |= 1u;
  }
}

Referenced by:

VfTargetDriversAdd