3.1.4.1.14 NspiModProps (Opnum 11)

The NspiModProps method is used to modify the properties of an object in the address book. This protocol supports the PidTagUserX509Certificate ([MS-OXPROPS] section 2.1055) and PidTagAddressBookX509Certificate ([MS-OXPROPS] section 2.575) properties.

 long NspiModProps(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD Reserved,
   [in] STAT* pStat,
   [in, unique] PropertyTagArray_r* pPropTags,
   [in] PropertyRow_r* pRow
 );

hRpc: An RPC context handle, as specified in section 2.2.10.

Reserved: A DWORD [MS-DTYP] value reserved for future use.

pStat: A reference to a STAT block that describes a logical position in a specific address book container.

pPropTags: The value NULL or a reference to a PropertyTagArray_r. Contains list of the proptags of the columns that client requests all values to be removed from.

pRow: A PropertyRow_r value. Contains an address book row.

Return Values: The server returns a long value that specifies the return status of the method.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol, as specified in [MS-RPCE].

Server Processing Rules: Upon receiving this message, the server MUST process the data from the message subject to the following constraints:

  1. If the CodePage field of the input parameter pStat contains the value CP_WINUNICODE, the server MUST return one of the return values specified in section 2.2.1.2. No further constraints are applied to server processing of this method; in this case server behavior is undefined. Note especially that there is no constraint on the data the server returns in any output parameter other than the return value, nor is there any constraint on how or if the server changes its state.

  2. If the server returns any return value other than "Success", the server MUST NOT modify any properties of any objects in the address book.

  3. The server MAY make additional validations, as described in section 5. If the server chooses to limit the visibility of data based on these validations, the server MUST proceed as if that data did not exist in the address book.

  4. If the Reserved input parameter contains any value other than 0, the server MUST ignore the value.

  5. If the input parameter pPropTags is NULL, the server MUST return the value "InvalidParameter".

  6. If the server is unable to locate the object specified by the CurrentRec field of the input parameter pStat, the server MUST return the value "InvalidParameter".

  7. If the server is able to locate the object, but will not allow modifications to the object due to its display type, the server MUST return the value "InvalidObject".

  8. The server MUST remove all values for all properties specified in the input parameter pPropTags from the object specified by the field CurrentRec in the input parameter pStat.

  9. The server MUST remove all values for all properties specified in the input parameter pRow from the object specified by the field CurrentRec in the input parameter pStat.

  10. The server SHOULD<7> add all values for all properties specified in the input parameter pRow to the object specified by the field CurrentRec in the input parameter pStat.

  11. If the server is unable to apply the modifications specified for any other reason, the server MUST return the value "AccessDenied".

  12. If no other return values have been specified by these constraints, the server MUST return the return value "Success".