3.1.5.4.2 GetCompressedReport Method (Opnum 4)

The GetCompressedReport method gets the health information for the specified replication group and the global health data of the DFS-R service on the server. The server MUST encode the report as a field in the format that is specified by the DFS-R compression algorithm in [MS-FRS2] section 3.1.1.1.

 HRESULT GetCompressedReport(
   [in] GUID replicationGroupGuid,
   [in] BSTR referenceMember,
   [in] SAFEARRAY (_VersionVectorData)* referenceVersionVectors,
   [in] long flags,
   [out] SAFEARRAY (_VersionVectorData)* memberVersionVectors,
   [out] BSTR* reportCompressed,
   [out] long* uncompressedReportSize
 );

replicationGroupGuid: MUST be the identifier of the replication group for which the server gets health information. This field corresponds to the objectGUID field of the msDFSR-ReplicationGroup configuration object in Active Directory. The msDFSR-ReplicationGroup is specified in [MS-FRS2] section 2.3.5.

referenceMember: MUST be set to NULL.

referenceVersionVectors: If the flags parameter has REPORTING_FLAGS_BACKLOG set, the set of version vectors for replicated folders on the reference member MUST be passed by using this parameter. Otherwise, this parameter MUST be set to NULL. The VersionVectorData structure is specified in section 2.2.1.4.

flags: MUST be zero or more combinations of values of DfsrReportingFlags enumeration. The DfsrReportingFlags enumeration is specified in section 2.2.1.2.

memberVersionVectors: If the flags parameter has REPORTING_FLAGS_BACKLOG set, the set of version vectors for the replicated folders on the server MUST be returned in this output parameter. The VersionVectorData structure is specified in section 2.2.1.4.

reportCompressed: The compressed report body in the XML format MUST be returned in this output parameter. The format of the XML MUST be the same as for the reportXML member of the GetReport method. This MUST be an encoded field whose format is specified by the DFS-R compression algorithm (as specified in [MS-FRS2] section 3.1.1.1).

uncompressedReportSize: The size, in bytes, of the uncompressed data returned in the reportCompressed parameter.

Return Values: The method MUST return zero on success, or an implementation-specific nonzero HRESULT error code, as specified in [MS-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF on failure. For protocol purposes, all nonzero values MUST be treated as equivalent failures.

After receiving this message, the server MUST create the IServerHealthReport::GetReport message with the same input parameters and then process this message.

If a nonzero return code was received as a result of processing the IServerHealthReport::GetReport message, the server MUST immediately return this return code to the client.

For a zero error code, the server MUST return the size of the uncompressed report that is returned from IServerHealthReport::GetReport through the uncompressedReportSize output parameter. The server MUST also return the information about the version vectors that is returned by IServerHealthReport::GetReport through the memberVersionVectors output parameter.

The server MUST encode the report as a field in the format that is specified by the DFS-R compression algorithm (as specified in [MS-FRS2] section 3.1.1.1). After examining the compressed report size:

  • If the compressed report size is less than the uncompressed size, the server MUST return the compressed report through the reportCompressed output parameter.

  • If the compressed report size is greater than or equal to the uncompressed size, the server MUST return the uncompressed report through the reportCompressed output parameter.

The server MUST return the response to the client. The response MUST contain the output parameters previously described for this method, and the status of the operation.