4.3 Modifying File Server Resource Manager Protocol Directory Quota Properties Derived from Templates
File Server Resource Manager Protocol directory quota screen object properties can be modified through method calls on the IFsrmQuotaTemplate interface (section 3.2.4.2.20) of the source template for the quota. The following describes how a client can change the properties of all the quotas derived from a particular template:
The client requests the creation of an instance of the Quota Template Manager on the local machine by calling CoCreateInstance with the class GUID of the Quota Template Manager, requesting an instance of the Quota Template Manager on the server.
The server returns a reference to the IFsrmQuotaTemplateManager interface (section 3.2.4.2.22).
The client calls the method IFsrmQuotaTemplateManager::GetTemplate (section 3.2.4.2.22.2), passing in the name of the quota template that the client wants to get.
The server returns a reference to the IFsrmQuotaTemplate interface of the quota template with the specified name back to the client.
The client calls the IFsrmQuotaBase::QuotaLimit (put) (section 3.2.4.2.14.3) method with the new quota limit for the template.
The server returns S_OK, signifying it is maintaining the new quota limit.
The client calls the IFsrmQuotaTemplate::CommitAndUpdateDerived (section 3.2.4.2.17.4) method, specifying FsrmTemplateApplyOptions_ApplyToDerivedAll.
The server returns S_OK, signifying that it committed the changes to the template and updated all the quotas and auto apply quotas that were derived from the template. The server creates a DerivedObjectsResult object and populates it with the IFsrmQuotaTemplate pointers of the updated quotas and the HRESULT values that correspond to the IFsrmQuotaTemplate::CommitAndUpdateDerived (section 3.2.4.2.17.4) call for each template.
The client calls IFsrmDerivedObjectsResult::DerivedObjects (section 3.2.4.2.13.1).
The server returns the IFsrmCollection (section 3.2.4.2.1) of IFsrmQuotaTemplate pointers that correspond to the updated quota template objects.
The client calls IFsrmDerivedObjectsResult::Results (get) (section 3.2.4.2.13.2).
The server returns the IFsrmCollection of HRESULT values that correspond to the IFsrmQuotaTemplate::CommitAndUpdateDerived call for each template.
The client can enumerate the quota templates and HRESULTs in the two collections by following steps 5 through 15 of section 4.1.

Figure 3: Flow diagram for modifying directory quota properties