Глючный DirectShow

Здравствуйте. Может кто нибудь знает как в директ шоу включить экстремальный уровень протоколирования работы??

Есть граф с граббером. На большинстве компов все отлично работает. Как минимум с 3 разными декодерами видео стабильно удается снимать с камеры и выдергивать кадры с помощью сэмплграббера.

Но вот попалось 2 компа с Windows 10 Pro 64-bit (10.0, Build 19043) (19041.vb_release.191206-1406)
И полный стопор. Причем весь граф строится без единой ошибки. Запускается рендеринг тоже успешно. Но колбеки не идут хоть тресни. Ни в системном журнале нету ошибок ни в моем софте.

Ну как такое может быть то?? Кодеки переустановил, с Video Renderer картинка в билдере отображается. А ко мне в софт не идет хоть убейся…

Может быть есть какой нибудь уровень протоколирвоания?? Каким образом узнать что и где пошло не так??

Короче нашлось решение. Это истеричный каспер блокировал доступ к видеокамере. ((((
И даже слова не сказал. охх … Условно можно считать вопрос решеным, но если вдруг есть возможность включить протоколирование то буду благодарен за подсказку.

Microsoft говорит что есть возможность логирования.
Debug Logging
Это так понимаю только для этапа отладки.
А вот Event Tracing in DirectShow похоже и для релиза можно прикрутить.

Ну такой то лог у меня есть на всем этапе построения графа. Каждое действие проверяется на ошибку.

У меня вроде C# … не очень понятно что этот трейсер дает … Это ему обертку нужно делать получается.

Вообще в одном примере нашел вот такой вот процесс.

            grabberThread = new Thread(new ThreadStart(() =>
           {
               stop = false;
               EventCode ev;
               IntPtr p1, p2;

               while (!stop)
               {
                   System.Threading.Thread.Sleep(100);
                    //Console.Write(".");                    
                    //System.Windows.Forms.Application.DoEvents();
                    while (mediaEvent.GetEvent(out ev, out p1, out p2, 0) == 0)
                   {
                       locAction?.Invoke("ev = " + ev + ";  p1 = " + string.Format("{0:X}", p1) + ";  p2 = " + string.Format("{0:X}", p2));

                       if (ev == EventCode.Complete || ev == EventCode.UserAbort)
                       {
                           Console.WriteLine("Done!");
                           stop = true;
                       }
                       else
                       if (ev == EventCode.ErrorAbort)
                       {
                           Console.WriteLine("An error occured: HRESULT={0:X}", p1);
                           mediaControl.Stop();
                           stop = true;
                       }
                       mediaEvent.FreeEventParams(ev, p1, p2);
                   }

               }
               grabberThread = null;
           }));

            grabberThread.Start();

Поток получает любые события внутри графа ну и можно их как то отрабатывать.