13.07.2015 Views

[MS-DFSRH]: DFS Replication Helper Protocol Specification

[MS-DFSRH]: DFS Replication Helper Protocol Specification

[MS-DFSRH]: DFS Replication Helper Protocol Specification

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DateRevisionHistoryRevisionClassComments08/17/2007 1.3.2 Editorial Revised and edited the technical content.09/21/2007 1.4 Minor Revised IDL to include <strong>MS</strong>-DTYP content.10/26/2007 2.0 Major Revised the technical content in response to Trusteefeedback.01/25/2008 2.0.1 Editorial Revised and edited the technical content.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20082 / 81


Table of Contents1 Introduction .............................................................................................................. 61.1 Glossary ................................................................................................................ 61.2 References ............................................................................................................. 71.2.1 Normative References ........................................................................................ 71.2.2 Informative References ...................................................................................... 81.3 <strong>Protocol</strong> Overview (Synopsis) ................................................................................... 81.4 Relationship to Other <strong>Protocol</strong>s ................................................................................. 91.5 Prerequisites/Preconditions ...................................................................................... 91.6 Applicability Statement ............................................................................................ 91.7 Versioning and Capability Negotiation ........................................................................ 91.8 Vendor-Extensible Fields .......................................................................................... 101.9 Standards Assignments ............................................................................................ 102 Messages ................................................................................................................... 112.1 Transport ............................................................................................................... 112.2 Message Syntax ...................................................................................................... 112.2.1 Common Data Types .......................................................................................... 112.2.1.1 Dfsr<strong>Helper</strong>ErrorsEnum .................................................................................. 112.2.1.2 DfsrReportingFlags ....................................................................................... 122.2.1.3 AdAttributeData ........................................................................................... 122.2.1.4 VersionVectorData ....................................................................................... 132.2.1.5 Server Health Report XML ............................................................................. 142.2.1.5.1 xs Namespace ........................................................................................ 142.2.1.5.2 timestamp Element................................................................................. 142.2.1.5.3 folder Element ....................................................................................... 152.2.1.5.4 dfsrStats Element ................................................................................... 162.2.1.5.5 transactions Element .............................................................................. 172.2.1.5.6 file Element ........................................................................................... 182.2.1.5.7 affectedFileSet Element ........................................................................... 192.2.1.5.8 set Element ........................................................................................... 202.2.1.5.9 serviceInfo Element ................................................................................ 222.2.1.5.10 server Element ....................................................................................... 232.2.1.5.11 serverInfo Element ................................................................................. 262.2.1.5.12 drive Element ........................................................................................ 272.2.1.5.13 affectedContentSets Element ................................................................... 282.2.1.5.14 ref Element ............................................................................................ 292.2.1.5.15 errorReferences Element ......................................................................... 302.2.1.5.16 error Element ........................................................................................ 302.2.1.5.17 Types of <strong>DFS</strong> <strong>Replication</strong> Error ................................................................. 312.2.1.5.17.1 EVENT_<strong>DFS</strong>R_SERVICE_INTERNAL_ERROR Message ............................. 322.2.1.5.17.2 EVENT_<strong>DFS</strong>R_SERVICE_RESUME_FAILED_AFTER_BACKUP_RESTOREMessage .......................................................................................... 322.2.1.5.17.3EVENT_<strong>DFS</strong>R_SERVICE_FAILED_PROCESSING_RESTORE_VOLUME_LIST Message ...................................................................................... 322.2.1.5.17.4 EVENT_<strong>DFS</strong>R_SERVICE_INTERNAL_ERROR Message ............................. 322.2.1.5.17.5 EVENT_<strong>DFS</strong>R_SERVICE_RPC_LISTENER_ERROR Message ...................... 332.2.1.5.17.6 EVENT_<strong>DFS</strong>R_SERVICE_DEBUG_LOG_STOP Message ............................ 332.2.1.5.17.7 EVENT_<strong>DFS</strong>R_SERVICE_LOG_INITIALIZATION_FAILED Message ............ 332.2.1.5.17.8 EVENT_<strong>DFS</strong>R_VOLUME_ERROR Message .............................................. 342.2.1.5.17.9 EVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_WRAP Message ................................ 342.2.1.5.17.10 EVENT_<strong>DFS</strong>R_VOLUME_DATABASE_ERROR Message .......................... 35[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20083 / 81


2.2.1.5.17.11 EVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_LOSS Message .............................. 352.2.1.5.17.12 EVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_RECOVERY_FAILED Message ........... 352.2.1.5.17.13 EVENT_<strong>DFS</strong>R_CS_ERROR Message ................................................... 362.2.1.5.17.14 EVENT_<strong>DFS</strong>R_CS_DISABLED Message .............................................. 362.2.1.5.17.15 EVENT_<strong>DFS</strong>R_CS_STAGE_CLEANUP_STARTED Message ...................... 362.2.1.5.17.16 EVENT_<strong>DFS</strong>R_CS_STAGE_CLEANUP_FAILED Message ......................... 372.2.1.5.17.17 EVENT_<strong>DFS</strong>R_CS_STAGE_EXCEEDED_SIZE Message .......................... 382.2.1.5.17.18 EVENT_<strong>DFS</strong>R_CS_STAGE_INACCESSIBLE Message ............................ 382.2.1.5.17.19 EVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_LOCAL Message ................... 392.2.1.5.17.20 EVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_SERVING Message ............... 392.2.1.5.17.21 EVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_WALKING Message .............. 402.2.1.5.17.22 EVENT_<strong>DFS</strong>R_CS_UNSUPPORTED_ENCRYPTED_FILES Message ........... 402.2.1.5.17.23 EVENT_<strong>DFS</strong>R_CS_UNSUPPORTED_REPARSE_TAG Message ................. 412.2.1.5.17.24 EVENT_<strong>DFS</strong>R_CS_DISK_FULL Message ............................................. 412.2.1.5.17.25 EVENT_<strong>DFS</strong>R_CONNECTION_ERROR Message .................................... 422.2.1.5.17.26 EVENT_<strong>DFS</strong>R_CONNECTION_SERVICE_UNREACHABLE Message .......... 422.2.1.5.17.27 EVENT_<strong>DFS</strong>R_CONNECTION_UNRECOGNIZED Message ...................... 432.2.1.5.17.28 EVENT_<strong>DFS</strong>R_INCOMPATIBLE_VERSION Message .............................. 432.2.1.5.17.29 EVENT_<strong>DFS</strong>R_CONFIG_DS_INVALID_DATA Message .......................... 442.2.1.5.17.30 EVENT_<strong>DFS</strong>R_CONFIG_DS_DUPLICATE_DATA Message ...................... 442.2.1.5.17.31 EVENT_<strong>DFS</strong>R_CONFIG_DS_INCONSISTENT_DATA Message ................ 452.2.1.5.17.32 EVENT_<strong>DFS</strong>R_CONFIG_INVALID_PARAMETER_ERROR Message ........... 452.2.1.5.17.33 EVENT_<strong>DFS</strong>R_CONFIG_INVALID_PARAMETER_WARNING Message ....... 452.2.1.5.17.34 EVENT_<strong>DFS</strong>R_CONFIG_DS_INVALID_SCHEMA_VERSION Message ....... 462.2.1.5.17.35 EVENT_<strong>DFS</strong>R_CONFIG_DS_UPDATE_FAILED Message ........................ 462.2.1.5.17.36 EVENT_<strong>DFS</strong>R_CONFIG_WMI_PROVIDER_REGISTRATION_FAILEDMessage .......................................................................................... 472.2.1.5.17.37 EVENT_<strong>DFS</strong>R_CONFIG_VOLUME_NOT_SUPPORTED Message ............... 472.2.1.5.17.38 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING Message ......................................... 472.2.1.5.17.39 EVENT_<strong>DFS</strong>R_CONFIG_CS_ROOT_INVALID Message .......................... 482.2.1.5.17.40 EVENT_<strong>DFS</strong>R_CONFIG_CS_ROOT_STALE Message ............................. 482.2.1.5.17.41 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_FRS1 Message ...................... 492.2.1.5.17.42 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_SYSTEM Message .................. 492.2.1.5.17.43 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_LOG Message ....................... 502.2.1.5.17.44 EVENT_<strong>DFS</strong>R_CONFIG_VOLUME_CONSISTENCY_CHECK_FAILEDMessage .......................................................................................... 502.2.1.5.17.45 EVENT_<strong>DFS</strong>R_CONFIG_NO_CONNECTIONS_ENABLED Message ........... 512.2.1.5.17.46 EVENT_<strong>DFS</strong>R_CONFIG_NO_CONNECTIONS_EXIST Message ................ 513 <strong>Protocol</strong> Details ......................................................................................................... 523.1 Server Role Details .................................................................................................. 523.1.1 Abstract Data Model ........................................................................................... 523.1.2 Timers ............................................................................................................. 523.1.3 Initialization ...................................................................................................... 523.1.4 Higher-Layer Triggered Events ............................................................................ 523.1.5 Message Processing Events and Sequencing Rules ................................................. 523.1.5.1 Methods with Prerequisites ............................................................................ 523.1.5.2 IADProxy Interface ....................................................................................... 523.1.5.2.1 CreateObject Method (Opnum 3) .............................................................. 533.1.5.2.2 DeleteObject Method (Opnum 4) .............................................................. 543.1.5.2.3 ModifyObject Method (Opnum 5) .............................................................. 563.1.5.3 IADProxy2 Interface ..................................................................................... 573.1.5.3.1 CreateObject Method (Opnum 6) .............................................................. 573.1.5.3.2 DeleteObject Method (Opnum 7) .............................................................. 593.1.5.3.3 ModifyObject Method (Opnum 8) .............................................................. 59[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20084 / 81


3.1.5.4 IServerHealthReport Interface ....................................................................... 603.1.5.4.1 GetReport Method (Opnum 3) .................................................................. 613.1.5.4.2 GetCompressedReport Method (Opnum 4) ................................................. 633.1.5.4.3 GetRawReportEx Method (Opnum 5) ......................................................... 643.1.5.4.4 GetReferenceVersionVectors Method (Opnum 6) ........................................ 653.1.5.4.5 GetMemberVersionVectorsAndBacklogCounts Method (Opnum 7) ................. 653.1.5.4.6 GetReferenceBacklogCount Method (Opnum 8) .......................................... 663.1.6 Timer Events..................................................................................................... 663.1.7 Other Local Events ............................................................................................. 663.2 Client Role Details ................................................................................................... 673.2.1 Abstract Data Model ........................................................................................... 673.2.2 Timers ............................................................................................................. 673.2.3 Initialization ...................................................................................................... 673.2.4 Higher-Layer Triggered Events ............................................................................ 673.2.5 Message Processing Events and Sequencing Rules ................................................. 673.2.5.1 Methods with Prerequisites ............................................................................ 673.2.6 Timer Events..................................................................................................... 673.2.7 Other Local Events ............................................................................................. 674 <strong>Protocol</strong> Examples ..................................................................................................... 684.1 Example of Messages Between a Client and Server ...................................................... 684.2 Example of the Server Health Report in XML Format .................................................... 685 Security ..................................................................................................................... 716 Appendix A: Full IDL .................................................................................................. 727 Appendix B: Windows Behavior ................................................................................. 758 Index ......................................................................................................................... 79[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20085 / 81


1 IntroductionThe Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> is a set of DCOM interfacesfor configuring and monitoring the Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>)<strong>Protocol</strong> on a server.1.1 GlossaryThe following terms are defined in [<strong>MS</strong>-GLOS]:Active DirectoryComputer ObjectConnectionContent SetDistinguished Name (DN)EndpointLightweight Directory Access <strong>Protocol</strong> (LDAP)Machine AccountMemberNetBIOS NameOpnumReplicated Folder<strong>Replication</strong> GroupRPC <strong>Protocol</strong> SequenceRPC TransportUniversal Unique Identifier (UUID) or Globally Unique Identifier (GUID)Update Sequence Number (USN)Version VectorVolumeThe following terms are specific to this document:<strong>DFS</strong> <strong>Replication</strong> Health Report, <strong>Replication</strong> Health Report, or Health Report: A reportthat displays information about the operation of the <strong>DFS</strong>-<strong>Replication</strong> (<strong>DFS</strong>-R) service oncomputers in a replication group. The following information is included in the health report:file transfer statistics, the number of files in the replicated folders, disk space use, andreplication errors and warnings.Distributed File System-<strong>Replication</strong> (<strong>DFS</strong>-R): A file replication technology that is included inWindows Server and is used to replicate files, folders, attributes, and file metadata.File Lock: An operating system mechanism that prevents a file that is used in one process frombeing accessed, modified, or deleted from another process.Fully Qualified Domain Name (FQDN): In the context of this document, FQDNs do notinclude the "ldap/" prefix.Partner: A computer that is participating in <strong>DFS</strong>-R file replication.<strong>Replication</strong> Issue: A possible error condition that is relevant to the health report. The possiblereplication issues are:Sharing - A sharing violation occurred.Filtered - The file was filtered from replication on the basis of an implementation-specific filterthat was set in the <strong>DFS</strong>-R service.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20086 / 81


<strong>Replication</strong> Member: See member.Sharing Violation: The failure by a process to read, modify, or delete a file because anotherprocess holds the file lock for this file.USN Journal: A sequence of USN records. The USN journal can be read as a file on NTFS.USN Record: A record that contains information such as time stamps, file names, fileattributes, and parent directory information, per file change.MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used asdescribed in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, orSHOULD NOT.1.2 References1.2.1 Normative ReferencesWe conduct frequent surveys of the normative references to assure their continued availability. Ifyou have any issue with finding a normative reference, please contact dochelp@microsoft.com. Wewill assist you in finding the relevant information. Please check the archive site,http://msdn2.microsoft.com/en-us/library/E4BD6494-06AD-4aed-9823-445E921C9624, as anadditional source.[C706] The Open Group, "DCE 1.1: Remote Procedure Call", C706, August 1997,http://www.opengroup.org/public/pubs/catalog/c706.htm[<strong>MS</strong>-ADTS] Microsoft Corporation, "Active Directory Technical <strong>Specification</strong>", July 2006.[<strong>MS</strong>-DCOM] Microsoft Corporation, "Distributed Component Object Model (DCOM) Remote <strong>Protocol</strong><strong>Specification</strong>", July 2006.[<strong>MS</strong>-DRSR] Microsoft Corporation, "Directory <strong>Replication</strong> Service (DRS) Remote <strong>Protocol</strong><strong>Specification</strong>", July 2006.[<strong>MS</strong>-FRS1] Microsoft Corporation, "File <strong>Replication</strong> Service <strong>Protocol</strong> <strong>Specification</strong>", July 2006.[<strong>MS</strong>-FRS2] Microsoft Corporation, "SD Microsoft Distributed File System <strong>Replication</strong> <strong>Protocol</strong><strong>Specification</strong>", July 2006.[<strong>MS</strong>-GLOS] Microsoft Corporation, "Windows <strong>Protocol</strong>s Master Glossary", March 2007.[<strong>MS</strong>-RPCE] Microsoft Corporation, "Remote Procedure Call <strong>Protocol</strong> Extensions", July 2006.[RFC1001] Network Working Group, "<strong>Protocol</strong> Standard for a NetBIOS Service on a TCP/UDPTransport: Concepts and Methods", RFC 1001, March 1987, http://www.ietf.org/rfc/rfc1001.txt[RFC1002] Network Working Group, "<strong>Protocol</strong> Standard for a NetBIOS Service on a TCP/UDPTransport: Detailed <strong>Specification</strong>s", RFC 1002, March 1987, http://www.ietf.org/rfc/rfc1002.txt[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC2119, March 1997, http://www.ietf.org/rfc/rfc2119.txt[RFC2251] Wahl, M., Howes, T., and Kille, S., "Lightweight Directory Access <strong>Protocol</strong> (v3)", RFC2251, December 1997, http://www.ietf.org/rfc/rfc2251.txt[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20087 / 81


[UNICODE4.0] The Unicode Consortium, "Unicode 4.0.0",http://www.unicode.org/versions/Unicode4.0.0/[XML10] World Wide Web Consortium, "Extensible Markup Language (XML) 1.0 (Third Edition)",February 2004, http://www.w3.org/TR/REC-xml[XMLSCHEMA0] Fallside, D., Ed. and Walmsley, P., Ed., "XML Schema Part 0: Primer, SecondEdition", W3C Recommendation, October 2004, http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/[XMLSCHEMA1] Thompson, H.S., Ed., Beech, D., Ed., Maloney, M., Ed., and Mendelsohn, N., Ed.,"XML Schema Part 1: Structures", W3C Recommendation, May 2001,http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/[XMLSCHEMA2] Biron, P.V., Ed. and Malhotra, A., Ed., "XML Schema Part 2: Datatypes", W3CRecommendation, May 2001, http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/1.2.2 Informative References[LDAP] Microsoft Corporation, "About Lightweight Directory Access <strong>Protocol</strong>",http://msdn2.microsoft.com/en-us/library/aa366075.aspxIf you have any trouble finding [LDAP], please check here.[LDAP-ERR] Microsoft Corporation, "Return Values", http://msdn2.microsoft.com/enus/library/aa367014.aspx[<strong>MS</strong>-WMI] Microsoft Corporation, "Windows Management Instrumentation Remote <strong>Protocol</strong><strong>Specification</strong>", July 2006.[SAFEARRAY] Ames, A., "SAFEARRAYs Made Easier", May 2000,http://dn.codegear.com/article/220161.3 <strong>Protocol</strong> Overview (Synopsis)The Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> provides a set of DCOMinterfaces for configuring and monitoring Distributed File System–<strong>Replication</strong> (<strong>DFS</strong>-R) on aserver, as specified in [<strong>MS</strong>-FRS2]. The server end of the protocol is a DCOM service that implementsthe DCOM interface. The client end of the protocol is an application that invokes method calls on theinterface to make <strong>DFS</strong>-R configuration changes and monitor the status of the <strong>DFS</strong>-R service on theserver.The first part of the Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> consists ofinterfaces for changing, modifying, and deleting configuration objects in Active Directory by usingthe machine account of the server.For all replication members, the configuration related to a member is stored in the computerobject for the local machine in Active Directory. It is common for system components that areunrelated to <strong>DFS</strong>-R to set permissions on the computer object that will prevent modification of theobject by some users and still permit modification by using the credentials for the computer.Therefore, a server implementation uses the credentials of the local machine account when it sendscommands to update Active Directory objects.If a user has sufficient privileges to connect to the server that is running the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>and to invoke methods implemented by the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> interfaces, the server works as aproxy for making configuration changes on behalf of the client application that is running under theuser's account.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20088 / 81


The client sends the server the information about the Active Directory operation that it is trying toaccomplish. The server then attempts to execute the command by using the machine account andreturns information about the status of the operation.The second part of the Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> is aninterface for monitoring <strong>DFS</strong>-R on the computer and collecting various statistics about the <strong>DFS</strong>-Roperation.The information that is collected by using the Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R<strong>Helper</strong>) <strong>Protocol</strong> includes, among other types of information, the following statistics:• Information about replication errors that are encountered by <strong>DFS</strong>-R on the server.• The count and size of replicated files on the server.• Disk use on the server.• Information about replicated folders on the server.• <strong>Replication</strong> backlog—the number of files that are not yet fully replicated.Sections 2 and 3 specify the Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> anddefine protocol messages, their parameters, and the XML format of the health report.1.4 Relationship to Other <strong>Protocol</strong>sThe Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> relies on the DistributedComponent Object Model (DCOM) Remote <strong>Protocol</strong> (as specified in [<strong>MS</strong>-DCOM], which uses RPC asits transport. For more information, see [<strong>MS</strong>-RPCE].1.5 Prerequisites/PreconditionsThis protocol is implemented over DCOM and RPC. Therefore, it has the prerequisites that arespecified in [<strong>MS</strong>-DCOM] and [<strong>MS</strong>-RPCE] as common to the DCOM and RPC interfaces.The Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> assumes that a client hasobtained the name of a server that supports this protocol suite before the protocol is invoked.1.6 Applicability StatementThis protocol is applicable when an application needs to modify the <strong>DFS</strong>-R configuration by using thecredentials of the server computer. The client also uses this protocol to get health information forthe <strong>DFS</strong>-R service on the remote server.1.7 Versioning and Capability NegotiationSupported Transports: This protocol MUST use the Distributed Component Object Model (DCOM)Remote <strong>Protocol</strong> (as specified in [<strong>MS</strong>-DCOM]), which in turn uses RPC over TCP, as its onlytransport, as specified in section 2.1.<strong>Protocol</strong> Version: This protocol includes three DCOM interfaces, all of which are version 0.0. Aclient MUST use one or more of the following interfaces when it communicates with a Distributed FileSystem: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> server:• IADProxy• IADProxy2[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 20089 / 81


• IServerHealthReportThe IADProxy2 interface supersedes the IADProxy interface and contains new functionality that isrelated to server clusters.Security and Authentication Methods: For more information, see [<strong>MS</strong>-DCOM] and [<strong>MS</strong>-RPCE].The client MUST have administrator rights on the server computer to use either the IADProxyinterface or the IADProxy2 interface.1.8 Vendor-Extensible FieldsThis protocol does not define any vendor-extensible fields.1.9 Standards AssignmentsThe Distributed File System: <strong>Replication</strong> <strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> has no standardsassignments. It uses the following UUIDs to identify its interfaces.ParameterRPC interface UUID for the IADProxy interface.RPC interface UUID for the IADProxy2 interface.RPC interface UUID for the IServerHealthReportinterface.Value4BB8AB1D-9EF9-4100-8EB6-DD4B4E418B72C4B0C7D9-ABE0-4733-A1E1-9FDEDF260C7AE65E8028-83E8-491b-9AF7-AAF6BD51A0CE10 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


2 Messages2.1 TransportThis protocol MUST use the DCOM Remote <strong>Protocol</strong>, as specified in [<strong>MS</strong>-DCOM], as its transport. Onits behalf, the DCOM Remote <strong>Protocol</strong> uses the following RPC protocol sequence: RPC over TCP,as specified in [<strong>MS</strong>-RPCE].To access an interface, the client MUST request a DCOM connection to its well-known object UUIDendpoint on the server, as specified in section 1.9.The RPC version number for all interfaces MUST be 0.0.An implementation of <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> MAY configure its DCOM implementation or underlyingRPC transport with authentication parameters to allow clients to connect, or it MAY choose to notset these parameters. The details of this are implementation-specific.The <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> interfaces make use of the underlying DCOM security framework, asspecified in [<strong>MS</strong>-DCOM], and rely upon it for access control. DCOM differentiates between launchand access operations and also decides whether to deny or grant access for these operations.An implementation of <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> MAY choose to restrict access to the interfaces.2.2 Message SyntaxIn addition to the RPC base types and the definitions that are specified in [C706] and [<strong>MS</strong>-DTYP],the sections that follow use the definitions of BSTR, GUID, SAFEARRAY, VARIANT, VARIANT_BOOL,and DWORD, as specified in [<strong>MS</strong>-DTYP] Appendix A and in [<strong>MS</strong>-DCOM]. The IServerHealthReportinterface returns its report as XML. For more information about XML, see [XML10], [XMLSCHEMA0],[XMLSCHEMA1], and [XMLSCHEMA2].2.2.1 Common Data Types2.2.1.1 Dfsr<strong>Helper</strong>ErrorsEnumThe Dfsr<strong>Helper</strong>ErrorsEnum enumeration defines error codes that are specific to the IADProxyand IADProxy2 interfaces.The UUID for this enumeration is {9009D654-250B-4e0d-9AB0-ACB63134F69F}.typedef enum Dfsr<strong>Helper</strong>ErrorsEnum{dfsr<strong>Helper</strong>ErrorNotLocalAdmin = 0x80042001,dfsr<strong>Helper</strong>ErrorCreateVerifyServerControl = 0x80042002,dfsr<strong>Helper</strong>LdapErrorBase = 0x80043000} Dfsr<strong>Helper</strong>ErrorsEnum;dfsr<strong>Helper</strong>ErrorNotLocalAdmin: The user does not have sufficient privileges on the server.dfsr<strong>Helper</strong>ErrorCreateVerifyServerControl: Cannot createLDAP_SERVER_VERIFY_NAME_OID control for the LDAP command.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200811 / 81


For more information about this LDAP control command, see [<strong>MS</strong>-ADTS] section3.1.1.3.4.1.16.dfsr<strong>Helper</strong>LdapErrorBase: This is the base value for LDAP errors. When the server has toforward information about an error that occurred in the LDAP protocol, the server MUST sendthe error by using the following value:dfsr<strong>Helper</strong>LdapErrorBase + [Actual LDAP error].2.2.1.2 DfsrReportingFlagsThe DfsrReportingFlags enumeration represents the options for generating health reports, whichare used in the IServerHealthReport interface. The UUID for this enumeration is {CEB5D7B4-3964-4f71-AC17-4BF57A379D87}.The following enumeration values MAY be combined to create a bitmask by using a bitwise ORoperation.typedef enum DfsrReportingFlags{REPORTING_FLAGS_NONE = 0,REPORTING_FLAGS_BACKLOG = 1,REPORTING_FLAGS_FILES = 2} DfsrReportingFlags;REPORTING_FLAGS_NONE: Default report options. This value MUST NOT return any optionalinformation.REPORTING_FLAGS_BACKLOG: In addition to the default reporting information, this valueMUST return the count of backlogged transactions.REPORTING_FLAGS_FILES: In addition to the default reporting information, this value MUSTreturn the information about the count and cumulative size of files in the replicated folders.2.2.1.3 AdAttributeDataThe AdAttributeData structure provides information about an Active Directory operation. Thisstructure describes the Active Directory operation that is requested by the client. The UUID for thisstructure is {D3766938-9FB7-4392-AF2F-2CE8749DBBD0}.typedef[uuid(D3766938-9FB7-4392-AF2F-2CE8749DBBD0)]struct {long operation;BSTR attributeName;BSTR attributeValue;VARIANT_BOOL isString;long length;} _AdAttributeData;operation: Specifies the LDAP operation that MUST be executed for the attribute that isspecified by the attributeName parameter. This value MUST be specified by using rules for the[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200812 / 81


operation field of the LDAP ModifyRequest. For information about ModifyRequest, see[RFC2251] section 4.6.attributeName: MUST be the name of the attribute on which to execute the LDAP operationthat is specified by the operation parameter.attributeValue: The value of the attribute that is specified by the attributeName parameter.The value of this parameter MUST be built by using the following rules:• If the value can be represented as a string, the attributeValue field MUST contain the stringrepresentation of the value.• If the value contains raw binary data, the attributeValue field MUST contain the binary dataencoded in the BSTR according to the following rules:• The length, in bytes, of the BSTR buffer MUST be greater than or equal to the value ofthe size of the binary data that is to be encoded.• The BSTR buffer MUST be filled by the bytes that compose the in-memoryrepresentation of the binary data that is being encoded. The part of the buffer betweenoffsets 0 and "length - 1" MUST be passed to the LDAP protocol by the server. Theremainder of the BSTR buffer, if any, MUST be ignored by the server.isString: Specifies whether the value that is passed in the attributeValue field is a string. Thevalue of this field MUST be VARIANT_FALSE if the attributeValue field contains a binary value.Otherwise, the value MUST be VARIANT_TRUE.length: For a binary value, the length, in bytes, of the value MUST be provided in this field. Forstring data, this field MUST be set to the length, in bytes, of the Unicode string.2.2.1.4 VersionVectorDataThe VersionVectorData structure provides information about the <strong>DFS</strong>-R version vector. The <strong>DFS</strong>-R version vector is an array of identifiers and versions of modified files in a replicated folder. Theversion vector is specified in [<strong>MS</strong>-FRS2] section 2.2.1.4.1. The UUID for this structure is{7A2323C7-9EBE-494a-A33C-3CC329A18E1D}.typedef[uuid(7A2323C7-9EBE-494a-A33C-3CC329A18E1D)]struct VersionVectorData {long uncompressedSize;long backlogCount;BSTR contentSetGuid;VARIANT versionVector;} _VersionVectorData;uncompressedSize: MUST be the number of bytes in the uncompressed version vector. Theversion vector is defined by FRS_ASYNC_VERSION_VECTOR_RESPONSE, as specified in [<strong>MS</strong>-FRS2] section 2.2.1.4.12.backlogCount: MUST be the number of backlogged transactions for the replicated folder on theserver.contentSetGuid: MUST be a string representation of the GUID of the replicated folder.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200813 / 81


versionVector: MUST be the version vector for the replicated folder whose GUID is specified bythe contentSetGuid field.The version vector is either compressed (that is, an encoded field whose format is specified bythe Windows Server 2003 decompression algorithm in [<strong>MS</strong>-DRSR] or uncompressed. Theversion vector MUST be represented by a VARIANT field that has a VT_BSTR variant type.The client MUST determine whether the version vector is compressed by applying the followingrules:• If the sum of the number of characters, including the terminating NULL character in theBSTR, multiplied by the size, in bytes, of a Unicode character (the size MUST be 2) is lessthan the value of the uncompressedSize field, the version vector is sent in compressedform.• Otherwise, the version vector is uncompressed.The compressed or uncompressed version vector MUST be encoded in a BSTR and passed byusing the versionVector.bstrVal field.The compressed or uncompressed version vector buffer MUST be encoded in a BSTR byapplying the following rules:• The length, in bytes, of the BSTR buffer MUST be greater than or equal to the value of thesize of the binary data that is to be encoded.• The part of the BSTR buffer between offsets 0 and "length - 1" MUST be filled by thecompressed or uncompressed data, as specified previously. The remainder of the BSTRbuffer (if any) MUST be ignored by the server.2.2.1.5 Server Health Report XMLThe server health report is an XML document that contains the data that is related to <strong>DFS</strong>-R servicehealth.2.2.1.5.1 xs NamespaceThe xs namespace that is used in subsections of section 2.2.1.5 refers to the XMLSchemanamespace that is specified in [XMLSCHEMA0], [XMLSCHEMA1], and [XMLSCHEMA2].2.2.1.5.2 timestamp ElementThe timestamp XML element represents the time in a specific time zone.


type="xs:int"/>Child ElementsElement Type DescriptionfileTime xs:long MUST be the time, in FILETIME format, as specified in the [<strong>MS</strong>-DTYP] AppendixA. Because the FILETIME is provided in Coordinated Universal Time (UTC), thedaylight time adjustment MUST NOT be included in this field. Instead, theadjustment MUST be included in the timezone field.systemTime xs:string An implementation-specific textual representation of the date and time.AttributesName Type Descriptiontimezone xs:int MUST be the difference, in minutes, between the time in the server time zone andCoordinated Universal Time (UTC). This field SHOULD account for the daylight timeadjustment.2.2.1.5.3 folder ElementThe folder XML element represents a folder on the disk.


Child ElementsElement Type Descriptionpath xs:string MUST be the path of the folder on the disk, in the format {drive letter} + ":" +"\" + {path on disk}.fileCount xs:long MUST be the number of files in the folder and all subfolders, or –1 if the filenumber information is not included in the report.folderCount xs:long MUST be the number of all direct subfolders of the folder, or –1 if the foldernumber information is not included in the report.size xs:long MUST be the cumulative size, in bytes, of all files in the folder and allsubfolders, or –1 if the file size information is not included in the report.configSize xs:long MUST be the maximum size, in bytes, of the folder if the folder has a type of"conflict" or "staging." The value of this element MUST be –1 for folders of type"root."AttributesName Type Descriptiontype enumeration The type of the folder. The value of this element MUST be one of the followingstrings:ValuerootconflictstagingDescriptionThe folder element represents the root of a <strong>DFS</strong>-R replicatedfolder.The folder element represents a conflict folder for a <strong>DFS</strong>-Rreplicated folder.The folder element represents a staging folder for a <strong>DFS</strong>-Rreplicated folder.2.2.1.5.4 dfsrStats ElementThe dfsrStats XML element represents efficiency statistics for the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>.16 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Child ElementsElement Type DescriptionsizeOfFilesReceived xs:long MUST be the total uncompressed size, in bytes, of all files or partial filesthat are received by the server from other members since the <strong>DFS</strong><strong>Replication</strong> service started.totalBytesReceived xs:long MUST be the total compressed size, in bytes, of all data that is receivedby the server from other members that participate in the samereplication group over a network in order to transfer files or partial files.2.2.1.5.5 transactions ElementThe transactions XML element represents file transfer statistics.Child ElementsElement Type Descriptionrecvdfiles xs:long MUST be the total number of new or updated files that are received by theserver from other members since the <strong>DFS</strong> <strong>Replication</strong> service started.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200817 / 81


Element Type DescriptionbacklogInbound xs:long MUST be the number of inbound backlogged transactions relative to theversion vector that were provided as a parameter to the server. Thisnumber MUST be calculated by comparing the version of each file in theversion vector that is sent by the client with the version of the file thatexists on this computer. It MUST be calculated by counting the number offiles whose version numbers are lower on this computer than on the caller'scomputer and counting the files that are present in the version vector butnot on this computer.The client is responsible for getting the version vector from another serverthat is participating in the replication group. The client MAY use theIServerHealthReport::GetReferenceVersionVectors method to get thisversion vector from another server. The client MAY also use a differentimplementation-specific way of getting the version vectors.backlogOutbound xs:long MUST be the number of outbound backlogged transactions relative to thereference member. This number MUST be calculated by comparing theversion of each file in the version vector that is sent by the caller'scomputer with the version of the file that exists on this computer. It iscalculated by counting the number of files whose version numbers arehigher on this computer than on the caller's computer and counting thefiles that are present on this computer but not in the version vector.The client is responsible for getting the version vector from another serverthat is participating in the replication group. The client MAY use theIServerHealthReport::GetReferenceVersionVectors method to get thisversion vector from another server. The client MAY also use a differentimplementation-specific way of getting the version vectors.2.2.1.5.6 file ElementThe file XML element represents information about a file.


Child ElementsElement Type Descriptionname xs:string MUST be the path of the file that is relative to the replicated folder root. Thepath MUST begin with a folder name, followed by a backslash (\) and then bythe name of each folder in the order in which they are opened; the foldernames are separated by using a backslash.path N/A This element MUST be an empty string. The element SHOULD be ignored bythe client.size xs:long The server MAY choose to populate this element with the original size, inbytes, of the file; or it MAY set this field to 0, which means that the size is notprovided in the health report; or it MAY exclude this field from the fileelement.timestamp timestamp The server MAY choose to populate this field with the time stamp of the file.The server MAY also exclude this element from the file element. The format ofthis element is specified in section 2.2.1.5.2.2.2.1.5.7 affectedFileSet ElementThe affectedFileSet XML element represents information about the files that are involved inreplication issues.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200819 / 81


Child ElementsElement Type Descriptionfile file MUST be the information about the files that are involved in a specific replicationissue. The format of this element is specified in 2.2.1.5.6.AttributesName Type Descriptionfolder enumeration The type of replication issue in which the file was involved. The value MUST beone of the values listed in the following table.ValuesharingfilteredDescriptionA sharing violation occurred.The file was filtered from replication on the basis of animplementation-specific filter that was set in the <strong>DFS</strong> <strong>Replication</strong>service.The <strong>DFS</strong>-R service excludes the following files fromreplication: Files that have a temporary flag. Specific types ofreparse points that are not supported by <strong>DFS</strong>-R. Supported andunsupported reparse points that are specified in [<strong>MS</strong>-FRS2].Encrypted files.2.2.1.5.8 set ElementThe set XML element represents information about a replicated folder.


value="4"/>Child ElementsElement Type Descriptionstatus N/A The status of the replicated folder. This MUST be one of the valuesthat are listed in the following table.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200821 / 81


Element Type DescriptionfileFilter xs:string A file filter mask that MUST specify the mask of files that are excludedfrom replication. The format of the filter mask is specified in [<strong>MS</strong>-FRS2].directoryFilter xs:string A directory filter mask that MUST specify the mask of directories thatare excluded from replication. The format of the filter mask is specifiedin [<strong>MS</strong>-FRS2].folder folder The set element MAY have zero to three sub-elements of type"folder", one for each of the following folder types: "root", "staging",and "conflict". The format of this element is specified in section2.2.1.5.3.dfsrStats dfsrStats MUST be the compression statistics for this replicated folder. Theformat of this element is specified in section 2.2.1.5.4.transactions transactions MUST be the file transactions statistics for this replicated folder. Theformat of this element is specified in section 2.2.1.5.5.affectedFileSet affectedFileSet Information about the files that experienced replication issues that aresharing violations and filtered content, as described below. Theserver's file system MAY support file-sharing semantics, which wouldallow denial of shared-read access when opening a file or shareddeleteaccess when deleting a file. There can be 0, 1, or 2 occurrencesof this element. If, and only if, sharing violations were detected by theserver, the set element MUST contain one affectedFileSet elementwith the folder element set to "sharing". If, and only if, filteredcontent was detected by the server, the set element MUST containone affectedFileSet element with the folder element set to "filtered".The format of the affectedFileSet element is specified in section2.2.1.5.7.AttributesName Type Descriptionname xs:string MUST be the name of the replicated folder.guid xs:string MUST be the unique identifier of the replicated folder.2.2.1.5.9 serviceInfo ElementThe serviceInfo XML element represents information about the <strong>DFS</strong> <strong>Replication</strong> service on theserver.


ef="timestamp"/>Child ElementsElement Type Descriptionstate xs:int The state of the service. This MUST be one of the values listed in the followingtable.ValueMeaning0 Stopped1 Start pending2 Stop pending3 Running4 Continue pending5 Pause pending6 Pausedversion xs:string MUST be the implementation-specific version of the <strong>DFS</strong> <strong>Replication</strong>service.timestamp timestamp MUST be the date and time when the <strong>DFS</strong> <strong>Replication</strong> service starts. Theformat of this element is specified in section 2.2.1.5.2.2.2.1.5.10 server ElementThe server XML element represents a list of replicated folders that are affected by a particular error.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200823 / 81


24 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Child ElementsElement Type DescriptionserviceInfo serviceInfo MUST contain information about the <strong>DFS</strong> <strong>Replication</strong> service on the server.The format of this element is specified in section 2.2.1.5.9.serverInfo serverInfo MUST contain information about the server. For information about theformat of this element, see section 2.2.1.5.11.contentSets N/A MUST contain information about replicated folders on the server.set set MUST contain information about a single replicated folder. The format of thiselement is specified in section 2.2.1.5.8.disks N/A MUST contain information about volumes on the server.drive drive MUST contain information about a single volume. The format of this elementis specified in section 2.2.1.5.12.serverErrors N/A MUST contain information about errors on the server.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200825 / 81


Element Type Descriptionerror error MUST contain information about a single error. The format of this element isspecified in section 2.2.1.5.16.AttributesName Type Descriptionname xs:string MUST be the NetBIOS name of the server.dns xs:string MUST be the fully qualified DNS name of the server.domain xs:string MUST be the FQDN of the domain to which the server belongs.ipAddress xs:string MUST be the IP addresses of the server. If the server has more thanone IP address, the addresses MUST be delimited by "; " (semicolonfollowed by a space).site xs:string MUST be the Active Directory site of the server, as returned from adomain controller.ServerReportVersion xs:string The version of the report schema. This attribute MUST be set to "1.0".dfsr<strong>Helper</strong>Version xs:string MUST be the implementation-specific version of the <strong>DFS</strong>-R <strong>Helper</strong><strong>Protocol</strong> server.2.2.1.5.11 serverInfo ElementThe serverInfo XML element represents information about the server.Child Elements[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200826 / 81


Element Type DescriptionreferenceDC N/A MUST be the FQDN of the domain controller that provided the latest configurationinformation to the server. The FQDN MUST be a DNS name. It MUST NOT be adotted-quad format IP address. If the server also is a DNS server, it is possible forthe referenceDC and dnsName fields to contain the same FQDN.AttributesName Type DescriptiondnsName xs:string MUST be the fully qualified DNS name of the server.domain xs:string MUST be the name of the domain to which this server belongs. Either the FQDNor the NetBIOS name of the domain MAY be used.2.2.1.5.12 drive ElementThe drive XML element represents information about a volume on the server.Child ElementsElement Type DescriptiontotalSpace xs:long MUST be the total space, in bytes, on the volume.freeSpace xs:long MUST be the free space, in bytes, on the volume.journalSize xs:long MUST be the size, in bytes, of the changes journal on the volume. <strong>DFS</strong>-R[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200827 / 81


Element Type Descriptionimplementations that do not use a change journal MUST report 0.AttributesName Type Descriptionletter xs:string MUST be the drive letter in the format {the drive letter} + ":" or the path ofthe volume mount point, in the format {the drive letter} + ":" + "\" + {thepath on disk}.volumeGuid xs:string MUST be the implementation-specific, unique identifier of the volume.name xs:string MUST be the implementation-specific, human-readable name of thevolume.2.2.1.5.13 affectedContentSets ElementThe affectedContentSets XML element represents a list of replicated folders that are affected by aspecific error.Child Elements[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200828 / 81


Element Type Descriptionset N/A MUST be the element that corresponds to a single replicated folder.AttributesName Type Descriptionname xs:string MUST be the name of the replicated folder as defined in the "name" attribute ofthe "ms<strong>DFS</strong>R-ContentSet" configuration object in Active Directory. The "ms<strong>DFS</strong>R-ContentSet" configuration object is specified in [<strong>MS</strong>-FRS2] section 2.2.3.7.sets enumeration MUST specify whether the affected content set consists of all replicated folderson the server. If all replicated folders on the server are affected by the problem,the server MUST set the value of this element to "all"; otherwise, this elementMUST NOT be present in the affectedContentSets element.ValueDescriptionall2.2.1.5.14 ref ElementThe ref XML element represents information about an error parameter. Depending on what the erroris, specific named parameters MUST be defined. For more information about errors and theirmandatory parameters, see section 2.2.1.5.17.AttributesName Type DescriptionrefId xs:string MUST be the name of the error parameter.extension: MUST be the value of the error parameter that is associated with this refId.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200829 / 81


2.2.1.5.15 errorReferences ElementThe errorReferences XML element represents information about all parameters of an error.Child ElementsElement Type Descriptionref ref MUST be one or more error references. The format of this element is specified insection 2.2.1.5.14.2.2.1.5.16 error ElementThe error XML element represents information about an error on the server.30 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Child ElementsElement Type Descriptiontimestamp timestamp MUST be the time when the error occurred. The format ofthis element is specified in section 2.2.1.5.2.affectedContentSets affectedContentSets MUST be information about content sets that are affectedby this problem. The type of information contained in thisfield MUST be as specified in the section 2.2.1.5.13.errorReferences errorReferences MUST be the error parameters. The format of this elementis specified in section 2.2.1.5.15. Depending on the errorID, specific named parameters MUST be defined. For moreinformation about errors and their mandatory parameters,see section 2.2.1.5.17.AttributesName Type Descriptionid xs:string MUST be the error identifier. For more information about errors and their identifiers,see section 2.2.1.5.17.type xs:string The error type. This element MUST be one of the values listed in the following table.ValueErrorWarningMeaningThis error message represents a replication error.This error message represents a replication warning.2.2.1.5.17 Types of <strong>DFS</strong> <strong>Replication</strong> ErrorThis section specifies errors that the server MAY choose to detect and return to the client as part ofthe error XML element. The server MAY also choose to ignore any error condition that is describedbelow. The server MUST send a RefID that is defined in one of the following Error Parameters tables.Some of the error conditions that are specified in this section are very specific to the Windowsimplementation of the <strong>DFS</strong> <strong>Replication</strong> service, and therefore, might be inapplicable to otherimplementations of <strong>DFS</strong> <strong>Replication</strong>. If an error is different in another implementation of the <strong>DFS</strong><strong>Replication</strong> service, such an error condition MAY be mapped to an implementation-specific error. Therecommended way is to append the error code to the method name without any processing. If theerror condition is inapplicable, the server SHOULD NOT include this error in the health report.Some of the errors described below include implementation-specific information about a failure inthe form of an implementation-specific error code and an implementation-specific error string. Theimplementation MUST use these parameters to provide more information about the error.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200831 / 81


When the server detects any of the errors that are described below, it MUST add a new errorelement to the server element. The error element MUST have an id field that contains the valuethat is specified in the Error ID section for that error. The format of the error element is specified insection 2.2.1.5.16.For each error message, the server MUST supply the listed number of parameters. For eachparameter, the server MUST add the errorReferences element to the error element. The value ofeach parameter MUST be an XML string and SHOULD correspond to that provided in the subsectionsof Types of <strong>DFS</strong> <strong>Replication</strong> Error, as specified in section 2.2.1.5.17. The client MUST NOT make anyassumptions about the format of the data within the strings.2.2.1.5.17.1 EVENT_<strong>DFS</strong>R_SERVICE_INTERNAL_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service has stopped because of an internal error from which itcannot recover. No content is replicating to or from this server.Error ID: 1010Error parameters:Ref IDMeaning1 The name of the implementation-specific source file where the error occurred.2 The implementation-specific line number where the error occurred.3 The service restart time.2.2.1.5.17.2 EVENT_<strong>DFS</strong>R_SERVICE_RESUME_FAILED_AFTER_BACKUP_RESTOREMessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to restart after a backup or restore operation.Error ID: 1106Error parameters: This error does not have any parameters.2.2.1.5.17.3EVENT_<strong>DFS</strong>R_SERVICE_FAILED_PROCESSING_RESTORE_VOLUME_LIST MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to process the list of restored volumes. Thisfailure can occur if the service encounters errors while accessing the list.Error ID: 1108Error parameters: This error does not have any parameters.2.2.1.5.17.4 EVENT_<strong>DFS</strong>R_SERVICE_INTERNAL_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to contact the domain controller to accessconfiguration information. <strong>Replication</strong> is stopped. The service will try again during the nextconfiguration polling cycle. This event can be caused by TCP/IP connectivity, firewall, ActiveDirectory, or DNS issues.Error ID: 1202[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200832 / 81


Error parameters:Ref IDMeaning1202.1 The domain controller network name, in FQDN format.1202.2 The domain controller polling interval, in minutes.2.2.1.5.17.5 EVENT_<strong>DFS</strong>R_SERVICE_RPC_LISTENER_ERROR MessageError description: The <strong>DFS</strong>-R service failed to start an RPC listener. <strong>Replication</strong> is disabled on thiscomputer.Error ID: 1208Error parameters:Ref IDMeaning1208.1 The port.1208.2 The implementation-specific error code.1208.3 The implementation-specific error string.2.2.1.5.17.6 EVENT_<strong>DFS</strong>R_SERVICE_DEBUG_LOG_STOP MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service encountered an error while writing to the debug logfile. Failure to write to the debug log file can occur because the disk is full, the disk is failing, or aquota limit has been reached for the folder where the logs are written. Logging will be disabled untilthis error is resolved.Error ID: 1302Error parameters:Ref IDMeaning1302.1 The implementation-specific error code.1302.2 The implementation-specific error string.1302.3 The path of the debug log file.1302.4 The maximum number of debug log files.1302.5 The implementation-specific value that specifies how verbose the information in the log is.1302.6 The maximum count of debug log messages.2.2.1.5.17.7 EVENT_<strong>DFS</strong>R_SERVICE_LOG_INITIALIZATION_FAILED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service encountered errors while configuring the debug logfiles. Logging is disabled until this error is resolved.Error ID: 1312[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200833 / 81


Error parameters:Ref IDMeaning1312.1 The implementation-specific error code.1312.2 The implementation-specific error string.1312.3 The path of the debug log file.2.2.1.5.17.8 EVENT_<strong>DFS</strong>R_VOLUME_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service stopped replication on the volume. This failure canoccur because the disk is full, the disk is failing, or a quota limit has been reached. This failure canalso occur if the <strong>DFS</strong> <strong>Replication</strong> service encounters errors while it is attempting to stage files for areplicated folder on this volume. <strong>Replication</strong> is disabled until the error is resolved.Error ID: 2004Error parameters:Ref IDMeaning2004.1 The volume GUID.2004.2 The volume path.2004.3 The implementation-specific error code.2004.4 The implementation-specific error string.2.2.1.5.17.9 EVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_WRAP MessageError description: The <strong>DFS</strong>-R service has detected a file system change journal wrap error on thevolume.A journal wrap error occurs only when change journal entries that have not been processed by <strong>DFS</strong>-R are overwritten with newer entries. This can occur for the following reasons:• The file system change journal on the volume has been truncated.• The <strong>DFS</strong>-R service was not running on this computer for an extended period of time.• The <strong>DFS</strong>-R service could not keep up with the rate of file changes on the volume.Error ID: 2202Error parameters:Ref IDMeaning2202.1 The volume GUID.2202.2 The volume path.34 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


2.2.1.5.17.10 EVENT_<strong>DFS</strong>R_VOLUME_DATABASE_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to recover from an internal database error onthe volume. <strong>Replication</strong> has been stopped for all replicated folders on this volume.Error ID: 2104Error parameters:Ref IDMeaning2104.1 The volume GUID.2104.2 The volume path.2104.3 The implementation-specific error code.2104.4 The implementation-specific <strong>DFS</strong>-R error string.2104.5 The implementation-specific database error.2.2.1.5.17.11 EVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_LOSS MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service has detected a file system change journal loss on thevolume. The service has automatically initiated the journal loss recovery process.Error ID: 2204Error parameters:Ref IDMeaning2204.1 The volume GUID.2204.2 The volume path.2.2.1.5.17.12 EVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_RECOVERY_FAILED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to recover from a file system change journalwrap or loss on the volume. Recovery will be attempted periodically.Error ID: 2208Error parameters:Ref IDMeaning2208.1 The volume GUID.2208.2 The volume path.2208.3 The time between retry attempts.2208.4 The implementation-specific error code.2208.5 The implementation-specific error string.35 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


2.2.1.5.17.13 EVENT_<strong>DFS</strong>R_CS_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service stopped replication on the replicated folder because ofan error.Error ID: 4004Error parameters:Ref IDMeaning4004.1 The replicated folder GUID.4004.2 The implementation-specific error context.4004.3 The root path of the replicated folder.4004.4 The implementation-specific error code.4004.5 The implementation-specific error string.4004.6 The name of the replicated folder.4004.7 The name of the replicated group.4004.8 The replicated group GUID.4004.9 The member GUID.2.2.1.5.17.14 EVENT_<strong>DFS</strong>R_CS_DISABLED MessageError description: The replicated folder at the local path was disabled by an administrator. Thereplicated folder does not participate in replication until it is enabled.Error ID: 4114Error parameters:Ref IDMeaning4114.1 The replicated folder GUID.4114.2 The root path of the replicated folder.4114.3 The name of the replicated folder.4114.4 The name of the replication group.4114.5 The replication group GUID.4114.6 The member GUID.2.2.1.5.17.15 EVENT_<strong>DFS</strong>R_CS_STAGE_CLEANUP_STARTED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service has detected that the staging space that is in use forthe replicated folders is above the high-water mark. The service attempts to clean up the stagingfolder. Performance may be affected.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200836 / 81


The server MAY choose to use the high-water mark and low-water mark to determine when to startand stop cleanup of the staging space. The high-water mark and low-water mark areimplementation-specific values; each is a function of the configured size of the staging folder.Error ID: 4202Error parameters:Ref IDMeaning4202.1 The replicated folder GUID.4202.2 The root path of the replicated folder.4202.3 The staging folder path.4202.4 The staging folder configured size.4202.5 The space in use in the staging folder.4202.6 The staging folder high-water mark.4202.7 The staging folder low-water mark.4202.8 The replicated folder name.4202.9 The replication group name.4202.10 The replication group GUID.4202.11 The member GUID.2.2.1.5.17.16 EVENT_<strong>DFS</strong>R_CS_STAGE_CLEANUP_FAILED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to clean up old staging files for the replicatedfolder. The service might fail to replicate some large files, and the replicated folder might get out ofsynchronization. The service automatically retries to clean up the staging space. The service maystart cleanup earlier if it detects that some staging files have been unlocked.Error ID: 4206Error parameters:Ref IDMeaning4206.1 The replicated folder GUID.4206.2 The root path of the replicated folder.4206.3 The staging folder path.4206.4 The configured size of the staging folder.4206.5 The space in use in the staging folder.4206.6 The staging folder high-water mark.4206.7 The staging folder low-water mark.37 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning4206.8 The name of the replicated folder.4206.9 The name of the replication group.4206.10 The replication group GUID.4206.11 The member GUID.4206.12 The amount of time, in seconds, between retry attempts.2.2.1.5.17.17 EVENT_<strong>DFS</strong>R_CS_STAGE_EXCEEDED_SIZE MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected that the staging-space usage is above thestaging quota for the replicated folder. The service might fail to replicate some large files, and thereplicated folder might get out of synchronization. The service automatically attempts to clean upthe staging space.Error ID: 4208Error parameters:Ref IDMeaning4208.1 The replicated folder GUID.4208.2 The root path of the replicated folder.4208.3 The staging folder path.4208.4 The configured size of the staging folder.4208.5 The space in use in the staging folder.4208.6 The staging folder high-water mark.4208.7 The staging folder low-water mark.4208.8 The name of the replicated folder.4208.9 The name of the replication group.4208.10 The replication group GUID.4208.11 The member GUID.2.2.1.5.17.18 EVENT_<strong>DFS</strong>R_CS_STAGE_INACCESSIBLE MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected that the staging space usage is above thestaging quota for the replicated folder. The service might fail to replicate some large files, and thereplicated folder might get out of synchronization. The service automatically attempts to clean upthe staging space.Error ID: 4212Error parameters:[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200838 / 81


Ref IDMeaning4212.1 The replicated folder GUID.4212.2 The root path of the replicated folder.4212.3 The staging folder path.4212.4 The name of the replicated folder.4212.5 The name of the replication group.4212.6 The replication group GUID.4212.7 The member GUID.2.2.1.5.17.19 EVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_LOCAL MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service was repeatedly prevented from replicating a filebecause of consistent sharing violations that were encountered on the file. A local sharing violationoccurs when the service fails to receive an updated file because the local file is currently in use.Error ID: 4302Error parameters:Ref IDMeaning4302.1 The replicated folder GUID.4302.2 The file path.4302.3 The root path of the replicated folder.4302.4 The implementation-specific file unique ID.4302.5 The name of the replicated folder.4302.6 The name of the replication group.4302.7 The replication group GUID.4302.8 The member GUID.2.2.1.5.17.20 EVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_SERVING MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service was repeatedly prevented from replicating a filebecause of consistent sharing violations that were encountered on the file. The service failed tostage a file for replication because of a sharing violation.Error ID: 4304Error parameters:Ref IDMeaning4304.1 The replicated folder GUID.39 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning4304.2 The file path.4304.3 The root path of the replicated folder.4304.4 The implementation-specific file unique ID.4304.5 The name of the replicated folder.4304.6 The name of the replication group.4304.7 The replication group GUID.4304.8 The member GUID.2.2.1.5.17.21 EVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_WALKING MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to get folder information when walking the filesystem on a journal wrap or loss recovery because of repeated sharing violations that wereencountered on a folder. The service cannot replicate the folder and files in that folder until thesharing violation is resolved.Error ID: 4312Error parameters:Ref IDMeaning4312.1 The replicated folder GUID.4312.2 The folder path.4312.3 The root path of the replicated folder.4312.4 The implementation-specific folder unique ID.4312.5 The name of the replicated folder.4312.6 The name of the replication group.4312.7 The replication group GUID.4312.8 The member GUID.2.2.1.5.17.22 EVENT_<strong>DFS</strong>R_CS_UNSUPPORTED_ENCRYPTED_FILES MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service encountered an encrypted file.Error ID: 4402Error parameters:Ref IDMeaning4402.1 The replicated folder GUID.40 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning4402.2 The file path.4402.3 The root path of the replicated folder.4402.4 The name of the replicated folder.4402.5 The name of the replication group.4402.6 The replication group GUID.4402.7 The member GUID.2.2.1.5.17.23 EVENT_<strong>DFS</strong>R_CS_UNSUPPORTED_REPARSE_TAG MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service encountered an unsupported reparse point in areplicated folder. This reparse point will not be replicated because the replication of this type ofreparse point is not supported by the <strong>DFS</strong> <strong>Replication</strong> service.Error ID: 4406Error parameters:Ref IDMeaning4406.1 The replicated folder GUID.4406.2 The file path.4406.3 The root path of the replicated folder.4406.4 The name of the replicated folder.4406.5 The name of the replication group.4406.6 The replication group GUID.4406.7 The member GUID.2.2.1.5.17.24 EVENT_<strong>DFS</strong>R_CS_DISK_FULL MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service encountered errors when it replicated one or morefiles because adequate free space was not available on the volume. This volume contains thereplicated folder, the staging folder, or both. The service will periodically retry replication.Error ID: 4502Error parameters:Ref IDMeaning4502.1 The replicated folder GUID.4502.2 The root path of the replicated folder.4502.3 The name of the replicated folder.41 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning4502.4 The name of the replicated folder.4502.5 The replication group GUID.4502.6 The member GUID.4502.7 The volume GUID.4502.8 The volume path.4502.9 The path of the staging folder.2.2.1.5.17.25 EVENT_<strong>DFS</strong>R_CONNECTION_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service encountered an error communicating with thepartner member.Error ID: 5002Error parameters:Ref IDMeaning5002.1 The replicated folder GUID.5002.2 The name of the partner member.5002.3 The name of the replication group.5002.4 The full name of the partner.5002.5 The short name of the partner (the NetBIOS name).5002.6 The IP Address of the partner.5002.7 The implementation-specific error code.5002.8 The implementation-specific error string.5002.9 The replication group GUID.2.2.1.5.17.26 EVENT_<strong>DFS</strong>R_CONNECTION_SERVICE_UNREACHABLE MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to communicate with the partner for thereplication group. This error can occur if the host is unreachable or if the <strong>DFS</strong> <strong>Replication</strong> service isnot running on the server.Error ID: 5008Error parameters:Ref IDMeaning5008.1 The replicated folder GUID.42 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning5008.2 The name of the partner member.5008.3 The name of the replication group.5008.4 The full name of the partner.5008.5 The short name of the partner (the NetBIOS name).5008.6 The IP address of the partner.5008.7 The implementation-specific error code.5008.8 The implementation-specific error string.5008.9 The replication group GUID.2.2.1.5.17.27 EVENT_<strong>DFS</strong>R_CONNECTION_UNRECOGNIZED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to communicate with the replication partner.The partner did not recognize the connection or the replication group configuration.Error ID: 5012Error parameters:Ref IDMeaning5012.1 The replicated folder GUID.5012.2 The name of the partner member.5012.3 The name of the replicated folder.5012.4 The full name of the partner.5012.5 The short name of the partner (the NetBIOS name).5012.6 The IP address of the partner.5012.7 The implementation-specific error code.5012.8 The implementation-specific error string.5012.9 The replication group GUID.2.2.1.5.17.28 EVENT_<strong>DFS</strong>R_INCOMPATIBLE_VERSION MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to communicate with the partner. The partner isrunning a different version of the communication protocol.Error ID: 5102Error parameters:[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200843 / 81


Ref IDMeaning5102.1 The replicated folder GUID.5102.2 The partner member name.5102.3 The replication group name.5102.4 The local minor version.5102.5 The local major version.5102.6 The remote minor version.5102.7 The remote major version.5102.8 The replication group GUID.2.2.1.5.17.29 EVENT_<strong>DFS</strong>R_CONFIG_DS_INVALID_DATA MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected object data that is not valid while it waspolling for configuration information.Error ID: 6002Error parameters:Ref IDMeaning6002.1 The configuration object type.6002.2 The distinguished name of the configuration object.6002.3 The attribute name.6002.4 The domain controller.6002.5 The polling cycle, in minutes.2.2.1.5.17.30 EVENT_<strong>DFS</strong>R_CONFIG_DS_DUPLICATE_DATA MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected a conflict between two or more objects whileit was polling for configuration information. The <strong>DFS</strong> <strong>Replication</strong> service resolved the conflict byignoring the duplicated object.Error ID: 6004Error parameters:Ref IDMeaning6004.1 The configuration object type.6004.2 The distinguished name of the ignored duplicated object.6004.3 The distinguished name of the subscriber.44 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning6004.4 The domain controller.6004.5 The polling cycle, in minutes.2.2.1.5.17.31 EVENT_<strong>DFS</strong>R_CONFIG_DS_INCONSISTENT_DATA MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected an inconsistent object while it was polling forconfiguration information: an object referenced another object that does not exist.Error ID: 6006Error parameters:Ref IDMeaning6006.1 The configuration object type.6006.2 The distinguished name of the first object.6006.3 The distinguished name of the second object.6006.4 The domain controller.6006.5 The polling cycle, in minutes.2.2.1.5.17.32 EVENT_<strong>DFS</strong>R_CONFIG_INVALID_PARAMETER_ERROR MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected a bad parameter in the configuration, andthe service could recover from this error.Error ID: 6006Error parameters:Ref IDMeaning6006.1 The configuration block name.6006.2 The GUID of the object.6006.3 The parameter name.6006.4 The reason for the error.6006.5 The default value of the parameter.2.2.1.5.17.33 EVENT_<strong>DFS</strong>R_CONFIG_INVALID_PARAMETER_WARNING MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected a bad parameter in the configuration. Theservice has ignored the input value and used the default value instead.Error ID: 6008Error parameters:[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200845 / 81


Ref IDMeaning6008.1 The configuration block name.6008.2 The GUID of the object.6008.3 The parameter name.6008.4 The reason for the warning.6008.5 The default value of the parameter.2.2.1.5.17.34 EVENT_<strong>DFS</strong>R_CONFIG_DS_INVALID_SCHEMA_VERSION MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected an incompatible Active Directory schemaversion while it was trying to read configuration objects from the server. The service disconnectedfrom this server and will try again in the next polling cycle.Error ID: 6012Error parameters:Ref IDMeaning6012.1 The domain controller.6012.2 The expected version.6012.3 The actual version.6012.4 The domain controller.6012.5 The polling cycle, in minutes.2.2.1.5.17.35 EVENT_<strong>DFS</strong>R_CONFIG_DS_UPDATE_FAILED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to update the configuration in Active Directory.The service will retry this operation periodically.Error ID: 6016Error parameters:Ref IDMeaning6016.1 The object class.6016.2 The distinguished name of the object.6016.3 The implementation-specific error code.6016.4 The implementation-specific error string.6016.5 The domain controller.6016.6 The polling cycle, in minutes.46 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


2.2.1.5.17.36 EVENT_<strong>DFS</strong>R_CONFIG_WMI_PROVIDER_REGISTRATION_FAILEDMessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to register the WMI provider.Error ID: 6104Error parameters:Ref IDMeaning6104.1 The implementation-specific error code.6104.2 The implementation-specific error string.2.2.1.5.17.37 EVENT_<strong>DFS</strong>R_CONFIG_VOLUME_NOT_SUPPORTED MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service is unable to start replication on the volume becausethe volume is not supported.Error ID: 6302Error parameters:Ref IDMeaning6302.1 The volume GUID.6302.2 The volume path.2.2.1.5.17.38 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to initialize the replicated folder because theservice detected that one of its private folders overlaps with an existing File <strong>Replication</strong> Service(FRS) replica set. This is an unsupported configuration. The condition under which this event isgenerated is controlled by <strong>DFS</strong> <strong>Replication</strong>, as specified in [<strong>MS</strong>-FRS2].Error ID: 6402Error parameters:Ref IDMeaning6402.1 The replicated folder GUID.6402.2 The replicated folder root.6402.3 The overlapped folder.6402.4 The replicated folder root.6402.5 The replicated folder name.6402.6 The replication group name.6402.7 The replication group GUID.47 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning6402.8 The member GUID.6402.9 The FRS folder name.2.2.1.5.17.39 EVENT_<strong>DFS</strong>R_CONFIG_CS_ROOT_INVALID MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to replicate the replicated folder because thelocal path is not the fully qualified path name of an existing accessible local folder.Error ID: 6404Error parameters:Ref IDMeaning6404.1 The replicated folder GUID.6404.2 The replicated folder root.6404.3 The replicated folder name.6404.4 The replication group name.6404.5 The replication group GUID.2.2.1.5.17.40 EVENT_<strong>DFS</strong>R_CONFIG_CS_ROOT_STALE MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected that the local path of a replicated folder doesnot match the newly configured local path of the replicated folder. The service will replicate the newpath, and the old replicated folder will no longer be tracked as a replicated folder.This event is expected if the local path of the replicated folder has been changed.Error ID: 6406Error parameters:Ref IDMeaning6406.1 The replicated folder GUID.6406.2 The previous path of the folder root.6406.3 The new folder root.6406.3 The replicated folder name.6406.4 The replication group name.6406.5 The replication group GUID.48 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


2.2.1.5.17.41 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_FRS1 MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to initialize the replicated folder because theservice detected that one of its folders overlaps with an existing folder that is replicated by using<strong>DFS</strong> <strong>Replication</strong>. This is an unsupported configuration.Error ID: 6408Error parameters:Ref IDMeaning6408.1 The replicated folder GUID.6408.2 The replicated folder root.6408.3 The overlapped folder.6408.4 The replicated folder root.6408.5 The replicated folder name.6408.6 The replication group name.6408.7 The replication group GUID.6408.8 The member GUID.6408.9 The overlapped folder in another replicated folder.6408.10 Another replicated folder root.6408.11 Another replicated folder name.6408.12 Another replicated folder GUID.6408.13 Another replication group name.6408.14 Another replication group GUID.6408.15 The member GUID.2.2.1.5.17.42 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_SYSTEM MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to initialize the replicated folder because theservice detected that one of its working folders overlaps an operating system folder. This is anunsupported configuration. The condition under which this event is generated is controlled by <strong>DFS</strong><strong>Replication</strong>, as specified in [<strong>MS</strong>-FRS2].Error ID: 6410Error parameters:Ref IDMeaning6410.1 The replicated folder GUID.6410.2 The replicated folder root.49 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Ref IDMeaning6410.3 The overlapped folder.6410.4 The replicated folder root.6410.5 The replicated folder name.6410.6 The replication group name.6410.7 The replication group GUID.6410.8 The member GUID.6410.9 The system folder path.2.2.1.5.17.43 EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_LOG MessageError description: The <strong>DFS</strong> <strong>Replication</strong> service failed to initialize the replicated folder because theservice detected that one of its working folders overlaps with the debug log folder. This is anunsupported configuration. The condition under which this event is generated is controlled by <strong>DFS</strong><strong>Replication</strong>, as specified in [<strong>MS</strong>-FRS2].Error ID: 6412Error parameters:Ref IDMeaning6412.1 The replicated folder GUID.6412.2 The replicated folder root.6412.3 The overlapped folder.6412.4 The replicated folder root.6412.5 The replicated folder name6412.6 The replication group name.6412.7 The replication group GUID.6412.8 The member GUID.6412.9 The log folder path.2.2.1.5.17.44 EVENT_<strong>DFS</strong>R_CONFIG_VOLUME_CONSISTENCY_CHECK_FAILEDMessageError description: The <strong>DFS</strong> <strong>Replication</strong> service detected and discarded an inconsistent volumeconfiguration.Error ID: 6602Error parameters:[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200850 / 81


Ref IDMeaning6602.1 The volume GUID.6602.2 The implementation-specific error code.6602.3 The implementation-specific error path.6602.4 The volume path.2.2.1.5.17.45 EVENT_<strong>DFS</strong>R_CONFIG_NO_CONNECTIONS_ENABLED MessageError description: No connections are enabled for the replication group.Error ID: 6802Error parameters:Ref IDMeaning6802.1 The replication group GUID.6802.2 The replication group name.6802.3 The member GUID.2.2.1.5.17.46 EVENT_<strong>DFS</strong>R_CONFIG_NO_CONNECTIONS_EXIST MessageError description: No connections are defined for the replication group.Error ID: 6804Error parameters:Ref IDMeaning6804.1 The replication group GUID.6804.2 The replication group name.6804.3 The member GUID .51 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


3 <strong>Protocol</strong> Details3.1 Server Role Details3.1.1 Abstract Data ModelNo abstract data model is required.3.1.2 TimersNo timers are required.3.1.3 InitializationThe server MUST be considered to be initialized after a successful activation of one of the threeinterfaces that are registered with the Distributed Component Object Model (DCOM) Remote<strong>Protocol</strong> infrastructure, as specified in [<strong>MS</strong>-DCOM] section 1.3.6.3.1.4 Higher-Layer Triggered EventsAll method invocations are triggered by higher-layer events, such as commands issued withinadministrative and diagnostic applications. The details of method invocations are provided in thefollowing sections.3.1.5 Message Processing Events and Sequencing Rules3.1.5.1 Methods with PrerequisitesThe methods of the IServerHealthReport, IADProxy, and IADProxy2 interfaces require noprerequisite calls against the server.3.1.5.2 IADProxy InterfaceThe IADProxy interface, as specified in <strong>MS</strong>-DCOM, inherits the IUnknown interface. Method opnumfield values start with 3; opnum values 0 through 2 represent the IUnknown_QueryInterface,AddRef, and Release methods, respectively.To receive incoming remote calls for this interface, the server MUST implement a DCOM object usingthe UUID {4BB8AB1D-9EF9-4100-8EB6-DD4B4E418B72}.In these methods, the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> calls several Windows APIs and returns the error codesreturned by these APIs. In the following sections, these codes are referred to as nonzeroimplementation-specific error codes.Methods in RPC Opnum OrderMethodCreateObjectDeleteObjectDescriptionCreate an Active Directory object with the specified distinguished name and attributes.Opnum: 3Delete an Active Directory object with the specified distinguished name.Opnum: 452 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


MethodModifyObjectDescriptionAdd, delete, or modify attributes of an Active Directory object with the specifieddistinguished name.Opnum: 53.1.5.2.1 CreateObject Method (Opnum 3)The CreateObject method MUST execute an LDAP command under machine security credentials tocreate an Active Directory object with a specified distinguished name and attributes.HRESULT CreateObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData)* attributes,[in] BSTR verifyNameDomainControllerName);domainControllerName: MUST be the FQDN of the domain controller to which the methodsends the LDAP request.distinguishedName: MUST be the distinguished name of the Active Directory object that isbeing created. The distinguished name of any object in Active Directory can be used. Theformat of the distinguished name is specified in [RFC2251] section 4.1.3.attributes: The safe array of attributes that MUST be created for the new object. As an inputparameter, the SAFEARRAY is created by the client.verifyNameDomainControllerName: If the attributes of the object refer to an object inanother domain, the client MUST specify the domain controller in that domain that will be usedto verify the reference. The LDAP_SERVER_VERIFY_NAME_OID control will be added to theLDAP command. If this parameter does not specify a domain controller that can be contactedto validate these references, the method MUST fail and return an LDAP protocol failure.The LDAP control is specified in [<strong>MS</strong>-ADTS] section 3.1.1.3.4.1.16.Return Values: The method MUST return:• 0 on success.• For LDAP protocol failures:• If the LDAP error is LDAP_OPERATIONS_ERROR, dfsr<strong>Helper</strong>LdapErrorBase + the serversideerror code.• For all other LDAP errors, dfsr<strong>Helper</strong>LdapErrorBase + the LDAP return code. For moreinformation, see [LDAP-ERR].• For all other failures, an implementation-specific nonzero HRESULT error code, as specifiedin [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF. For protocol purposes,all nonzero values MUST be treated as equivalent failures.When the server receives this message, it MUST check whether the caller has sufficient rights toperform the operation. The implementation SHOULD perform a check to verify that the rights areappropriate for the creation of Active Directory objects.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200853 / 81


If the user does not have sufficient rights, the server MUST fail the operation immediately andreturn the dfsr<strong>Helper</strong>ErrorNotLocalAdmin error code as its response to the client.If the server fails to perform this check because of an implementation-specific failure, the serverMUST fail the operation immediately and return an appropriate error as its response to the client.If the check succeeds and the server can verify that the user has sufficient rights, the server MUSTproceed to the next steps of the method.After it receives this message, the server MUST validate the parameters:• Verify that domainControllerName and distinguishedName are not NULL and are not emptystrings.• Verify that attributes are not NULL and present a valid one-dimensional safe array. SAFEARRAY isas specified in [<strong>MS</strong>-DCOM]. For more information, see [SAFEARRAY].If parameter validation fails, the server MUST immediately fail the operation and return anappropriate error as its response to the client.If both the security check and the parameter validation succeed, the server MUST create a newLDAP command for creating a new Active Directory object that has the specified distinguished nameand attributes.If the verifyNameDomainControllerName parameter is not NULL or is an empty string, the serverMUST append the LDAP_SERVER_VERIFY_NAME_OID control to the LDAP command. The value ofthe verifyNameDomainControllerName parameter MUST be passed to this control as a value. If forany reason this control cannot be created or appended to the command, the server MUST fail theoperation immediately and return the dfsr<strong>Helper</strong>ErrorCreateVerifyServerControl error code as itsresponse to the client.Otherwise, the server MUST execute the LDAP command against the domain controller that isspecified in domainControllerName and check the return value of the LDAP protocol.If the LDAP protocol returns LDAP_SUCCESS, the server MUST return zero to the caller to indicatethe success of the call; otherwise, if the LDAP protocol returned any return code other thanLDAP_SUCCESS, the server MUST return the following error code to the caller:• If the error is LDAP_OPERATIONS_ERROR, the server gets the server-side error code of the LDAPoperation and MUST return dfsr<strong>Helper</strong>LdapErrorBase + the server-side error code to the caller.• For all other LDAP errors, the server MUST return dfsr<strong>Helper</strong>LdapErrorBase + the LDAP returncode to the caller.3.1.5.2.2 DeleteObject Method (Opnum 4)The DeleteObject method MUST execute an LDAP command under machine security credentials todelete an Active Directory object with a specified distinguished name.HRESULT DeleteObject([in] BSTR domainControllerName,[in] BSTR distinguishedName);domainControllerName: MUST be the FQDN of the domain controller to which the methodsends the LDAP command.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200854 / 81


distinguishedName: MUST be the distinguished name of the Active Directory object that isbeing deleted. The distinguished name of any object in Active Directory can be used. Theformat of the distinguished name is specified in [RFC2251] section 4.1.3.Return Values: The method MUST return:• 0 on success.• For LDAP protocol failures:• If the LDAP error is LDAP_OPERATIONS_ERROR, dfsr<strong>Helper</strong>LdapErrorBase + the serversideerror code.• For all other LDAP errors, dfsr<strong>Helper</strong>LdapErrorBase + the LDAP return code. For moreinformation, see [LDAP-ERR].• For all other failures, an implementation-specific nonzero HRESULT error code, as specifiedin [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF. For protocol purposes,all nonzero values MUST be treated as equivalent failures.After receiving this message, the server MUST check whether the caller has sufficient rights toperform the operation. The implementation SHOULD perform a platform-specific check to verify thatthe rights are appropriate for the deletion of Active Directory objects.• If the user does not have sufficient rights, the server MUST fail the operation immediately andreturn the dfsr<strong>Helper</strong>ErrorNotLocalAdmin error code as its response to the client.• If the server fails to perform this check because of an implementation-specific failure, the serverMUST fail the operation immediately and return an appropriate error as its response to theclient.If the check succeeds and the server can verify that the user has sufficient rights, the server MUSTproceed to the next steps of the method.After the server receives this message, it MUST validate the parameters:• Verify that domainControllerName and distinguishedName are not NULL and are not emptystrings.• If parameter validation fails, the server MUST fail the operation immediately and return anappropriate error as its response to the client.If both the security check and the parameter validation succeed, the server MUST create a newLDAP command to delete an existing Active Directory object with the specified distinguished name.The server MUST execute this LDAP command against the domain controller that is specified indomainControllerName and check the return value of the LDAP protocol.If the LDAP protocol returns LDAP_SUCCESS, the server MUST return zero to the caller to indicatethe success of the call; otherwise, if the LDAP protocol returned any return code other thanLDAP_SUCCESS, the server MUST return the following error code to the caller:• If the error is LDAP_OPERATIONS_ERROR, the server gets the server-side error code of the LDAPoperation and MUST return dfsr<strong>Helper</strong>LdapErrorBase + the server-side error code to the caller.• For all other LDAP errors, the server MUST return dfsr<strong>Helper</strong>LdapErrorBase + the LDAP returncode to the caller.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200855 / 81


3.1.5.2.3 ModifyObject Method (Opnum 5)The ModifyObject method MUST execute an LDAP command under machine security credentials toadd, delete, or modify attributes of an Active Directory object with a specified distinguishedname.HRESULT ModifyObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData)* attributes);domainControllerName: MUST be the FQDN of the domain controller to which the methodsends the LDAP request. The format of the distinguished name is specified in [RFC2251]section 4.1.3.distinguishedName: MUST be the distinguished name of the Active Directory object beingmodified. The distinguished name of any object in Active Directory MAY be used.attributes: MUST be the safe array of attributes that are to be added, modified, or deleted.Return Values: The method MUST return:• 0 on success.• For LDAP protocol failures:• If the LDAP error is LDAP_OPERATIONS_ERROR, dfsr<strong>Helper</strong>LdapErrorBase + the serversideerror code.• For all other LDAP errors, dfsr<strong>Helper</strong>LdapErrorBase + the LDAP return code. For moreinformation, see [LDAP-ERR].• For all other failures, an implementation-specific nonzero HRESULT error code, as specifiedin [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF. For protocol purposes,all nonzero values MUST be treated as equivalent failures.After the server receives this message, it MUST check whether the caller has sufficient rights toperform the operation. The implementation SHOULD perform a platform-specific check to verify thatthe rights are appropriate for the modification of Active Directory objects.• If the user does not have sufficient rights, the server MUST fail the operation immediately andreturn the dfsr<strong>Helper</strong>ErrorNotLocalAdmin error code as its response to the client.• If the server fails to perform this security check because of an implementation-specific failure,the server MUST fail the operation immediately and return an appropriate error as its response tothe client.If the security check succeeds and the server can verify that the user has sufficient rights, theserver MUST proceed to the next steps of the method.When the server receives this message, it MUST validate the parameters:• Verify that domainControllerName and distinguishedName are not NULL and are not emptystrings.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200856 / 81


If parameter validation fails, the server MUST fail the operation immediately and return anappropriate error as its response to the client.If both the security check and the parameter validation succeed, the server MUST create a newLDAP command for modifying an existing Active Directory object with the specified distinguishedname and attributes.The server MUST execute this LDAP command against the domain controller that is specified indomainControllerName and check the return value of the LDAP protocol.If the LDAP protocol returns LDAP_SUCCESS, the server MUST return zero to the caller to indicatethe success of the call; otherwise, if the LDAP protocol returns any return code other thanLDAP_SUCCESS, the server MUST return the following error code to the caller:• If the error is LDAP_OPERATIONS_ERROR, the server gets the server-side error code of the LDAPoperation and MUST return dfsr<strong>Helper</strong>LdapErrorBase + the server-side error code to the caller.• For all other LDAP errors, the server MUST return dfsr<strong>Helper</strong>LdapErrorBase + the LDAP returncode to the caller.3.1.5.3 IADProxy2 InterfaceThe IADProxy2 interface, as specified in <strong>MS</strong>-DCOM, inherits from the IADProxy interface, which inturn inherits from the IUnknown interface. Method opnum field values start with 6. Opnum values 0through 2 represent the IUnknown::QueryInterface, AddRef, and Release methods, respectively.Opnums 3 through 5 are inherited from IADProxy.To receive incoming remote calls for this interface, the server MUST implement a DCOM object usingthe UUID {C4B0C7D9-ABE0-4733-A1E1-9FDEDF260C7A}.In these methods, the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> calls several Windows APIs and returns the error codesthat are returned by these APIs. These are referred to as nonzero implementation-specific errorcodes in the following sections.Methods in RPC Opnum OrderMethodCreateObjectDeleteObjectModifyObjectDescriptionCreate an Active Directory object with the specified distinguished name and attributes.Opnum: 6Delete an Active Directory object with the specified distinguished name and attributes.Opnum: 7Add, delete, or modify attributes of the specified Active Directory object.Opnum: 83.1.5.3.1 CreateObject Method (Opnum 6)The CreateObject method MUST execute an LDAP command under machine security credentials, orfor a cluster, under the specified network name credentials in order to create an Active Directoryobject that has a specific distinguished name and attributes.HRESULT CreateObject([in] BSTR domainControllerName,[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200857 / 81


[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData)* attributes,[in] BSTR verifyNameDomainControllerName,[in] BSTR networkNameResourceName);domainControllerName: MUST be the FQDN of the domain controller to which the methodsends the LDAP request. The format of the distinguished name MUST be as specified in[RFC2251] section 4.1.3.distinguishedName: MUST be the distinguished name of the Active Directory object that isbeing created. The distinguished name of any object in Active Directory MAY be used. Theformat of the distinguished name is specified in [RFC2251] section 4.1.3.attributes: MUST be the safe array of attributes that are to be created for the new object.verifyNameDomainControllerName: If the attributes of the object refer to an object inanother domain, the client MUST specify the domain controller in that domain that will be usedto verify the reference. The LDAP_SERVER_VERIFY_NAME_OID control MUST be added to theLDAP command. The LDAP_SERVER_VERIFY_NAME_OID control is specified in [<strong>MS</strong>-ADTS]section 3.1.1.3.4.1.16. If this parameter does not specify a domain controller that can becontacted to validate these references, the method MUST fail and return an LDAP protocolfailure.networkNameResourceName: MUST be the name of the cluster resource (the resource typeMUST be "Network Name"). If this parameter is a non-empty string, the server MUST executethe LDAP command under the account that corresponds to this network name. There are noconstraints regarding the format of the network name except the requirement that its lengthMUST NOT be longer than 32,767 characters. Otherwise, if this parameter is NULL or anempty string, the server MUST use the machine account to execute the LDAP command.Return Values: Return Values: The method MUST return:• 0 on success.• For LDAP protocol failures:• If the LDAP error is LDAP_OPERATIONS_ERROR, dfsr<strong>Helper</strong>LdapErrorBase + the serversideerror code.• For all other LDAP errors, dfsr<strong>Helper</strong>LdapErrorBase + the LDAP return code. For moreinformation, see [LDAP-ERR].• For all other failures, an implementation-specific nonzero HRESULT error code, as specifiedin [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF. For protocol purposes,all nonzero values MUST be treated as equivalent failures.The server MUST handle this message by using the same sequence of steps as forIADProxy::CreateObject (as specified in section 3.1.5.2.1), with the following additional step:• The server MUST execute the LDAP command under the credentials that correspond to thenetwork resource name that is supplied in the networkNameResourceName parameter.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200858 / 81


3.1.5.3.2 DeleteObject Method (Opnum 7)The DeleteObject method executes an LDAP command to delete an Active Directory object with aspecified distinguished name and attributes. The command MUST be executed under the machinesecurity credentials, or for a cluster, under the specified network name credentials.HRESULT DeleteObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] BSTR networkNameResourceName);domainControllerName: MUST be the FQDN of the domain controller to which the methodsends the LDAP request.distinguishedName: MUST be the distinguished name of the Active Directory object that isbeing deleted. The distinguished name of any object in Active Directory MAY be used. Theformat of the distinguished name is specified in [RFC2251] section 4.1.3.networkNameResourceName: MUST be the name of the cluster resource (the resource typeMUST be "Network Name"). If this parameter is a non-empty string, the server MUST executethe LDAP command under the account that corresponds to this network name. There are noconstraints regarding the format of the network name except the requirement that its lengthbe no more than 32,767 characters. Otherwise, if this parameter is NULL or an empty string,the server MUST use the machine account to execute the LDAP command.Return Values: The method MUST return:• 0 on success.• For LDAP protocol failures:• If the LDAP error is LDAP_OPERATIONS_ERROR, dfsr<strong>Helper</strong>LdapErrorBase + the serversideerror code.• For all other LDAP errors, dfsr<strong>Helper</strong>LdapErrorBase + the LDAP return code. For moreinformation, see [LDAP-ERR].• For all other failures, an implementation-specific nonzero error code.The server MUST handle this message by using the same sequence of steps as forIADProxy::DeleteObject (as specified in section 3.1.5.2.2), with the following additional step:• The server MUST execute the LDAP command under the credentials that correspond to thenetwork resource name that is supplied in the networkNameResourceName parameter.3.1.5.3.3 ModifyObject Method (Opnum 8)The ModifyObject method executes an LDAP command to add, delete, or modify attributes of aspecified Active Directory object. The command MUST be executed under machine securitycredentials, or for a cluster, under the specified network name credentials in order to create anActive Directory object with a specific distinguished name and attributes.HRESULT ModifyObject([in] BSTR domainControllerName,[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200859 / 81


[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData)* attributes,[in] BSTR networkNameResourceName);domainControllerName: MUST be the FQDN of the domain controller to which the methodsends the LDAP request.distinguishedName: MUST be the distinguished name of the Active Directory object that isbeing modified. The distinguished name of any object in Active Directory MAY be used. Theformat of the distinguished name is specified in [RFC2251] section 4.1.3.attributes: MUST be the safe array of attributes that are to be added, modified, or deleted.networkNameResourceName: MUST be the name of the cluster resource (the resource typeMUST be "Network Name"). If this parameter is a non-empty string, the server MUST executethe LDAP command under the account that corresponds to this network name. There are noconstraints regarding the format of the network name except the requirement that its lengthbe no more than 32,767 characters. Otherwise, if this parameter is NULL or an empty string,the server MUST use the machine account to execute the LDAP command.Return Values: The method MUST return:• 0 on success.• For LDAP protocol failures:• If the LDAP error is LDAP_OPERATIONS_ERROR, dfsr<strong>Helper</strong>LdapErrorBase + the serversideerror code.• For all other LDAP errors, dfsr<strong>Helper</strong>LdapErrorBase + the LDAP return code. For moreinformation, see [LDAP-ERR].• For all other failures, an implementation-specific nonzero HRESULT error code, as specifiedin [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF. For protocol purposes,all nonzero values MUST be treated as equivalent failures.The server MUST handle this message by using the same sequence of steps as forIADProxy::ModifyObject (as specified in section 3.1.5.2.3), with the following additional step:• The server MUST execute the LDAP command under the credentials that correspond to thenetwork resource name that is supplied in the networkNameResourceName parameter.3.1.5.4 IServerHealthReport InterfaceThe IServerHealthReport interface, as specified in <strong>MS</strong>-DCOM, inherits the IUnknown interface.Method opnum field values start with 3; opnum values 0 through 2 represent theIUnknown_QueryInterface, AddRef, and Release methods, respectively.To receive incoming remote calls for this interface, the server MUST implement a DCOM object usingthe UUID {E65E8028-83E8-491b-9AF7-AAF6BD51A0CE}.Methods in RPC Opnum Order[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200860 / 81


MethodGetReportGetCompressedReportGetRawReportExGetReferenceVersionVectorsGetMemberVersionVectorsAndBacklogCountsGetReferenceBacklogCountDescriptionRetrieves health information for the specifiedreplication group and global health data of the <strong>DFS</strong>-Rservice on the server.Opnum: 3Gets the health information for the specifiedreplication group and the global health data of the<strong>DFS</strong>-R service on the server.Opnum: 4Not implemented.Opnum: 5Gets the version vectors for all replicated folders inthe specified replication group.Opnum: 6Local use only. MUST not be called by the client.Opnum: 7Gets the outbound backlog for a replicated folder onthe member, relative to specified version vectors.Opnum: 83.1.5.4.1 GetReport Method (Opnum 3)The GetReport method retrieves health information for the specified replication group that is hostedon the server in addition to the global health data of the <strong>DFS</strong>-R service on the server.HRESULT GetReport([in] GUID replicationGroupGuid,[in] BSTR referenceMember,[in] SAFEARRAY(_VersionVectorData)* referenceVersionVectors,[in] long flags,[out] SAFEARRAY(_VersionVectorData)* memberVersionVectors,[out] BSTR* reportXML);replicationGroupGuid: MUST be the identifier of the replication group for which the server getshealth information. This field corresponds to the objectGUID field of the ms<strong>DFS</strong>R-<strong>Replication</strong>Group configuration object in Active Directory. The ms<strong>DFS</strong>R-<strong>Replication</strong>Group isspecified in [<strong>MS</strong>-FRS2] section 2.2.3.5.referenceMember: If the flags parameter has REPORTING_FLAGS_BACKLOG set, thisparameter MUST be set to the name of the reference member. Otherwise, this parameterMUST be set to NULL.referenceVersionVectors: If the flags parameter has REPORTING_FLAGS_BACKLOG set, theset of version vectors for replicated folders on the reference member MUST be passed byusing this parameter. Otherwise, this parameter MUST be set to NULL. TheVersionVectorData structure is specified in section 2.2.1.4.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200861 / 81


flags: Any values of the DfsrReportingFlags enumeration MUST be combined together byusing a bitwise OR operation. For more information about DfsrReportingFlags, see section2.2.1.2.memberVersionVectors: If the flags parameter has REPORTING_FLAGS_BACKLOG set, the setof version vectors for the replicated folders on the server together with outgoing MUST bereturned in this output parameter. The VersionVectorData structure is specified in section2.2.1.4.reportXML: The report body in the XML format MUST be returned in this output parameter. Formore information about the XML format of the report, see section 2.2.1.5.Return Values: The method MUST return 0 on success; or return an implementation-specificnonzero HRESULT error code, as specified in [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000and 0xFFFFFFFF on failure. For protocol purposes, all nonzero values MUST be treated asequivalent failures.After receiving this message, the server MUST validate parameters:• Verify that the reportXML pointer is not NULL.If parameter validation fails, the server MUST fail the operation immediately and return anappropriate error as its response to the client.If the REPORTING_FLAGS_BACKLOG flag was set in the flags parameter, the server MUST get themember version vector for each enabled replicated folder in the replication group with the GUID thatis specified by the replicationGroupGuid parameter. The server MUST save information about theversion vectors in the memberVersionVectors output parameter.The server MUST also generate report XML. The server MUST get the following information (for moreinformation, see section 2.2.1.5):• Information about the configuration of the replicated folder (replicated folder root path, stagingfolder path, conflict folder path, and configured staging size).• Information about files that were received from other <strong>DFS</strong>-R members since the <strong>DFS</strong>-R servicestarted, which SHOULD occur when the system is booted. The required information is the countand cumulative compressed size of the files received, as well as the cumulative compressed sizeof the files received from other members.• Information about available errors that were encountered by the <strong>DFS</strong>-R service since the serverstarted. These errors are specified in section 2.2.1.5.17.• If the REPORTING_FLAGS_BACKLOG flag was specified in message parameters, the server MUSTalso get the count of pending incoming changes that are known to the reference member (asspecified by the version vectors passed in the method parameters) but that are not yet receivedon the local member.• If the REPORTING_FLAGS_FILES flag was specified in message parameters, the server MUST alsocount the number of files and cumulative file sizes for:• Files under the replicated folder root that are available for replication. The server MUST NOTcount any files that are excluded from replication.• Files in the conflict folder.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200862 / 81


• Files in the staging folder. For the staging folder, the server MUST count only the cumulativesize of the files and specify -1 instead of the count of files.If an error is encountered while the server is getting the information listed above, the server MAYchoose to abort further processing and return the implementation-specific error to the client.Alternatively, the server MAY choose to proceed with getting other health information and to excludefrom the report the information that it was unable to collect.3.1.5.4.2 GetCompressedReport Method (Opnum 4)The GetCompressedReport method gets the health information for the specified replication groupthat is hosted on the server in addition to the global health data of the <strong>DFS</strong>-R service on the server.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 getshealth information. This field corresponds to the objectGUID field of the ms<strong>DFS</strong>R-<strong>Replication</strong>Group configuration object in Active Directory. The ms<strong>DFS</strong>R-<strong>Replication</strong>Group isspecified in [<strong>MS</strong>-FRS2] section 2.2.3.5.referenceMember: If the flags parameter has REPORTING_FLAGS_BACKLOG set, thisparameter MUST be set to the name of the reference member. Otherwise, this parameterMUST be set to NULL.referenceVersionVectors: If the flags parameter has REPORTING_FLAGS_BACKLOG set, theset of version vectors for replicated folders on the reference member MUST be passed byusing this parameter. Otherwise, this parameter MUST be set to NULL. TheVersionVectorData structure is specified in section 2.2.1.4.flags: MUST be zero or more combinations of values of DfsrReportingFlags enumeration. TheDfsrReportingFlags enumeration is specified in section 2.2.1.2.memberVersionVectors: If the flags parameter has REPORTING_FLAGS_BACKLOG set, the setof version vectors for the replicated folders on the server together with outgoing MUST bereturned in this output parameter. The VersionVectorData structure is specified in section2.2.1.4.reportCompressed: The compressed report body in the XML format MUST be returned in thisoutput parameter. The format of the XML MUST be the same as for the reportXML member ofthe GetReport method. This MUST be an encoded field whose format is specified by theWindows Server 2003 decompression algorithm in [<strong>MS</strong>-DRSR] section 4.1.10.2.13.uncompressedReportSize: The size, in bytes, of the uncompressed data returned in thereportCompressed paramater.Return Values: The method MUST return zero on success, or an implementation-specificnonzero HRESULT error code, as specified in [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200863 / 81


and 0xFFFFFFFF on failure. For protocol purposes, all nonzero values MUST be treated asequivalent failures.After receiving this message, the server MUST create the IServerHealthReport::GetReportmessage with the same input parameters and then process this message.If a nonzero return code was received as a result of processing theIServerHealthReport::GetReport message, the server MUST immediately return this return codeto the client.For a zero error code, the server MUST return the size of the uncompressed report that is returnedfrom IServerHealthReport::GetReport through the uncompressedReportSize output parameter.The server MUST also return the information about the version vectors that is returned byIServerHealthReport::GetReport through the memberVersionVectors output parameter.The server MUST encode the report as a field in the format that is specified by the WindowsServer 2003 compression algorithm in [<strong>MS</strong>-DRSR] section 4.1.10.2.13. After examining thecompressed report size:• If the compressed report size is less than the uncompressed size, the server MUST return thecompressed report through the reportCompressed output parameter.• If the compressed report size is greater than or equal to the uncompressed size, the server MUSTreturn the uncompressed report through the reportCompressed output parameter.The server MUST return the response to the client. The response MUST contain the outputparameters that are mentioned above and also the status of the operation.3.1.5.4.3 GetRawReportEx Method (Opnum 5)The GetRawReportEx method is not currently in use and has never been implemented in anyversion of the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>. It is reserved for future use.HRESULT GetRawReportEx([in] GUID replicationGroupGuid,[in] SAFEARRAY(VARIANT)* reportOptions,[out] SAFEARRAY(VARIANT)* report);replicationGroupGuid: Not implemented.reportOptions: Not implemented.report: Not implemented.Return Values: Return Values: The server MUST return the E_NOTIMPL error code (numericvalue 0x80000001L) and take no action.Return value/code0x80000001E_NOTIMPLDescriptionNot implemented.64 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


3.1.5.4.4 GetReferenceVersionVectors Method (Opnum 6)The GetReferenceVersionVectors method gets the version vectors for all replicated folders in thespecified replication group.HRESULT GetReferenceVersionVectors([in] GUID replicationGroupGuid,[out] SAFEARRAY(_VersionVectorData)* referenceVersionVectors);replicationGroupGuid: MUST be the identifier of the replication group for which the server getsversion vectors.referenceVersionVectors: MUST be the array of version vectors for the replicated folders onthe server. MUST be returned in this output parameter. For more information, see section2.2.1.4.Return Values: The method MUST return zero on success or return an implementation-specificnonzero HRESULT error code, as specified in [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000and 0xFFFFFFFF on failure. For protocol purposes, all nonzero values MUST be treated asequivalent failures.Upon receiving this message, the server MUST get all version vectors for replicated folders in thereplication group with the GUID that is specified by replicationGroupGuid.The server MUST save information about these version vectors in the referenceVersionVectorsoutput parameter and return zero to indicate success. If failure, the referenceVersionVectors outputparameter MUST be set to contain a NULL pointer value for the SAFEARRAY and return a failureHRESULT error code in the range (0x80000000 – 0xFFFFFFFF).The server MUST return the response to the client. The response MUST contain the outputparameters that are mentioned above, and also the status of the operation.3.1.5.4.5 GetMemberVersionVectorsAndBacklogCounts Method (Opnum 7)The method MUST NOT be called from a remote client; therefore, the description of this method isnot provided.HRESULT GetMemberVersionVectorsAndBacklogCounts([in] SAFEARRAY(_VersionVectorData)* referenceVersionVectors,[out] SAFEARRAY(_VersionVectorData)* memberVersionVectors);referenceVersionVectors: For local use only.memberVersionVectors: For local use only.Return Values: The method MUST return an implementation-specific HRESULT error code, asspecified in [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000 and 0xFFFFFFFF on failure. Forprotocol purposes, all nonzero values MUST be treated as equivalent failures and take noaction when called from a remote client.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200865 / 81


3.1.5.4.6 GetReferenceBacklogCount Method (Opnum 8)The GetReferenceBacklogCount method gets the outbound backlog for a replicated folder on themember, relative to specific version vectors.HRESULT GetReferenceBacklogCounts([in] SAFEARRAY(_VersionVectorData)* flatMemberVersionVectors,[out] SAFEARRAY(long)* backlogCounts);flatMemberVersionVectors: MUST be the version vector of the replication group on anothermember that is participating in the same replication group. If multiple members are specifiedin the flatMemberVersionVectors array, the backlogCounts array contains the backlog countsfor each reference vector specified.backlogCounts: The relative backlog for each reference vector in flatMemberVersionVectorsMUST be returned in this output parameter. The length of the backlogCounts array MUST bethe same as the length of flatMemberVersionVectors. The value on each position in thereturned array MUST correspond to the version vector on the same position in theflatMemberVersionVectors array.Return Values: The method MUST return 0 on success or return an implementation-specificnonzero HRESULT error code, as specified in [<strong>MS</strong>-ERREF] section 2.1, between 0x80000000and 0xFFFFFFFF on failure. For protocol purposes, all nonzero values MUST be treated asequivalent failures.After the server receives this message, it MUST get the backlog count for each version vector that issupplied in the message parameters. If the server fails to retrieve a backlog count, it returns aspecial value in the backlogCounts array at an index that corresponds to the index in theflatMemberVersionVectors for the entry that was used as input. The overall method MAY still returnsuccess (S_OK). These special values are as follows:• BACKLOG_CONTENT_SET_NOT_PRESENT (0xffffffff): The content set is not present in <strong>DFS</strong>-R.• BACKLOG_ERROR_VECTOR_DECOMPRESS_FAILED (0xfffffffe): The flat member version vectorcould not be decompressed by using Xpress.• BACKLOG_ERROR_EMPTY_VECTOR_FROM_MEMBER (0xfffffffe): The version vector is empty,that is, it has a 0 length.• BACKLOG_ERROR_GET_BACKLOG_FAILED (0xfffffffe): Other run-time errors or implementationspecificerrors that prevent the calculation of the backlog count.The backlog counts MUST be saved in the backlogCounts output parameter.The server MUST return the response to the client. The response MUST contain the outputparameters that were previously mentioned and also the status of the operation.3.1.6 Timer EventsNo timer events are used in the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>.3.1.7 Other Local EventsNo other local events are used in the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200866 / 81


3.2 Client Role Details3.2.1 Abstract Data ModelNo abstract data model is required.3.2.2 TimersNo timers are required.3.2.3 InitializationA client MUST initialize by creating an RPC binding handle to one of the interfaces. For moreinformation and a description of how to get a client-side RPC binding handle for an interface, see[<strong>MS</strong>-DCOM].No additional initialization is required. The client can call the method of the interfaces immediatelyafter binding.3.2.4 Higher-Layer Triggered EventsAll method invocations are triggered by higher-layer events, such as commands issued inadministrative and diagnostic applications.3.2.5 Message Processing Events and Sequencing RulesThe <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> client does not maintain any state. It MUST send to the server thecommand that is issued by administrative and diagnostic applications. All error codes are returneddirectly to the application.3.2.5.1 Methods with PrerequisitesThe methods of the IServerHealthReport, IADProxy, and IADProxy2 interfaces require noprerequisite calls against the server.3.2.6 Timer EventsNo timer events are used in the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>.3.2.7 Other Local EventsNo other local events are used in the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200867 / 81


4 <strong>Protocol</strong> Examples4.1 Example of Messages Between a Client and ServerFigure 1: Example of messages between a client and server4.2 Example of the Server Health Report in XML FormatThe following is an example of the server health report in XML format.


ServerReportVersion="1.0"dfsr<strong>Helper</strong>Version="5.2.3790.2590">45.2.3790.2075127831243048498000Monday, January 30, 2006 20:51:444~*, *.bak, *.tmpD:\PROGRA<strong>MS</strong>100101000000000D:\PROGRA<strong>MS</strong>\ConflictAndDeleted101999950000D:\PROGRA<strong>MS</strong>\DfsrPrivate\Staging-1-130000015728640000777711111512109244235776610270248965368709129262448640149784268869 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


0127727764510000000Monday, October 03, 2005 05:27:31C9E160FE-F285-4DDF-BBD1-E73D7DD33634SERVER01PROGRA<strong>MS</strong>SERVER01.microsoft.comserver01192.168.0.1009027A failure was reported by the remote partnerD5D8B7F9-C70B-4BF6-B283-199141DEF967270 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


5 SecurityAll security considerations that apply to DCOM interfaces, as specified in [<strong>MS</strong>-DCOM] section 5, arealso applicable to the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>.In addition, the IADProxy and IADProxy2 interfaces expose methods for changing ActiveDirectory configuration objects. These configuration objects SHOULD have restricted access, asspecified in section 1.3. Before processing the methods of IADProxy and IADProxy2, animplementation of the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> SHOULD verify the identity of the caller and verify thatthe caller has privileges to change these objects. The details of this check are implementationspecificand depend on the security model of the implementation.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200871 / 81


6 Appendix A: Full IDLThe <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> contains one interface, whose IDL definition is listed in this section.For ease of implementation, the full IDL is provided. The IDL definition for this interface imports"ms-oaut.idl", which in turn imports "ms-dcom.idl" and "ms-dtyp.idl", where "ms-oaut.idl" is the IDLspecified in [<strong>MS</strong>-OAUT], Appendix A; "ms-dcom.idl" is the IDL specified in [<strong>MS</strong>-DCOM], Appendix A;and "ms-dtyp.idl" is the IDL specified in [<strong>MS</strong>-DTYP], Appendix A.import "ms-oaut.idl";#define SAFEARRAY(datatype) SAFEARRAY[uuid(9009D654-250B-4e0d-9AB0-ACB63134F69F)]typedef enum Dfsr<strong>Helper</strong>ErrorsEnum{dfsr<strong>Helper</strong>ErrorNotLocalAdmin = 0x80042001,dfsr<strong>Helper</strong>ErrorCreateVerifyServerControl = 0x80042002,dfsr<strong>Helper</strong>LdapErrorBase = 0x80043000} Dfsr<strong>Helper</strong>ErrorsEnum;[uuid(CEB5D7B4-3964-4f71-AC17-4BF57A379D87)]typedef enum DfsrReportingFlags{REPORTING_FLAGS_NONE= 0,REPORTING_FLAGS_BACKLOG = 1,REPORTING_FLAGS_FILES = 2,} DfsrReportingFlags;typedef [uuid(D3766938-9FB7-4392-AF2F-2CE8749DBBD0)]struct AdAttributeData{long operation;BSTR attributeName;BSTR attributeValue;VARIANT_BOOL isString;long length;}_AdAttributeData;typedef[uuid(7A2323C7-9EBE-494a-A33C-3CC329A18E1D)]struct VersionVectorData{long uncompressedSize;long backlogCount;BSTR contentSetGuid;VARIANT versionVector;}_VersionVectorData;//----------------------------------------------------------------------------[object,uuid(4BB8AB1D-9EF9-4100-8EB6-DD4B4E418B72),oleautomation,helpstring("IADProxy Interface"),72 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


pointer_default(unique)]interface IADProxy : IUnknown{HRESULT CreateObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData) *attributes,[in] BSTR verifyNameDomainControllerName);HRESULT DeleteObject([in] BSTR domainControllerName,[in] BSTR distinguishedName);};HRESULT ModifyObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData) *attributes);//----------------------------------------------------------------------------[object,uuid(C4B0C7D9-ABE0-4733-A1E1-9FDEDF260C7A),oleautomation,helpstring("IADProxy2 Interface"),pointer_default(unique)]interface IADProxy2 : IADProxy{HRESULT CreateObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData) *attributes,[in] BSTR verifyNameDomainControllerName,[in] BSTR networkNameResourceName);HRESULT DeleteObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] BSTR networkNameResourceName);};HRESULT ModifyObject([in] BSTR domainControllerName,[in] BSTR distinguishedName,[in] SAFEARRAY(_AdAttributeData) *attributes,[in] BSTR networkNameResourceName);//----------------------------------------------------------------------------[object,uuid(E65E8028-83E8-491b-9AF7-AAF6BD51A0CE),oleautomation,helpstring("IServerHealthReport Interface"),pointer_default(unique)]interface IServerHealthReport : IUnknown{HRESULT GetReport([in] GUID replicationGroupGuid,[in] BSTR referenceMember,[in] SAFEARRAY(_VersionVectorData) *referenceVersionVectors,73 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


[in] long flags,[out] SAFEARRAY(_VersionVectorData) *memberVersionVectors,[out] BSTR *reportXML);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);HRESULT GetRawReportEx([in] GUID replicationGroupGuid,[in] SAFEARRAY(VARIANT) *reportOptions,[out] SAFEARRAY(VARIANT) *report);HRESULT GetReferenceVersionVectors([in] GUID replicationGroupGuid,[out] SAFEARRAY(_VersionVectorData) *referenceVersionVectors);HRESULT GetMemberVersionVectorsAndBacklogCounts([in] SAFEARRAY(_VersionVectorData) *referenceVersionVectors,[out] SAFEARRAY(_VersionVectorData) *memberVersionVectors);}HRESULT GetReferenceBacklogCounts([in] SAFEARRAY(_VersionVectorData) *flatMemberVersionVectors,[out] SAFEARRAY(long) *backlogCounts);74 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


7 Appendix B: Windows BehaviorThe information in this specification is applicable to the following versions of Windows:• Windows 95• Windows 98• Windows 2000• Windows Me• Windows XP• Windows Vista• Windows NT• Windows NT 4.0• Windows NT Server• Windows 2000 Server• Windows Server 2003• Windows Server 2003 SP1• Windows Server 2008Exceptions, if any, are noted below. Unless otherwise specified, any statement of optional behaviorin this specification prescribed using the terms SHOULD or SHOULD NOT implies Windows behaviorin accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the termMAY implies that Windows does not follow the prescription. Section 1.1: The <strong>DFS</strong>-R service excludes the following files from replication:• Files that have a temporary flag.• Specific types of reparse points that are not supported by <strong>DFS</strong>-R. (Supported and unsupportedreparse points are specified in [<strong>MS</strong>-FRS2].)• Encrypted files. Section 1.3: A server that is running Windows Server 2003 R2 or Windows Server 2008 andthe <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> verifies that the calling user account is in the administrators group onthat server computer. Windows 2000 and Windows Server 2003 (other than R2), and clientoperating systems such as Windows XP and Windows Vista, do not support the <strong>DFS</strong>-R <strong>Helper</strong><strong>Protocol</strong>. Section 1.5: The user account under which the client runs MUST be a member of theadministrators group on the server computer on which the Distributed File System: <strong>Replication</strong><strong>Helper</strong> (<strong>DFS</strong>-R <strong>Helper</strong>) <strong>Protocol</strong> is running for it to be able to configure <strong>DFS</strong>-R and monitor the stateof the <strong>DFS</strong>-R service on the computer. Section 1.7: The IADProxy and IServerHealthReport interfaces are available on WindowsServer 2003 R2 and Windows Server 2008.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200875 / 81


The IADProxy2 interface is available on Windows Server 2008.The IADProxy interface MUST be used with Windows Server 2003 R2 and MAY be used withWindows Server 2008.The IADProxy2 interface MUST be used with a server cluster that is running Windows Server 2008.Either IADProxy2 or IADProxy MAY be used for nonclustered servers that are running WindowsServer 2008. Section 2.1: Windows does not configure any transport-authentication settings. Instead,Windows relies on activation and access security for limiting access to <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong>. Section 2.1: The IADProxy and IADProxy2 interfaces require the caller to be a member ofthe administrators security group on the server for both launch and access. Access to theIServerHealthReport interface is not restricted. However, the implementation ofIServerHealthReport uses the client credentials to access health data of the <strong>DFS</strong>-R service. Onlymembers of the administrators security group on the server have access to the health data of <strong>DFS</strong>-R. Therefore, IServerHealth report relies on the <strong>DFS</strong>-R service to make the necessary securitychecks. Section 2.2.1.5.2: The format of the systemTime element is {the name, in text, of the day ofthe week} + " ," + {the name, in text, of the month} + " " + {the day, in numerals, of the month}+ "," + {the year, in numerals} + "," + {the hour, in numerals, using time as represented by a 24-hour clock} + ":" + {the minutes, in numerals} + ":" + {the seconds, in numerals; for example:Monday, January 30, 2006, 20:51:44}. Section 2.2.1.5.5: A Windows-based client uses theIServerHealthReport::GetReferenceVersionVectors method to get the version vector fromanother server. Section 2.2.1.5.5: A Windows-based client uses theIServerHealthReport::GetReferenceVersionVectors method to get the version vector fromanother server. Section 2.2.1.5.6: The <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> server always sets this field to 0. Section 2.2.1.5.7: The <strong>DFS</strong>-R service excludes the following files from replication:• Files that have a temporary flag.• Specific types of reparse points that are not supported by <strong>DFS</strong>-R.• Supported and unsupported reparse points that are specified in [<strong>MS</strong>-FRS2].• Encrypted files. Section 2.2.1.5.8: For folders where the value of the status field is "6" (disabled replicatedfolders), the server does not include any folder elements.For folders that have any other status, the <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> server adds exactly three folderelements: one "root", one "staging", and one "conflict". Section 2.2.1.5.8: In Windows Server 2003 R2 and Windows Server 2008, <strong>DFS</strong>-R accessesfiles on the basis of NTFS semantics. This implies respecting NTFS-sharing semantics, which thenmeans that if other applications have files open—effectively denying shared-read access—<strong>DFS</strong>-Rcannot read these files from disk. Similarly, if applications have files open, thereby denying shareddelete access, <strong>DFS</strong>-R cannot update these files.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200876 / 81


Section 2.2.1.5.9: The version of the dfsr.exe binary (for example, 5.2.3790.1830). This isthe same as the version number of the Windows operating system. Section 2.2.1.5.10: A computer's site is determined at the time that computer discovers adomain controller in its domain. When the computer discovers a domain controller, the computerconnects to it. The IP address that is used on the client to deliver the connection to the domaincontroller is passed to the domain controller to map it to the site name. The site name is returned tothe client via the response, and the client caches the site locally. For more information, see [<strong>MS</strong>-ADTS]. Section 2.2.1.5.10: This is the version number of the <strong><strong>DFS</strong>RH</strong>elper.dll binary that is installedon the server. Section 2.2.1.5.11: Windows puts the FQDN of the domain in the domain attribute. Section 2.2.1.5.12: The value of journalSize is USN journal size. Windows tracks changeson the volume in the USN journal. Section 2.2.1.5.12: The value of this field is the volume GUID. Section 2.2.1.5.12: The value of this field is the volume label. Section 2.2.1.5.17: All error messages that are specified in this section are detected andreported by the <strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> server. Section 2.2.1.5.17: The return code of a failed operation is used as the error code, and theverbose string that describes the operation failure is used as the error string. The error string is inthe language of the operating system that is installed on the server; regional language settings arenot taken into consideration. Section 2.2.1.5.17: The values of the error parameters correspond to the specificationprovided. The error description that is specified for each error corresponds to the event text that isput in the event log when that error is encountered. Section 2.2.1.5.17.1: By default, the service is restarted by the service control manager. Anadministrator may configure the <strong>DFS</strong> <strong>Replication</strong> service to not restart automatically. The service willrestart automatically if configured to do so. Section 2.2.1.5.17.9: This error is returned if the <strong>DFS</strong>-R service detects an NTFS changejournal wrap on the volume. Section 2.2.1.5.17.10: The error string that is returned by the database implementation. Section 2.2.1.5.17.11: This error is returned if the <strong>DFS</strong> <strong>Replication</strong> service detects an NTFSchange journal (USN Journal) loss on the volume. Section 2.2.1.5.17.12: This error is returned if the <strong>DFS</strong> <strong>Replication</strong> service fails to recoverfrom an NTFS change journal (USN Journal) wrap or loss on the volume. Section 2.2.1.5.17.15: The value of the high-water mark equals 90 percent of the configuredsize of the staging folder. The value of the low-water mark equals 60 percent of the configured sizeof the staging folder. The cleanup process for the staging space is triggered when the high-watermark is met for the staging folder. The cleanup process continues to delete staging files on the basisof their last access time until the low-water mark is reached.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200877 / 81


Section 2.2.1.5.17.22: This error is raised when the file is encrypted by using the EncryptingFile System (EFS) in a replicated folder. This file will not be replicated because the replication of filesencrypted by EFS is not supported by the <strong>DFS</strong> <strong>Replication</strong> service. Section 2.2.1.5.17.35: The polling cycle is able to be set in the configuration for <strong>DFS</strong>-R andhas a default value of 60. Valid values are from 1 minute to 596.5 hours. Section 2.2.1.5.17.37: The volume MUST be a local, non-removable volume that is formattedby using NTFS. Section 3.1.5.2.1: A Windows-based client uses this method only to create the <strong>DFS</strong><strong>Replication</strong> configuration objects that are specified in [<strong>MS</strong>-FRS2] section 2.2.3. Section 3.1.5.2.1: Return standard Windows HRESULTs and Windows errors mapped forHRESULT (the specific returned code is 0x80070057). Section 3.1.5.2.2: A Windows-based client uses this method only to delete the <strong>DFS</strong><strong>Replication</strong> configuration objects that are specified in [<strong>MS</strong>_FRS2] section 2.2.3. Section 3.1.5.2.2: The server checks whether the caller is a member of the administratorsgroup on the local computer.• Return 0x80042001 if the caller is not a local administrator on the server. Section 3.1.5.2.3: A Windows-based client uses this method only to modify the <strong>DFS</strong><strong>Replication</strong> configuration objects that are specified in [<strong>MS</strong>-FRS2] section 2.2.3. Section 3.1.5.2.3: The server verifies that the caller is a member of the administrators groupon the local computer.• Return 0x80042001 if the caller is not a local administrator on the server. Section 3.1.5.3.1: A Windows-based client uses this method only to create the <strong>DFS</strong><strong>Replication</strong> configuration objects that are specified in [<strong>MS</strong>-FRS2] section 2.2.3. Section 3.1.5.3.2: A Windows-based client uses this method only to delete the <strong>DFS</strong><strong>Replication</strong> configuration objects that are specified in [<strong>MS</strong>-FRS2] section 2.2.3. Section 3.1.5.3.3: A Windows-based client uses this method only to modify the <strong>DFS</strong><strong>Replication</strong> configuration objects that are specified in [<strong>MS</strong>-FRS2] section 2.2.3. Section 3.1.5.4.1: Return the standard Windows HRESULT and Windows errors mapped forHRESULT (the specific code returned is 0x80070057). Section 3.1.5.4.1: The server running the <strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong> in Windows tries to recoverfrom errors and proceeds with collecting other pieces of diagnostic information. The server excludesfrom the report all health parameters it was unable to collect.• The server MUST save the report XML in the reportXML output parameter.• The server MUST return a response to the client. The response MUST contain the outputparameters previously mentioned and also the status of the operation. Section 3.1.5.4.3: The GetRawReportEx method is not implemented in any version of the<strong>DFS</strong>-R <strong>Helper</strong> <strong>Protocol</strong>. Section 5: The server verifies that the caller is a member of the administrators group for thatserver.[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 200878 / 81


8 Index_AdAttributeData structure_VersionVectorData structureAAbstract data modelclientserverAdAttributeDataaffectedContentSetsaffectedFileSetApplicabilityCCapability negotiationClientabstract data modelhigher-layer triggered eventsinitializationlocal eventsmessage processingoverviewsequencing rulestimer eventstimersCreateObject method (section 3.1.5.2.1, section3.1.5.3.1)DData model - abstractclientserverData typesDeleteObject method (section 3.1.5.2.2, section3.1.5.3.2)Dfsr<strong>Helper</strong>ErrorsEnumDfsr<strong>Helper</strong>ErrorsEnum enumerationDfsrReportingFlagsDfsrReportingFlags enumerationdfsrStatsdriveEerrorError typeserrorReferencesEVENT_<strong>DFS</strong>R_CONFIG_CS_ROOT_INVALIDEVENT_<strong>DFS</strong>R_CONFIG_CS_ROOT_STALEEVENT_<strong>DFS</strong>R_CONFIG_DS_DUPLICATE_DATAEVENT_<strong>DFS</strong>R_CONFIG_DS_INCONSISTENT_DATAEVENT_<strong>DFS</strong>R_CONFIG_DS_INVALID_DATAEVENT_<strong>DFS</strong>R_CONFIG_DS_UPDATE_FAILED (section2.2.1.5.17.34, section 2.2.1.5.17.35)EVENT_<strong>DFS</strong>R_CONFIG_INVALID_PARAMETER_ERROREVENT_<strong>DFS</strong>R_CONFIG_INVALID_PARAMETER_WARNINGEVENT_<strong>DFS</strong>R_CONFIG_NO_CONNECTIONS_ENABLEDEVENT_<strong>DFS</strong>R_CONFIG_NO_CONNECTIONS_EXISTEVENT_<strong>DFS</strong>R_CONFIG_VOLUME_CONSISTENCY_CHECK_FAILEDEVENT_<strong>DFS</strong>R_CONFIG_VOLUME_NOT_SUPPORTEDEVENT_<strong>DFS</strong>R_CONFIG_WMI_PROVIDER_REGISTRATION_FAILEDEVENT_<strong>DFS</strong>R_CONNECTION_ERROREVENT_<strong>DFS</strong>R_CONNECTION_SERVICE_UNREACHABLEEVENT_<strong>DFS</strong>R_CONNECTION_UNRECOGNIZEDEVENT_<strong>DFS</strong>R_CS_DISABLEDEVENT_<strong>DFS</strong>R_CS_DISK_FULLEVENT_<strong>DFS</strong>R_CS_ERROREVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_FRS1 (section2.2.1.5.17.38, section 2.2.1.5.17.41)EVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_LOGEVENT_<strong>DFS</strong>R_CS_OVERLAPPING_WITH_SYSTEMEVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_LOCALEVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_SERVINGEVENT_<strong>DFS</strong>R_CS_SHARING_VIOLATION_WALKINGEVENT_<strong>DFS</strong>R_CS_STAGE_CLEANUP_FAILEDEVENT_<strong>DFS</strong>R_CS_STAGE_CLEANUP_STARTEDEVENT_<strong>DFS</strong>R_CS_STAGE_EXCEEDED_SIZEEVENT_<strong>DFS</strong>R_CS_STAGE_INACCESSIBLEEVENT_<strong>DFS</strong>R_CS_UNSUPPORTED_ENCRYPTED_FILESEVENT_<strong>DFS</strong>R_CS_UNSUPPORTED_REPARSE_TAGEVENT_<strong>DFS</strong>R_INCOMPATIBLE_VERSIONEVENT_<strong>DFS</strong>R_SERVICE_DEBUG_LOG_STOPEVENT_<strong>DFS</strong>R_SERVICE_FAILED_PROCESSING_RESTORE_VOLUME_LISTEVENT_<strong>DFS</strong>R_SERVICE_INTERNAL_ERROR (section2.2.1.5.17.1, section 2.2.1.5.17.4)EVENT_<strong>DFS</strong>R_SERVICE_LOG_INITIALIZATION_FAILEDEVENT_<strong>DFS</strong>R_SERVICE_RESUME_FAILED_AFTER_BACKUP_RESTOREEVENT_<strong>DFS</strong>R_VOLUME_DATABASE_ERROREVENT_<strong>DFS</strong>R_VOLUME_ERROREVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_LOSSEVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_RECOVERY_FAILEDEVENT_<strong>DFS</strong>R_VOLUME_JOURNAL_WRAPExampleshealth report XMLmessages between client and serveroverviewFFields - vendor-extensiblefilefolderGGetCompressedReport methodGetMemberVersionVectorsAndBacklogCounts methodGetRawReportEx methodGetReferenceBacklogCounts methodGetReferenceVersionVectors methodGetReport method79 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


GlossaryHHealth report XML exampleHigher-layer triggered eventsclientserverIIADProxy interface methodsIADProxy:: DeleteObject methodIADProxy:: ModifyObject methodIADProxy::CreateObject methodsIADProxy2 interface methodsIADProxy2:: DeleteObject methodIADProxy2:: ModifyObject methodIADProxy2::CreateObject methodInformative referencesInitializationclientserverIntroductionIServerHealthReport interface methodsIServerHealthReport:: GetReport methodIServerHealthReport::GetCompressedReport methodIServerHealthReport::GetMemberVersionVectorsAndBacklogCounts methodIServerHealthReport::GetRawReportEx methodIServerHealthReport::GetReferenceBacklogCountmethodIServerHealthReport::GetReferenceVersionVectorsmethodLLocal eventsclientserverMMessage processingclientserverMessagesdata typesoverviewsyntaxtransportMessages between client and server exampleMethods (section 3.1.5.1, section 3.2.5.1)ModifyObject method (section 3.1.5.2.3, section3.1.5.3.3)NNormative referencesOOverviewPPreconditionsPrerequisitesRrefReferencesinformativenormativeoverviewRelationship to other protocolsSSecuritySequencing rulesclientserverserverabstract data modelhigher-layer triggered eventsinitializationlocal eventsmessage processingoverviewsequencing rulestimer eventstimersServer health report XMLserverInfoserviceInfosetStandards assignmentsSyntaxTTimer eventsclientserverTimersclientservertimestamptransactionsTransportTriggered events - higher-layerclientserverVVendor-extensible fieldsVENT_<strong>DFS</strong>R_SERVICE_RPC_LISTENER_ERRORVersioning80 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008


Version-specific behaviorVersionVectorDataXxs namespace81 / 81[<strong>MS</strong>-<strong><strong>DFS</strong>RH</strong>] – v20080207<strong>DFS</strong> <strong>Replication</strong> <strong>Helper</strong> <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2008 Microsoft Corporation.Release: Thursday, February 7, 2008

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!