2.2.2.1 RopModifyPermissions ROP Request Buffer

The following descriptions define valid fields for the RopModifyPermissions ROP request buffer ([MS-OXCROPS] section 2.2.10.1.1).

ModifyFlags (1 byte):  A set of flags that control how the server uses the values of the PidTagMemberRights property (section 2.2.7) and the flags of the PermissionData structures. The valid flags for this field are specified in the following table. The client MUST NOT set any other flags.

Flag name

Value

Meaning

ReplaceRows

0x01

If this flag is set, the server MUST replace all existing entries except the default user entry in the current permissions list with the ones contained in the PermissionsData field. (In this case, each PermissionData structure in the PermissionsData field MUST have the AddRow flag set.) If this flag is not set, the server MUST add, update, or delete entries in the current permissions list according to the changes specified in the PermissionsData field.

The client SHOULD<1> set this flag when copying the access control list (ACL) from the Calendar folder to the Freebusy Data folder.

IncludeFreeBusy

0x02

If this flag is set, the server MUST apply the settings of the FreeBusySimple and FreeBusyDetailed flags of the PidTagMemberRights property when modifying the permissions of the Calendar folder. This flag MUST be set if the client sets either the FreeBusySimple flag or the FreeBusyDetailed flag.

The client MUST NOT set this flag if the server version is less than 8.0.360.0, as specified in [MS-OXCRPC], or the folder is not the Calendar folder.

ModifyCount (2 bytes):  An integer that specifies the number of structures contained in the PermissionsData field.

PermissionsData (variable):  An array of PermissionData structures (section 2.2.2.1.1). Each PermissionData structure specifies details for adding a new entry to the permissions list, updating an existing entry in the permissions list, or deleting an entry from the permissions list. There is one PermissionData structure for each entry to be added, updated, or deleted.

If the ReplaceRows flag is set in the ModifyFlags field, entries can only be added. Therefore, each PermissionData structure contained in this field MUST have the AddRow flag set if the ReplaceRows flag is set.