/*++ Copyright (c) 1987-1991 Microsoft Corporation Module Name: nlrepl.h Abstract: Prototypes of the database replication functions called either from LSA OR SAM. Author: Madan Appiah Environment: User mode only. Contains NT-specific code. Requires ANSI C extensions: slash-slash comments, long external names. Revision History: 14-Apr-1992 (madana) Created. --*/ #ifndef _NLREPL_H_ #define _NLREPL_H_ // // Don't require the DS to include every .h in the world // #include #include #ifndef _AVOID_REPL_API NTSTATUS I_NetNotifyDelta ( IN SECURITY_DB_TYPE DbType, IN LARGE_INTEGER ModificationCount, IN SECURITY_DB_DELTA_TYPE DeltaType, IN SECURITY_DB_OBJECT_TYPE ObjectType, IN ULONG ObjectRid, IN PSID ObjectSid, IN PUNICODE_STRING ObjectName, IN DWORD ReplicationImmediately, IN PSAM_DELTA_DATA DeltaData ); NTSTATUS I_NetNotifyRole( IN POLICY_LSA_SERVER_ROLE Role ); NTSTATUS I_NetNotifyMachineAccount ( IN ULONG ObjectRid, IN PSID DomainSid, IN ULONG OldUserAccountControl, IN ULONG NewUserAccountControl, IN PUNICODE_STRING ObjectName ); NTSTATUS I_NetNotifyTrustedDomain ( IN PSID HostedDomainSid, IN PSID TrustedDomainSid, IN BOOLEAN IsDeletion ); typedef enum { // // Indicates that a subnet object has been added, deleted, renamed, or // the site containing the subnet has changed. // NlSubnetObjectChanged, // // Indicates that a site object has been added, deleted or renamed. // NlSiteObjectChanged, // // Indicates that the site this DC is in has changed. // NlSiteChanged, // // Indicates that the org tree changed // NlOrgChanged, // // Indicate that the DC demotion is in progress // NlDcDemotionInProgress, // // Indicate that the DC demotion is completed // NlDcDemotionCompleted, // // Indicate that NDNC info has changed // NlNdncChanged, // // Indicate that DnsRootAlias has changed // NlDnsRootAliasChanged } NL_DS_CHANGE_TYPE, *PNL_DS_CHANGE_TYPE; NTSTATUS I_NetNotifyDsChange( IN NL_DS_CHANGE_TYPE DsChangeType ); NTSTATUS I_NetLogonGetSerialNumber ( IN SECURITY_DB_TYPE DbType, IN PSID DomainSid, OUT PLARGE_INTEGER SerialNumber ); NTSTATUS I_NetLogonReadChangeLog( IN PVOID InContext, IN ULONG InContextSize, IN ULONG ChangeBufferSize, OUT PVOID *ChangeBuffer, OUT PULONG BytesRead, OUT PVOID *OutContext, OUT PULONG OutContextSize ); NTSTATUS I_NetLogonNewChangeLog( OUT HANDLE *ChangeLogHandle ); NTSTATUS I_NetLogonAppendChangeLog( IN HANDLE ChangeLogHandle, IN PVOID ChangeBuffer, IN ULONG ChangeBufferSize ); NTSTATUS I_NetLogonCloseChangeLog( IN HANDLE ChangeLogHandle, IN BOOLEAN Commit ); NTSTATUS I_NetLogonSendToSamOnPdc( IN LPWSTR DomainName, IN LPBYTE OpaqueBuffer, IN ULONG OpaqueBufferSize ); #endif // _AVOID_REPL_API NET_API_STATUS I_DsGetDcCache( IN LPCWSTR NetbiosDomainName OPTIONAL, IN LPCWSTR DnsDomainName OPTIONAL, OUT PBOOLEAN InNt4Domain, OUT LPDWORD InNt4DomainTime ); NET_API_STATUS DsrGetDcName( IN LPWSTR ComputerName OPTIONAL, IN LPWSTR DomainName OPTIONAL, IN GUID *DomainGuid OPTIONAL, IN GUID *SiteGuid OPTIONAL, IN ULONG Flags, OUT PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo ); NET_API_STATUS DsrGetDcNameEx2( IN LPWSTR ComputerName OPTIONAL, IN LPWSTR AccountName OPTIONAL, IN ULONG AllowableAccountControlBits, IN LPWSTR DomainName OPTIONAL, IN GUID *DomainGuid OPTIONAL, IN LPWSTR SiteName OPTIONAL, IN ULONG Flags, OUT PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo ); NTSTATUS I_NetLogonSetServiceBits( IN DWORD ServiceBitsOfInterest, IN DWORD ServiceBits ); NTSTATUS I_NetLogonLdapLookup( IN PVOID Filter, OUT PVOID *Response, OUT PULONG ResponseSize ); NTSTATUS I_NetLogonLdapLookupEx( IN PVOID Filter, IN PVOID SockAddr, OUT PVOID *Response, OUT PULONG ResponseSize ); NET_API_STATUS I_NetLogonGetIpAddresses( OUT PULONG IpAddressCount, OUT LPBYTE *IpAddresses ); NTSTATUS I_NetLogonGetDirectDomain( IN LPWSTR HostedDomainName, IN LPWSTR TrustedDomainName, OUT LPWSTR *DirectDomainName ); // // OS verion number from I_NetLogonGetAuthDataEx // typedef enum _NL_OS_VERSION { NlNt35_or_older = 1, NlNt351, NlNt40, NlWin2000, // NT 5.0 NlWhistler // NT 5.1 } NL_OS_VERSION, *PNL_OS_VERSION; // // Flags to I_NetLogonGetAuthDataEx // #define NL_DIRECT_TRUST_REQUIRED 0x01 #define NL_RETURN_CLOSEST_HOP 0x02 #define NL_ROLE_PRIMARY_OK 0x04 #define NL_REQUIRE_DOMAIN_IN_FOREST 0x08 NTSTATUS I_NetLogonGetAuthDataEx( IN LPWSTR HostedDomainName, IN LPWSTR TrustedDomainName, IN BOOLEAN ResetChannel, IN ULONG Flags, OUT LPWSTR *ServerName, OUT PNL_OS_VERSION ServerOsVersion, OUT LPWSTR *ServerPrincipleName, OUT PVOID *ClientContext OPTIONAL, OUT PULONG AuthnLevel ); NTSTATUS I_NetNotifyNtdsDsaDeletion ( IN LPWSTR DnsDomainName OPTIONAL, IN GUID *DomainGuid OPTIONAL, IN GUID *DsaGuid, IN LPWSTR DnsHostName ); VOID I_NetLogonFree( IN PVOID Buffer ); NTSTATUS I_NetLogonMixedDomain( OUT PBOOL MixedMode ); #ifdef _WINSOCK2API_ NET_API_STATUS I_NetLogonAddressToSiteName( IN PSOCKET_ADDRESS SocketAddress, OUT LPWSTR *SiteName ); #endif #endif // _NLREPL_H_