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)); } }
public Task Subscribe(string group) { return(SubscribeFunc.Invoke(group)); }