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.
107 lines
2.4 KiB
107 lines
2.4 KiB
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) 2001, Microsoft Corporation
|
|
//
|
|
// File: DfsDomainInformation.hxx
|
|
//
|
|
// Contents: the Dfs domain info class
|
|
//
|
|
// Classes: DfsDomainInformation
|
|
//
|
|
// History: apr. 8 2001, Author: udayh
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
#ifndef __DFS_DOMAIN_INFORMATION__
|
|
#define __DFS_DOMAIN_INFORMATION__
|
|
|
|
#include "DfsGeneric.hxx"
|
|
#include "Align.h"
|
|
#include "dsgetdc.h"
|
|
#include "DfsTrustedDomain.hxx"
|
|
#include "DfsReferralData.h"
|
|
|
|
|
|
class DfsDomainInformation: public DfsGeneric
|
|
{
|
|
|
|
private:
|
|
DfsTrustedDomain *_pTrustedDomains;
|
|
ULONG _DomainCount;
|
|
BOOL _fCritInit;
|
|
PCRITICAL_SECTION _pLock;
|
|
ULONG _DomainReferralLength;
|
|
ULONG _SkippedDomainCount;
|
|
public:
|
|
|
|
|
|
DfsDomainInformation( DFSSTATUS *pStatus, DFSSTATUS *pXforestStatus);
|
|
|
|
virtual
|
|
~DfsDomainInformation()
|
|
{
|
|
if (_pTrustedDomains != NULL)
|
|
{
|
|
delete [] _pTrustedDomains;
|
|
}
|
|
if (_pLock != NULL)
|
|
{
|
|
if(_fCritInit)
|
|
{
|
|
DeleteCriticalSection(_pLock);
|
|
}
|
|
|
|
delete _pLock;
|
|
}
|
|
}
|
|
|
|
#if defined (TESTING)
|
|
ULONG
|
|
GetDomainCount()
|
|
{
|
|
return _DomainCount;
|
|
|
|
}
|
|
|
|
DfsTrustedDomain *
|
|
GetTrustedDomainForIndex(
|
|
ULONG Index )
|
|
{
|
|
return (&_pTrustedDomains[Index]);
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
DFSSTATUS
|
|
GetDomainDcReferralInfo(
|
|
PUNICODE_STRING pDomain,
|
|
DfsReferralData **ppReferralData,
|
|
PBOOLEAN pCacheHit )
|
|
{
|
|
DFSSTATUS Status = ERROR_NOT_FOUND;
|
|
ULONG Index;
|
|
|
|
for (Index = 0; Index < _DomainCount; Index++)
|
|
{
|
|
if ((&_pTrustedDomains[Index])->IsMatchingDomainName( pDomain) == TRUE)
|
|
{
|
|
Status = (&_pTrustedDomains[Index])->GetDcReferralData( ppReferralData,
|
|
pCacheHit );
|
|
break;
|
|
}
|
|
}
|
|
return Status;
|
|
}
|
|
|
|
DFSSTATUS
|
|
GenerateDomainReferral(
|
|
REFERRAL_HEADER ** ppReferralHeader);
|
|
|
|
VOID
|
|
PurgeDCReferrals();
|
|
};
|
|
|
|
#endif // __DFS_DOMAIN_INFORMATION__
|