30 {
33 {
35 if (aceType ==
AceType.AccessAllowed || aceType ==
AceType.AccessDenied || aceType ==
AceType.SystemAudit || aceType ==
AceType.SystemAlarm)
36 {
37 isCallback = false;
38 }
39 else
40 {
41 if (aceType !=
AceType.AccessAllowedCallback && aceType !=
AceType.AccessDeniedCallback && aceType !=
AceType.SystemAuditCallback && aceType !=
AceType.SystemAlarmCallback)
42 {
43 goto IL_0114;
44 }
45 isCallback = true;
46 }
47 if (aceType ==
AceType.AccessAllowed || aceType ==
AceType.AccessAllowedCallback)
48 {
50 }
51 else if (aceType ==
AceType.AccessDenied || aceType ==
AceType.AccessDeniedCallback)
52 {
54 }
55 else if (aceType ==
AceType.SystemAudit || aceType ==
AceType.SystemAuditCallback)
56 {
58 }
59 else
60 {
61 if (aceType !=
AceType.SystemAlarm && aceType !=
AceType.SystemAlarmCallback)
62 {
63 goto IL_0114;
64 }
66 }
68 int num2 = 0;
69 accessMask = binaryForm[num] + (binaryForm[num + 1] << 8) + (binaryForm[num + 2] << 16) + (binaryForm[num + 3] << 24);
70 num2 += 4;
72 opaque = null;
73 int num3 = (binaryForm[
offset + 3] << 8) + binaryForm[
offset + 2];
74 if (num3 % 4 == 0)
75 {
76 int num4 = num3 - 4 - 4 - (byte)sid.BinaryLength;
77 if (num4 > 0)
78 {
79 opaque = new byte[num4];
80 for (
int i = 0;
i < num4;
i++)
81 {
82 opaque[
i] = binaryForm[
offset + num3 - num4 +
i];
83 }
84 }
85 return true;
86 }
87 }
88 goto IL_0114;
89 IL_0114:
91 accessMask = 0;
92 sid = null;
93 isCallback = false;
94 opaque = null;
95 return false;
96 }
GenericAce(AceType type, AceFlags flags)
SecurityIdentifier SecurityIdentifier
AceQualifier AceQualifier
static readonly int MinBinaryLength