private Win32Error Initialize <T>(SubscribeFunc func, IFirewallEnumTemplate <FirewallNetEvent> template) where T : IFwNetEvent
        {
            _callback     = Callback <T>;
            _callback_ptr = Marshal.GetFunctionPointerForDelegate(_callback);
            FWPM_NET_EVENT_SUBSCRIPTION0 sub = new FWPM_NET_EVENT_SUBSCRIPTION0();

            using (var list = new DisposableList())
            {
                sub.enumTemplate = template?.ToTemplateBuffer(list).DangerousGetHandle() ?? IntPtr.Zero;
                return(func(_engine.Handle, sub, _callback_ptr, IntPtr.Zero, out _handle));
            }
        }
Exemplo n.º 2
0
 public Task Subscribe(string group)
 {
     return(SubscribeFunc.Invoke(group));
 }