303 lines
5.6 KiB
C
303 lines
5.6 KiB
C
/*++
|
|
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 <lmcons.h>
|
|
#include <dsgetdc.h>
|
|
|
|
#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_
|