How can I create multiple metadata providers?

Here is my code, it is a custom code using “MultiChannelMetadataProvider” sample as base, and I am trying to code two or maybe more bounding box provider to Xprotect

private MetadataProviderChannel _boundingBoxProviderChannel_1;
private MetadataProviderChannel _boundingBoxProviderChannel_2;
 
var hardwareDefinition = new HardwareDefinition(
                    PhysicalAddress.Parse("001122334466"),
                    "MetadataProvider")
            {
                Firmware = "v10",
                MetadataDevices =
                    {
                        MetadataDeviceDefintion.CreateBoundingBoxDevice(),
                        MetadataDeviceDefintion.CreateBoundingBoxDevice()
                    }
            };
 
 _metadataProviderService = new MediaProviderService();
 
            Console.WriteLine("=================================/ CREATE CHANNEL METADATA PROVIDERS /=================================");
            // Create a provider to handle channel 1
            Console.WriteLine("Create a provider to handle channel 1");
            _boundingBoxProviderChannel_1 = _metadataProviderService.CreateMetadataProvider(1);
            _boundingBoxProviderChannel_1.SessionOpening += MetadataProviderSessionOpening;
            _boundingBoxProviderChannel_1.SessionClosed += MetadataProviderSessionClosed;
            _boundingBoxProviderChannel_1.ParametersChanged += MetadataProviderParametersChanged;
            //_boundingBoxProviderChannel.ParameterDictionary["ValidTime"] = "10";      // We can override the default, if it make sense
 
            // Create a provider to handle channel 2
            Console.WriteLine("Create a provider to handle channel 2");
            _boundingBoxProviderChannel_2 = _metadataProviderService.CreateMetadataProvider(2);
            _boundingBoxProviderChannel_2.SessionOpening += MetadataProviderSessionOpening;
            _boundingBoxProviderChannel_2.SessionClosed += MetadataProviderSessionClosed;
            _boundingBoxProviderChannel_2.ParametersChanged += MetadataProviderParametersChanged;
            //_boundingBoxProviderChannel.ParameterDictionary["ValidTime"] = "10";      // We can override the default, if it make sense
 
            Console.WriteLine("=================================/ CREATE CHANNEL METADATA PROVIDERS /=================================");
 
            _metadataProviderService.Init(52123, "password", hardwareDefinition);
 
 void SendData(object obj)
        {
            var token = (CancellationToken)obj;
 
            while (token.IsCancellationRequested == false)
            {
                SendBoundingBoxData1();
                SendBoundingBoxData2();
 
                Thread.Sleep(_timeBetweenMetadata);
            }
        }
 
 private void SendBoundingBoxData1()
        {
            Console.WriteLine("Sending Data to channel 1");
            const string objectId = "1";
            var utcNow = DateTime.UtcNow.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff'Z'");
            string str_metadata = "<?xml version=\"1.0\" encoding=\"utf-8\"?><tt:MetadataStream xmlns:tt=\"http://www.onvif.org/ver10/schema\"><tt:VideoAnalytics><tt:Frame UtcTime=\"" + utcNow + "\"><tt:Object ObjectId=\"" + objectId + "\"><tt:Appearance><tt:Shape><tt:BoundingBox bottom=\"0.2500001\" top=\"0.7500001\" right=\"0.7500001\" left=\"0.2500001\" /><tt:CenterOfGravity x=\"0\" y=\"0\" /></tt:Shape></tt:Appearance></tt:Object></tt:Frame></tt:VideoAnalytics></tt:MetadataStream>";
            var result_1 = _boundingBoxProviderChannel_1.QueueMetadata(str_metadata, DateTime.UtcNow);
            if (result_1 == false)
                Trace.WriteLine(string.Format("{0}: Failed to write to bounding box channel", DateTime.UtcNow));
            else
            {
                str_metadata = MetadataUpdate(objectId);
                BeginInvoke(new MethodInvoker(() =>
                {
                    if (sourceComboBox.SelectedIndex == 0)
                    {
                        DisplayMetadata(str_metadata);
                    }
                }));
            }            
        }

You don’t write what you observe, what errors, if any, you see. One possible cause that it does not work is explained here: https://developer.milestonesys.com/s/article/Can-I-have-multiple-MIP-Driver-based-devices