public RopModifyRulesResponse RopModifyRules(uint objHandle, ModifyRuleFlag modifyRulesFlags, RuleData[] ruleData)
{
this.rawData = null;
this.response = null;
this.responseSOHs = null;
RopModifyRulesRequest modifyRulesRequest;
RopModifyRulesResponse modifyRulesResponse;
modifyRulesRequest.RopId = 0x41;
modifyRulesRequest.LogonId = 0x0;
modifyRulesRequest.InputHandleIndex = 0x00;
modifyRulesRequest.ModifyRulesFlags = (byte)modifyRulesFlags;
modifyRulesRequest.RulesCount = 0;
if (ruleData != null)
{
modifyRulesRequest.RulesCount = (ushort)ruleData.Length;
}
modifyRulesRequest.RulesData = ruleData;
this.responseSOHs = this.DoRPCCall(modifyRulesRequest, objHandle, ref this.response, ref this.rawData);
modifyRulesResponse = (RopModifyRulesResponse)this.response;
// Verify the response of RopModifyRules
this.VerifyRopModifyRules(modifyRulesResponse, modifyRulesRequest);
// modifyRulesResponse.ReturnValue equals 0 means that RopModifyRules is successful.
// So the ruleDatas in modifyRulesRequest is correct.
if (modifyRulesResponse.ReturnValue == 0)
{
this.VerifyPropertiesInRuleData(ruleData[0]);
}
return modifyRulesResponse;
}
#endregion