220.127.116.11.6 NetrLogonGetTimeServiceParentDomain (Opnum 35)
The NetrLogonGetTimeServiceParentDomain method<307> returns the name of the parent domain of the current domain. The domain name returned by this method is suitable for passing into the NetrLogonGetTrustRid method and NetrLogonComputeClientDigest method.
NET_API_STATUS NetrLogonGetTimeServiceParentDomain( [in, unique, string] LOGONSRV_HANDLE ServerName, [out, string] wchar_t** DomainName, [out] int* PdcSameSite );
DomainName: A pointer to the buffer that receives the null-terminated Unicode string that contains the name of the parent domain. If the DNS domain name is available, it is returned through this parameter; otherwise, the NetBIOS domain name is returned.
PdcSameSite: A pointer to the integer that receives the value that indicates whether the PDC for the domain DomainName is in the same site as the server specified by ServerName. This value SHOULD<308> be ignored if ServerName is not a domain controller.
The PDC is not in the same site as the server specified by ServerName.
The PDC is in the same site as the server specified by ServerName.
Return Values: The method returns 0x00000000 on success; otherwise, it returns a nonzero error code.
The server SHOULD<309> return ERROR_ACCESS DENIED if the caller is not local.
If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
The domain name returned MUST be determined according to the following rules:
On a non-DC machine, the returned domain name is the name of the domain of which the ServerName is a member. If ServerName is not valid, then the server MUST return ERROR_INVALID_COMPUTERNAME.
On a DC that is at the root of the forest, rootDomainNamingContext ([MS-ADTS] section 18.104.22.168.2.16) is equal to defaultNamingContext ([MS-ADTS] section 22.214.171.124.2.3). In this case, ERROR_NO_SUCH_DOMAIN is returned.
On a DC that is at the root of a domain tree in the forest, the name of a trusted domain that is also at the root of a domain tree in the forest is returned.
On any other DC, the name of the domain that is directly the parent domain is returned.
The domain's information MUST be retrieved from an implementation-specific directory. Based on this retrieved information, if the domain has a DNS domain name, it MUST be returned; otherwise, the NetBIOS domain name MUST be returned. This behavior is functionally equivalent to locally invoking LsarQueryTrustedDomainInfo ([MS-LSAD] section 126.96.36.199.2) for the domain, where TrustedDomainSid is the domain SID corresponding to the appropriate domain name retrieved from a cached list, and InformationClass is TrustedDomainInformationEx (policy handle is not needed locally), to return the TrustedDomainInformationEx.Name string (DNS name) if it is present or TrustedDomainInformationEx.Flat Name string (NetBIOS name) otherwise.
The PdcSameSite returned MUST be determined according to the following rules:
On a non-DC machine, the value of PdcSameSite is set to TRUE.
On a DC machine, the server SHOULD determine the PDC as specified in [MS-ADTS] section 188.8.131.52.11. Then the server SHOULD determine the sites of both the server and PDC as described in [MS-ADTS] section 184.108.40.206.5.29. The server MUST compare the PDC site with its own site and if the two match, the PdcSameSite output parameter MUST be set to TRUE; otherwise, it MUST be set to FALSE.