Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1639 lines
28 KiB

#include "dspch.h"
#pragma hdrstop
#include <ntdsa.h>
#include <wxlpc.h>
#include <drs.h>
#include <scache.h>
#include <dbglobal.h>
#include <mdglobal.h>
#include <mappings.h>
#include <dsaapi.h>
#include <dsevent.h>
//
// Notes on stub behavior
//
//
// Whenever possible, STATUS_PROCEDURE_NOT_FOUHD, ERROR_PROC_NOT_FOUND, NULL,
// or FALSE is returned.
//
//
// Some of the functions below require the caller to look at an OUT
// parameter to determine whether the results of the function (in addition
// or independent of the return value). Since these are private functions
// there is no need in shipping code to check for the validity of the OUT
// parameter (typically a pointer). These values should always be present
// in RTM versions.
//
//
// Some functions don't return a status and were designed to never fail
// (for example, functions that effectively do a table lookup). For these
// functions there is no reasonable return value. However, this is not
// a practical issue since these API's would only be called after the DS
// initialized which means that API would have already been "snapped" in via
// GetProcAddress().
//
// Of course, it is possible to rewrite these routines to return errors,
// however, as above, this will have no practical effect.
//
#define NTDSA_STUB_NO_REASONABLE_DEFAULT 0xFFFFFFFF
//
// Most Dir functions return 0 on success and simply a non zero on failure.
// The error space can be from the DB layer or sometimes from the Jet layer.
// To extract the real error, the caller looks at an OUT parameter. In
// these cases we return a standard failure value.
//
#define NTDSA_STUB_GENERAL_FAILURE (!0)
static
NTSTATUS
DsWaitUntilDelayedStartupIsDone(void)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
void
DsInitializeCritSecs(void)
{
}
static
BOOL
DsIsBeingBackSynced()
{
return FALSE;
}
static
ULONG
DirBind (
BINDARG * pBindArg, /* binding credentials */
BINDRES ** ppBindRes /* binding results */
)
{
*ppBindRes = NULL;
return systemError;
}
static
ULONG
DirUnBind (
void
)
{
return systemError;
}
static
ULONG
DirCompare(
COMPAREARG * pCompareArg, /* Compare argument */
COMPARERES ** ppCompareRes
)
{
*ppCompareRes = NULL;
return systemError;
}
static
ULONG
DirList(
LISTARG FAR * pListArg,
LISTRES ** ppListRes
)
{
*ppListRes = NULL;
return systemError;
}
static
VOID
DirTransactControl(
DirTransactionOption option)
{
}
static
BOOL
DirPrepareForImpersonate (
DWORD hClient,
DWORD hServer,
void ** ppImpersonateData
)
{
return FALSE;
}
static
VOID
DirStopImpersonating (
DWORD hClient,
DWORD hServer,
void * pImpersonateData
)
{
}
static
ULONG
DirReplicaAdd(
IN DSNAME * pNC,
IN DSNAME * pSourceDsaDN, OPTIONAL
IN DSNAME * pTransportDN, OPTIONAL
IN LPWSTR pszSourceDsaAddress,
IN LPWSTR pszSourceDsaDnsDomainName, OPTIONAL
IN REPLTIMES * preptimesSync, OPTIONAL
IN ULONG ulOptions
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirReplicaModify(
DSNAME * pNC,
UUID * puuidSourceDRA,
UUID * puuidTransportObj,
LPWSTR pszSourceDRA,
REPLTIMES * prtSchedule,
ULONG ulReplicaFlags,
ULONG ulModifyFields,
ULONG ulOptions
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirReplicaDelete(
DSNAME *pNC,
LPWSTR pszSourceDRA,
ULONG ulOptions
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirReplicaSynchronize(
DSNAME *pNC,
LPWSTR pszSourceDRA,
UUID * puuidSourceDRA,
ULONG ulOptions
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirReplicaReferenceUpdate(
DSNAME *pNC,
LPWSTR pszReferencedDRA,
UUID * puuidReferencedDRA,
ULONG ulOptions
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirReplicaGetDemoteTarget(
IN DSNAME * pNC,
IN OUT DRS_DEMOTE_TARGET_SEARCH_INFO * pDTSInfo,
OUT LPWSTR * ppszDemoteTargetDNSName,
OUT DSNAME ** ppDemoteTargetDSADN
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirReplicaDemote(
IN DSNAME * pNC,
IN LPWSTR pszOtherDSADNSName,
IN DSNAME * pOtherDSADN,
IN ULONG ulOptions
)
{
return ERROR_PROC_NOT_FOUND;
}
static
DWORD
DirReplicaSetCredentials(
IN HANDLE ClientToken,
IN WCHAR *User,
IN WCHAR *Domain,
IN WCHAR *Password,
IN ULONG PasswordLength // number of characters NOT including terminating
// NULL
)
{
return ERROR_PROC_NOT_FOUND;
}
static
void *
THReAlloc(
void *p,
DWORD size
)
{
return NULL;
}
static
BOOL THVerifyCount(
unsigned count
) /* Returns TRUE if thread has exactly */
{
return FALSE;
}
static
LPSTR
THGetErrorString()
{
return NULL;
}
static
VOID
SampSetLsa(
BOOLEAN DsaFlag
)
{
}
static
ULONG
SampGetSamAttrIdByName(
SAMP_OBJECT_TYPE ObjectType,
UNICODE_STRING AttributeIdentifier)
{
return DS_ATTRIBUTE_UNKNOWN;
}
static
BOOLEAN
SampDoesDomainExist(
IN PDSNAME pDN
)
{
return FALSE;
}
static
NTSTATUS
SampDsControl(
IN PSAMP_DS_CTRL_OP RequestedOp,
OUT PVOID *Result
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
BOOL
DoLogEvent(DWORD fileNo, MessageId midCategory, ULONG ulSeverity,
MessageId midEvent, int iIncludeName,
char *arg1, char *arg2, char *arg3, char *arg4,
char *arg5, char *arg6, char *arg7, char *arg8,
DWORD cbData, VOID * pvData)
{
return FALSE;
}
static
VOID
DoLogEventAndTrace(PLOG_PARAM_BLOCK LogBlock)
{
}
static
BOOL
DoLogOverride(DWORD file, ULONG sev)
{
return FALSE;
}
static
void __fastcall
DoLogUnhandledError(unsigned long ulID, int iErr, int iIncludeName)
{
}
static
VOID
DsTraceEvent(
IN MessageId Event,
IN DWORD WmiEventType,
IN DWORD TraceGuid,
IN PEVENT_TRACE_HEADER TraceHeader,
IN DWORD ClientID,
IN PWCHAR Arg1,
IN PWCHAR Arg2,
IN PWCHAR Arg3,
IN PWCHAR Arg4,
IN PWCHAR Arg5,
IN PWCHAR Arg6,
IN PWCHAR Arg7,
IN PWCHAR Arg8
)
{
}
static
void
DoAssert( char *x,
DWORD y,
char *z )
{
}
static
void
DebPrint( USHORT a,
UCHAR *b,
CHAR *c,
unsigned d, ... )
{
}
USHORT
DebugTest( USHORT a,
CHAR *b )
{
return 0;
}
static
int
NameMatchedStringNameOnly(const DSNAME *pDN1, const DSNAME *pDN2)
{
return FALSE;
}
static
unsigned
NamePrefix(const DSNAME *pPrefix,
const DSNAME *pDN)
{
return FALSE;
}
static
unsigned
AttrTypeToKey(ATTRTYP attrtyp, WCHAR *pOutBuf)
{
return 0;
}
static
NTSTATUS
CrackSingleName(
DWORD formatOffered, // one of DS_NAME_FORMAT in ntdsapi.h
DWORD dwFlags, // DS_NAME_FLAG mask
WCHAR *pNameIn, // name to crack
DWORD formatDesired, // one of DS_NAME_FORMAT in ntdsapi.h
DWORD *pccDnsDomain, // char count of following argument
WCHAR *pDnsDomain, // buffer for DNS domain name
DWORD *pccNameOut, // char count of following argument
WCHAR *pNameOut, // buffer for formatted name
DWORD *pErr) // one of DS_NAME_ERROR in ntdsapi.h
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
unsigned
CountNameParts(
const DSNAME *pName,
unsigned *pCount
)
{
return 0;
}
static
DWORD
DSNAMEToHashKeyExternal(const DSNAME *pDN)
{
return 0;
}
static
CHAR*
DSNAMEToMappedStrExternal(const DSNAME *pDN)
{
return NULL;
}
static
DWORD
DSStrToHashKeyExternal(const WCHAR *pStr, int cchLen)
{
return 0;
}
static
CHAR *
DSStrToMappedStrExternal(const WCHAR *pStr, int cchMaxStr)
{
return NULL;
}
static
PDSNAME
GetConfigDsName(
IN PWCHAR wszParam
)
{
return NULL;
}
static
BOOL
MtxSame(UNALIGNED MTX_ADDR *pmtx1, UNALIGNED MTX_ADDR *pmtx2)
{
return FALSE;
}
static
void DbgPrintErrorInfo()
{
return;
}
static
NTSTATUS
GetConfigurationNamesList(
DWORD which,
DWORD dwFlags,
DWORD * pcbNames,
DSNAME ** padsNames)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
GetDnsRootAlias(
WCHAR * pDnsRootAlias,
WCHAR * pRootDnsRootAlias)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
VOID
DsaDisableUpdates(
VOID
)
{
}
static VOID
DsaEnableUpdates(
VOID
)
{
}
static VOID
DsaSetInstallCallback(
IN DSA_CALLBACK_STATUS_TYPE pfnUpdateStatus,
IN DSA_CALLBACK_ERROR_TYPE pfnErrorStatus,
IN DSA_CALLBACK_CANCEL_TYPE pfnCancelOperation,
IN HANDLE ClientToken
)
{
}
static LPWSTR
TransportAddrFromMtxAddr(
IN MTX_ADDR * pmtx
)
{
return NULL;
}
static
MTX_ADDR *
MtxAddrFromTransportAddr(
IN LPWSTR psz
)
{
return NULL;
}
static
LPWSTR
GuidBasedDNSNameFromDSName(
IN DSNAME * pDN
)
{
return NULL;
}
LPCWSTR
MapSpnServiceClass(WCHAR *a)
{
return NULL;
}
static
NTSTATUS
MatchCrossRefBySid(
IN PSID SidToMatch,
OUT PDSNAME XrefDsName OPTIONAL,
IN OUT PULONG XrefNameLen
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
MatchCrossRefByNetbiosName(
IN LPWSTR NetbiosName,
OUT PDSNAME XrefDsName OPTIONAL,
IN OUT PULONG XrefNameLen
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
MatchDomainDnByNetbiosName(
IN LPWSTR NetbiosName,
OUT PDSNAME DomainDsName OPTIONAL,
IN OUT PULONG DomainDsNameLen
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
MatchDomainDnByDnsName(
IN LPWSTR DnsName,
OUT PDSNAME DomainDsName OPTIONAL,
IN OUT PULONG DomainDsNameLen
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
FindNetbiosDomainName(
IN DSNAME* DomainDsName,
OUT LPWSTR NetbiosName OPTIONAL,
IN OUT PULONG NetbiosNameLen
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
DSNAME *
DsGetDefaultObjCategory(
IN ATTRTYP objClass
)
{
return NULL;
}
static BOOL
IsStringGuid(
WCHAR *pwszGuid,
GUID *pGuid
)
{
return FALSE;
}
static
VOID
DsFreeServersAndSitesForNetLogon(
SERVERSITEPAIR * paServerSites
)
{
}
static
NTSTATUS
DsGetServersAndSitesForNetLogon(
IN WCHAR * pNCDNS,
OUT SERVERSITEPAIR ** ppaRes
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
int
__cdecl
DsaExeStartRoutine(int argc, char *argv[])
{
return 0;
}
static
unsigned
AppendRDN(
DSNAME *pDNBase,
DSNAME *pDNNew,
ULONG ulBufSize,
WCHAR *pRDNVal,
ULONG RDNlen,
ATTRTYP AttId
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirAddEntry (
ADDARG * pAddArg,
ADDRES ** ppAddRes
)
{
*ppAddRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
NTSTATUS
DirErrorToNtStatus(
IN DWORD DirError,
IN COMMRES *CommonResult
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
DWORD
DirErrorToWinError(
IN DWORD DirError,
IN COMMRES *CommonResult
)
{
return ERROR_PROC_NOT_FOUND;
}
static
ULONG
DirFindEntry(
FINDARG *pFindArg,
FINDRES ** ppFindRes
)
{
*ppFindRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
DWORD
DirGetDomainHandle(
DSNAME *pDomainDN
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirModifyDN(
MODIFYDNARG * pModifyDNArg,
MODIFYDNRES ** ppModifyDNRes
)
{
*ppModifyDNRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirModifyEntry (
MODIFYARG * pModifyArg,
MODIFYRES ** ppModifyRes
)
{
*ppModifyRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirNotifyRegister(
SEARCHARG *pSearchArg,
NOTIFYARG *pNotifyArg,
NOTIFYRES **ppNotifyRes
)
{
*ppNotifyRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirNotifyUnRegister(
DWORD hServer,
NOTIFYRES **pNotifyRes
)
{
*pNotifyRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirOperationControl(
OPARG * pOpArg,
OPRES ** ppOpRes
)
{
*ppOpRes= NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirProtectEntry(
IN DSNAME *pObj
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirRead (
READARG FAR * pReadArg,
READRES ** ppReadRes
)
{
*ppReadRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirRemoveEntry (
REMOVEARG * pRemoveArg,
REMOVERES ** ppRemoveRes
)
{
*ppRemoveRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
DirSearch (
SEARCHARG * pSearchArg,
SEARCHRES ** ppSearchRes
)
{
*ppSearchRes = NULL;
return NTDSA_STUB_GENERAL_FAILURE;
}
static
NTSTATUS
DsChangeBootOptions(
WX_AUTH_TYPE BootOption,
ULONG Flags,
PVOID NewKey,
ULONG cbNewKey
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
BOOL
DsCheckConstraint(
IN ATTRTYP attID,
IN ATTRVAL *pAttVal,
IN BOOL fVerifyAsRDN
)
{
return FALSE;
}
static
WX_AUTH_TYPE
DsGetBootOptions(
VOID
)
{
return WxNone;
}
static
NTSTATUS
DsInitialize(
ULONG Flags,
IN PDS_INSTALL_PARAM InParams OPTIONAL,
OUT PDS_INSTALL_RESULT OutParams OPTIONAL
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
DsPrepareUninitialize(
VOID
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
DsUninitialize(
BOOL fExternalOnly
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
ENTINF *
GCVerifyCacheLookup(
DSNAME *pDSName
)
{
return NULL;
}
static
DWORD
GetConfigParam(
char * parameter,
void * value,
DWORD dwSize
)
{
return ERROR_PROC_NOT_FOUND;
}
static
DWORD
GetConfigParamAllocW(
IN PWCHAR parameter,
OUT PVOID *value,
OUT PDWORD pdwSize
)
{
return ERROR_PROC_NOT_FOUND;
}
static
DWORD
GetConfigParamW(
WCHAR * parameter,
void * value,
DWORD dwSize
)
{
return ERROR_PROC_NOT_FOUND;
}
static
NTSTATUS
GetConfigurationInfo(
DWORD which,
DWORD *pcbSize,
VOID *pBuff)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
GetConfigurationName(
DWORD which,
DWORD *pcbName,
DSNAME *pName
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
unsigned
GetRDNInfoExternal(
const DSNAME *pDN,
WCHAR *pRDNVal,
ULONG *pRDNlen,
ATTRTYP *pRDNtype
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
DWORD
ImpersonateAnyClient(
void
)
{
return ERROR_PROC_NOT_FOUND;
}
static
VOID
InitCommarg(
COMMARG *pCommArg
)
{
return;
}
static
int
NameMatched(
const DSNAME *pDN1,
const DSNAME *pDN2
)
{
return !0;
}
static
unsigned
QuoteRDNValue(
const WCHAR * pVal,
unsigned ccVal,
WCHAR * pQuote,
unsigned ccQuoteBufMax
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
BOOLEAN
SampAddLoopbackTask(
IN PVOID NotifyInfo
)
{
return FALSE;
}
static
BOOL
SampAmIGC()
{
return FALSE;
}
static
NTSTATUS
SampComputeGroupType(
ULONG ObjectClass,
ULONG GroupType,
NT4_GROUP_TYPE *pNT4GroupType,
NT5_GROUP_TYPE *pNT5GroupType,
BOOLEAN *pSecurityEnabled
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
ULONG
SampDeriveMostBasicDsClass(
ULONG DerivedClass
)
{
return DerivedClass;
}
static
ULONG
SampDsAttrFromSamAttr(
SAMP_OBJECT_TYPE ObjectType,
ULONG SamAttr
)
{
return NTDSA_STUB_NO_REASONABLE_DEFAULT;
}
static
ULONG
SampDsClassFromSamObjectType(
ULONG SamObjectType
)
{
return NTDSA_STUB_NO_REASONABLE_DEFAULT;
}
static
BOOL
SampExistsDsLoopback(
DSNAME **ppLoopbackName
)
{
return FALSE;
}
static
BOOL
SampExistsDsTransaction()
{
return FALSE;
}
static
NTSTATUS
SampGCLookupNames(
IN ULONG cNames,
IN UNICODE_STRING *rNames,
OUT ENTINF **rEntInf
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampGCLookupSids(
IN ULONG cSid,
IN PSID *rpSid,
OUT PDS_NAME_RESULTW *Results
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampGetAccountCounts(
DSNAME * DomainObjectName,
BOOLEAN GetApproximateCount,
int * UserCount,
int * GroupCount,
int * AliasCount
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampGetClassAttribute(
IN ULONG ClassId,
IN ULONG Attribute,
OUT PULONG attLen,
OUT PVOID pattVal
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampGetDisplayEnumerationIndex (
IN DSNAME *DomainName,
IN DOMAIN_DISPLAY_INFORMATION DisplayInformation,
IN PRPC_UNICODE_STRING Prefix,
OUT PULONG Index,
OUT PRESTART *RestartToReturn
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
ULONG
SampGetDsAttrIdByName(
UNICODE_STRING AttributeIdentifier
)
{
return NTDSA_STUB_NO_REASONABLE_DEFAULT;
}
static
VOID
SampGetEnterpriseSidList(
IN PULONG pcSids,
IN OPTIONAL PSID * rgSids
)
{
*pcSids = 0;
if (rgSids) {
*rgSids = NULL;
}
return;
}
static
NTSTATUS
SampGetGroupsForToken(
IN DSNAME * pObjName,
IN ULONG Flags,
OUT ULONG *pcSids,
OUT PSID **prpSids
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
VOID
SampGetLoopbackObjectClassId(
PULONG ClassId
)
{
*ClassId = NTDSA_STUB_NO_REASONABLE_DEFAULT;
return;
}
static
NTSTATUS
SampGetMemberships(
IN PDSNAME *rgObjNames,
IN ULONG cObjNames,
IN OPTIONAL DSNAME *pLimitingDomain,
IN REVERSE_MEMBERSHIP_OPERATION_TYPE OperationType,
OUT ULONG *pcDsNames,
OUT PDSNAME **prpDsNames,
OUT PULONG *Attributes OPTIONAL,
OUT PULONG pcSidHistory OPTIONAL,
OUT PSID **rgSidHistory OPTIONAL
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampGetQDIRestart(
IN PDSNAME DomainName,
IN DOMAIN_DISPLAY_INFORMATION DisplayInformation,
IN ULONG LastObjectDNT,
OUT PRESTART *ppRestart
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampGetServerRoleFromFSMO(
DOMAIN_SERVER_ROLE *ServerRole
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
BOOLEAN
SampIsSecureLdapConnection(
VOID
)
{
return FALSE;
}
static
BOOL
SampIsWriteLockHeldByDs()
{
return FALSE;
}
static
NTSTATUS
SampMaybeBeginDsTransaction(
SAMP_DS_TRANSACTION_CONTROL ReadOrWrite
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampMaybeEndDsTransaction(
SAMP_DS_TRANSACTION_CONTROL CommitOrAbort
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
NTSTATUS
SampNetlogonPing(
IN ULONG DomainHandle,
IN PUNICODE_STRING AccountName,
OUT PBOOLEAN AccountExists,
OUT PULONG UserAccountControl
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
ULONG
SampSamAttrFromDsAttr(
SAMP_OBJECT_TYPE ObjectType,
ULONG DsAttr
)
{
return NTDSA_STUB_NO_REASONABLE_DEFAULT;
}
static
ULONG
SampSamObjectTypeFromDsClass(
ULONG DsClass
)
{
return NTDSA_STUB_NO_REASONABLE_DEFAULT;
}
static
VOID
SampSetDsa(
BOOLEAN DsaFlag
)
{
return;
}
static
NTSTATUS
SampSetIndexRanges(
ULONG IndexTypeToUse,
ULONG LowLimitLength1,
PVOID LowLimit1,
ULONG LowLimitLength2,
PVOID LowLimit2,
ULONG HighLimitLength1,
PVOID HighLimit1,
ULONG HighLimitLength2,
PVOID HighLimit2,
BOOL RootOfSearchIsNcHead
)
{
return STATUS_PROCEDURE_NOT_FOUND;
}
static
VOID
SampSetSam(
IN BOOLEAN fSAM
)
{
return;
}
static
VOID
SampSignalStart(
VOID
)
{
return;
}
static
ULONG
SampVerifySids(
ULONG cSid,
PSID *rpSid,
DSNAME ***prpDSName
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
void *
THAlloc(
DWORD size
)
{
return NULL;
}
static
VOID
THClearErrors()
{
return;
}
static
ULONG
THCreate(
DWORD x
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
ULONG
THDestroy(
void
)
{
return NTDSA_STUB_GENERAL_FAILURE;
}
static
void
THFree(
void *buff
)
{
return;
}
static
BOOL
THQuery(
void
)
{
return FALSE;
}
static
VOID
THRestore(
PVOID x
)
{
return;
}
static
PVOID
THSave()
{
return NULL;
}
static
DWORD
TrimDSNameBy(
DSNAME *pDNSrc,
ULONG cava,
DSNAME *pDNDst
)
{
return 1;
}
static
VOID
UnImpersonateAnyClient(
void
)
{
return;
}
static
VOID
UpdateDSPerfStats(
IN DWORD dwStat,
IN DWORD dwOperation,
IN DWORD dwChange
)
{
return;
}
static
BOOL
IsMangledRDNExternal(
WCHAR * pszRDN,
ULONG cchRDN,
PULONG pcchUnMangled OPTIONAL
)
{
return FALSE;
}
static
ULONG
DBDsReplBackupPrepare()
{
return 0;
}
static
DWORD DsUpdateOnPDC(BOOL fRootDomain)
{
return ERROR_PROC_NOT_FOUND;
}
//
// !! WARNING !! The entries below must be in alphabetical order, and are CASE SENSITIVE (eg lower case comes last!)
//
DEFINE_PROCNAME_ENTRIES(ntdsa)
{
DLPENTRY(AppendRDN)
DLPENTRY(AttrTypeToKey)
DLPENTRY(CountNameParts)
DLPENTRY(CrackSingleName)
DLPENTRY(DBDsReplBackupPrepare)
DLPENTRY(DSNAMEToHashKeyExternal)
DLPENTRY(DSNAMEToMappedStrExternal)
DLPENTRY(DSStrToHashKeyExternal)
DLPENTRY(DSStrToMappedStrExternal)
DLPENTRY(DbgPrintErrorInfo)
DLPENTRY(DebPrint)
DLPENTRY(DebugTest)
DLPENTRY(DirAddEntry)
DLPENTRY(DirBind)
DLPENTRY(DirCompare)
DLPENTRY(DirErrorToNtStatus)
DLPENTRY(DirErrorToWinError)
DLPENTRY(DirFindEntry)
DLPENTRY(DirGetDomainHandle)
DLPENTRY(DirList)
DLPENTRY(DirModifyDN)
DLPENTRY(DirModifyEntry)
DLPENTRY(DirNotifyRegister)
DLPENTRY(DirNotifyUnRegister)
DLPENTRY(DirOperationControl)
DLPENTRY(DirPrepareForImpersonate)
DLPENTRY(DirProtectEntry)
DLPENTRY(DirRead)
DLPENTRY(DirRemoveEntry)
DLPENTRY(DirReplicaAdd)
DLPENTRY(DirReplicaDelete)
DLPENTRY(DirReplicaDemote)
DLPENTRY(DirReplicaGetDemoteTarget)
DLPENTRY(DirReplicaModify)
DLPENTRY(DirReplicaReferenceUpdate)
DLPENTRY(DirReplicaSetCredentials)
DLPENTRY(DirReplicaSynchronize)
DLPENTRY(DirSearch)
DLPENTRY(DirStopImpersonating)
DLPENTRY(DirTransactControl)
DLPENTRY(DirUnBind)
DLPENTRY(DoAssert)
DLPENTRY(DoLogEvent)
DLPENTRY(DoLogEventAndTrace)
DLPENTRY(DoLogOverride)
DLPENTRY(DoLogUnhandledError)
DLPENTRY(DsChangeBootOptions)
DLPENTRY(DsCheckConstraint)
DLPENTRY(DsFreeServersAndSitesForNetLogon)
DLPENTRY(DsGetBootOptions)
DLPENTRY(DsGetDefaultObjCategory)
DLPENTRY(DsGetServersAndSitesForNetLogon)
DLPENTRY(DsInitialize)
DLPENTRY(DsInitializeCritSecs)
DLPENTRY(DsIsBeingBackSynced)
DLPENTRY(DsPrepareUninitialize)
DLPENTRY(DsTraceEvent)
DLPENTRY(DsUninitialize)
DLPENTRY(DsUpdateOnPDC)
DLPENTRY(DsWaitUntilDelayedStartupIsDone)
DLPENTRY(DsaDisableUpdates)
DLPENTRY(DsaEnableUpdates)
DLPENTRY(DsaExeStartRoutine)
DLPENTRY(DsaSetInstallCallback)
DLPENTRY(FindNetbiosDomainName)
DLPENTRY(GCVerifyCacheLookup)
DLPENTRY(GetConfigDsName)
DLPENTRY(GetConfigParam)
DLPENTRY(GetConfigParamAllocW)
DLPENTRY(GetConfigParamW)
DLPENTRY(GetConfigurationInfo)
DLPENTRY(GetConfigurationName)
DLPENTRY(GetConfigurationNamesList)
DLPENTRY(GetDnsRootAlias)
DLPENTRY(GetRDNInfoExternal)
DLPENTRY(GuidBasedDNSNameFromDSName)
DLPENTRY(ImpersonateAnyClient)
DLPENTRY(InitCommarg)
DLPENTRY(IsMangledRDNExternal)
DLPENTRY(IsStringGuid)
DLPENTRY(MapSpnServiceClass)
DLPENTRY(MatchCrossRefByNetbiosName)
DLPENTRY(MatchCrossRefBySid)
DLPENTRY(MatchDomainDnByDnsName)
DLPENTRY(MatchDomainDnByNetbiosName)
DLPENTRY(MtxAddrFromTransportAddr)
DLPENTRY(MtxSame)
DLPENTRY(NameMatched)
DLPENTRY(NameMatchedStringNameOnly)
DLPENTRY(NamePrefix)
DLPENTRY(QuoteRDNValue)
DLPENTRY(SampAddLoopbackTask)
DLPENTRY(SampAmIGC)
DLPENTRY(SampComputeGroupType)
DLPENTRY(SampDeriveMostBasicDsClass)
DLPENTRY(SampDoesDomainExist)
DLPENTRY(SampDsAttrFromSamAttr)
DLPENTRY(SampDsClassFromSamObjectType)
DLPENTRY(SampDsControl)
DLPENTRY(SampExistsDsLoopback)
DLPENTRY(SampExistsDsTransaction)
DLPENTRY(SampGCLookupNames)
DLPENTRY(SampGCLookupSids)
DLPENTRY(SampGetAccountCounts)
DLPENTRY(SampGetClassAttribute)
DLPENTRY(SampGetDisplayEnumerationIndex)
DLPENTRY(SampGetDsAttrIdByName)
DLPENTRY(SampGetEnterpriseSidList)
DLPENTRY(SampGetGroupsForToken)
DLPENTRY(SampGetLoopbackObjectClassId)
DLPENTRY(SampGetMemberships)
DLPENTRY(SampGetQDIRestart)
DLPENTRY(SampGetSamAttrIdByName)
DLPENTRY(SampGetServerRoleFromFSMO)
DLPENTRY(SampIsSecureLdapConnection)
DLPENTRY(SampIsWriteLockHeldByDs)
DLPENTRY(SampMaybeBeginDsTransaction)
DLPENTRY(SampMaybeEndDsTransaction)
DLPENTRY(SampNetlogonPing)
DLPENTRY(SampSamAttrFromDsAttr)
DLPENTRY(SampSamObjectTypeFromDsClass)
DLPENTRY(SampSetDsa)
DLPENTRY(SampSetIndexRanges)
DLPENTRY(SampSetLsa)
DLPENTRY(SampSetSam)
DLPENTRY(SampSignalStart)
DLPENTRY(SampVerifySids)
DLPENTRY(THAlloc)
DLPENTRY(THClearErrors)
DLPENTRY(THCreate)
DLPENTRY(THDestroy)
DLPENTRY(THFree)
DLPENTRY(THGetErrorString)
DLPENTRY(THQuery)
DLPENTRY(THReAlloc)
DLPENTRY(THRestore)
DLPENTRY(THSave)
DLPENTRY(THVerifyCount)
DLPENTRY(TransportAddrFromMtxAddr)
DLPENTRY(TrimDSNameBy)
DLPENTRY(UnImpersonateAnyClient)
DLPENTRY(UpdateDSPerfStats)
};
DEFINE_PROCNAME_MAP(ntdsa)