12 using System.Collections.Generic;
13 using System.ComponentModel;
17 using System.Windows.Forms;
19 using System.Globalization;
26 string value =
string.Empty;
28 uint requestRegistration = 0;
29 string processId =
"0";
31 uint debugModules = 0xffff;
32 uint filterStatus = 0;
33 uint returnStatus = 0;
34 uint eventNotification = 0;
35 uint shareAccessFlags = 0;
37 public bool isMonitorFilter =
false;
52 this.optionType = formType;
53 this.value = defaultValue;
54 this.isMonitorFilter = _isMoitorFilter;
56 InitializeComponent();
62 this.optionType = formType;
63 this.value = defaultValue;
65 InitializeComponent();
69 public uint ShareAccessFlags
71 get {
return shareAccessFlags; }
74 public uint EventNotification
76 get {
return eventNotification; }
81 get {
return filterStatus; }
83 public uint ReturnStatus
85 get {
return returnStatus; }
88 public uint RequestRegistration
90 get {
return requestRegistration; }
93 public string ProcessId
95 get {
return processId; }
99 public uint AccessFlags
101 get {
return accessFlags; }
104 public uint DebugModules
106 get {
return debugModules; }
112 this.Text = optionType.ToString();
120 listView1.Columns.Add(
"Select file event type", 200,
System.Windows.Forms.HorizontalAlignment.Left);
122 eventNotification = uint.Parse(value);
124 foreach (FilterAPI.EVENTTYPE
eventType in Enum.GetValues(typeof(FilterAPI.EVENTTYPE)))
127 if (
eventType == FilterAPI.EVENTTYPE.NONE)
134 ListViewItem lvItem =
new ListViewItem(item, 0);
137 if ((eventNotification & (uint)
eventType) > 0)
139 lvItem.Checked =
true;
142 listView1.Items.Add(lvItem);
152 listView1.Columns.Add(
"Select Register I/O type", 400,
System.Windows.Forms.HorizontalAlignment.Left);
154 requestRegistration = uint.Parse(value);
156 foreach (FilterAPI.MessageType messageType in Enum.GetValues(typeof(FilterAPI.MessageType)))
158 string item = messageType.ToString();
160 if (item.ToLower().StartsWith(
"pre") && isMonitorFilter)
166 ListViewItem lvItem =
new ListViewItem(item, 0);
167 lvItem.Tag = messageType;
169 if ((requestRegistration & (uint)messageType) > 0)
171 lvItem.Checked =
true;
174 listView1.Items.Add(lvItem);
182 Process[] processlist = Process.GetProcesses();
186 listView1.Columns.Add(
"Process Id", 100,
System.Windows.Forms.HorizontalAlignment.Left);
187 listView1.Columns.Add(
"Process Name", 300,
System.Windows.Forms.HorizontalAlignment.Left);
189 List<uint> pidList =
new List<uint>();
191 string[] pids = value.Split(
';');
192 foreach (
string pid
in pids)
194 if (!
string.IsNullOrEmpty(pid))
196 pidList.Add(uint.Parse(pid));
201 for (
int i = 0; i < processlist.Length; i++)
203 string[] item =
new string[2];
204 item[0] = processlist[i].Id.ToString();
205 item[1] = processlist[i].ProcessName;
207 ListViewItem lvItem =
new ListViewItem(item, 0);
209 lvItem.Tag = processlist[i].Id;
211 if (pidList.Contains((uint)(processlist[i].Id)))
213 lvItem.Checked =
true;
216 listView1.Items.Add(lvItem);
227 listView1.Columns.Add(
"Select AccessFlag", 400,
System.Windows.Forms.HorizontalAlignment.Left);
229 accessFlags = uint.Parse(value);
231 foreach (FilterAPI.AccessFlag accessFlag in Enum.GetValues(typeof(FilterAPI.AccessFlag)))
233 if (accessFlag < FilterAPI.AccessFlag.FILE_ENCRYPTION_RULE )
239 string item = accessFlag.ToString();
240 ListViewItem lvItem =
new ListViewItem(item, 0);
241 lvItem.Tag = accessFlag;
243 if (((uint)accessFlag & accessFlags) > 0)
245 lvItem.Checked =
true;
248 listView1.Items.Add(lvItem);
258 listView1.Columns.Add(
"Select AccessFlag", 400,
System.Windows.Forms.HorizontalAlignment.Left);
260 shareAccessFlags = uint.Parse(value);
262 foreach (FilterAPI.SecureFileAccessRights accessFlag in Enum.GetValues(typeof(FilterAPI.SecureFileAccessRights)))
264 string item = accessFlag.ToString();
265 ListViewItem lvItem =
new ListViewItem(item, 0);
266 lvItem.Tag = accessFlag;
268 if (((uint)accessFlag & shareAccessFlags) > 0)
270 lvItem.Checked =
true;
273 listView1.Items.Add(lvItem);
284 listView1.Columns.Add(
"Select Filter Status", 400,
System.Windows.Forms.HorizontalAlignment.Left);
286 filterStatus = uint.Parse(value);
288 foreach (FilterAPI.FilterStatus status in Enum.GetValues(typeof(FilterAPI.FilterStatus)))
290 string item = status.ToString();
291 ListViewItem lvItem =
new ListViewItem(item, 0);
294 if (((uint)status & filterStatus) > 0)
296 lvItem.Checked =
true;
299 listView1.Items.Add(lvItem);
309 listView1.Columns.Add(
"Select Only One Status", 400,
System.Windows.Forms.HorizontalAlignment.Left);
311 returnStatus = uint.Parse(value);
315 string item = status.ToString();
316 ListViewItem lvItem =
new ListViewItem(item, 0);
319 if (((uint)status & filterStatus) > 0)
321 lvItem.Checked =
true;
324 listView1.Items.Add(lvItem);
332 private void button_Ok_Click(
object sender, EventArgs e)
334 requestRegistration = 0;
335 processId =
string.Empty;
338 eventNotification = 0;
339 shareAccessFlags = 0;
341 foreach (ListViewItem item
in listView1.CheckedItems)
346 eventNotification |= (uint)item.Tag;
350 requestRegistration |= (uint)item.Tag;
353 int pid = (int)item.Tag;
354 processId += pid.ToString() +
";";
358 accessFlags |= (uint)item.Tag;
362 shareAccessFlags |= (uint)item.Tag;
366 filterStatus |= (uint)item.Tag;
370 returnStatus |= (uint)item.Tag;
377 private void button_SelectAll_Click(
object sender, EventArgs e)
379 foreach (ListViewItem item
in listView1.Items)
385 private void button_ClearAll_Click(
object sender, EventArgs e)
387 foreach (ListViewItem item
in listView1.Items)
389 item.Checked =
false;
enum _FilterStatus FilterStatus