4.1.3.2 Server Behavior of the IDL_DRSBind Method

The server returns an error if puuidClientDsa^ is set to the NULL GUID. Otherwise, the server retains the UUID passed as puuidClientDsa^ and the DRS_EXTENSIONS_INT structure passed as pextClient^, and associates them with the RPC context handle, phDrs, in an implementation-specific manner.

The server sets ppextServer to a DRS_EXTENSIONS_INT structure whose dwReplEpoch and ConfigObjGUID fields are initialized as described in the previous section (Client Behavior When Sending the IDL_DRSBind Request (section 4.1.3.1)), and whose other fields describe the server.<13> The server associates the information in ppextServer with the RPC context handle, phDrs, in an implementation-specific manner and then returns a DRS_HANDLE as the referent of phDrs.

The following tables specify the capability assertions made by a server that sets bits in the DRS_EXTENSIONS_INT structure returned from IDL_DRSBind. Each row of a table gives a request version (including both dwInVersion and the InfoLevel of IDL_DRSDomainControllerInfo and the InfoType of IDL_DRSGetReplInfo) and the DRS_EXTENSIONS_INT bit or bits that the server sets to indicate support for that request. For instance, every server supports a version 1 request to IDL_DRSReplicaSync, but a server does not support a version 5 request to IDL_DRSGetNCChanges unless it has set both the DRS_EXT_GETCHGREQ_V5 and DRS_EXT_RESTORE_USN_OPTIMIZATION bits. For AD LDS, the IDL_DRSDomainControllerInfo method is disabled regardless of the InfoLevel set by the bits.

A server supports version 4 and version 7 requests to IDL_DRSGetNCChanges only via the SMTP replication transport (see [MS-SRPL]). These cases are noted in the relevant table. A server supports all other requests only via the RPC transport.

IDL_DRSReplicaSync

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSGetNCChanges

Request version

DRS_EXTENSIONS_INT bit(s)

4

SMTP replication transport

5

DRS_EXT_GETCHGREQ_V5

DRS_EXT_RESTORE_USN_OPTIMIZATION

7

SMTP replication transport

8

DRS_EXT_GETCHGREQ_V8

DRS_EXT_RESTORE_USN_OPTIMIZATION

10

DRS_EXT_GETCHGREQ_V10

DRS_EXT_RESTORE_USN_OPTIMIZATION

IDL_DRSUpdateRefs

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSReplicaAdd

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

2

DRS_EXT_ASYNCREPL

IDL_DRSReplicaDel

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSReplicaModify

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSVerifyNames

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSGetMemberships

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSInterDomainMove

Request version

DRS_EXTENSIONS_INT bit(s)

2

DRS_EXT_MOVEREQ_V2

IDL_DRSGetNT4ChangeLog

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSCrackNames

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSWriteSPN

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DRSRemoveDsServer

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_REMOVEAPI

IDL_DRSRemoveDsDomain

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_REMOVEAPI

IDL_DRSDomainControllerInfo

Request version

DRS_EXTENSIONS_INT bit(s)

1

InfoLevel = 0x1

DRS_EXT_DCINFO_V1

1

InfoLevel = 0x2

DRS_EXT_DCINFO_V2

1

InfoLevel = 0x3

DRS_EXT_LH_BETA2

1

InfoLevel = 0xffffffff

DRS_EXT_DCINFO_VFFFFFFFF

IDL_DRSAddEntry

Request version

DRS_EXTENSIONS_INT bit(s)

2

DRS_EXT_ADDENTRY_V2

3

DRS_EXT_NONDOMAIN_NCS

IDL_DRSExecuteKCC

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_KCC_EXECUTE

IDL_DRSGetReplInfo

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

2

DRS_EXT_GETCHGREQ_V8

2

InfoType = [3..5]

DRS_EXT_POST_BETA3

2

InfoType = 6

DRS_EXT_GETCHGREQ_V8

2

InfoType = [7..10]

DRS_EXT_GETCHGREPLY_V6

IDL_DRSAddSidHistory

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_ADD_SID_HISTORY

IDL_DRSGetMemberships2

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_GETMEMBERSHIPS2

IDL_DRSReplicaVerifyObjects

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_WHISTLER_BETA3

IDL_DRSGetObjectExistence

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_WHISTLER_BETA3

IDL_DRSQuerySitesByCost

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_WHISTLER_BETA3

IDL_DRSInitDemotion

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_ADAM

IDL_DRSReplicaDemotion

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_ADAM

IDL_DRSFinishDemotion

Request version

DRS_EXTENSIONS_INT bit(s)

1

DRS_EXT_ADAM

IDL_DSAPrepareScript

Request version

DRS_EXTENSIONS_INT bit(s)

1

-

IDL_DSAExecuteScript

Request version

DRS_EXTENSIONS_INT bit(s)

1

-