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.
 
 
 
 
 
 

176 lines
5.9 KiB

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
dsp.h
Abstract:
Private macros/definitions/prototypes for implementing a portion of the LSA store
in the DS
Author:
Mac McLain (MacM) Jan 17, 1997
Environment:
User Mode
Revision History:
--*/
#ifndef __DSATTRS_H__
#define __DSATTRS_H__
typedef enum _LSAPDS_DS_CLASSES {
LsapDsClassXRef = 0,
LsapDsClassTrustedDomain,
LsapDsClassSecret,
LsapDsClassLast
} LSAPDS_DS_CLASSES, *PLSAPDS_DS_CLASSES;
typedef enum _LSAPDS_DS_ATTRS {
LsapDsAttrSamAccountName, // Machines sam account name
LsapDsAttrSid, // Sid attribute
LsapDsAttrSecDesc,
LsapDsAttrNamingContext, // Naming context
LsapDsAttrMachineRole, // Machine role
LsapDsAttrMachineDns, // Dns name on the machine object
LsapDsAttrInitialIncomingAuth,
LsapDsAttrInitialOutgoingAuth,
LsapDsAttrDnsRoot, // Domain Dns root
LsapDsAttrSamAccountControl, // SAM user account control fields
LsapDsAttrTrustPartner, // Trust partner for trusted domain objects
LsapDsAttrTrustPartnerFlat, // Flat name of partner for trusted domain objects
LsapDsAttrDefaultSecDesc, // Default object security descriptor
LsapDsAttrSpn, // Client SPN
LsapDsAttrLast
} LSAPDS_SRCH_ATTRS;
typedef enum _LSAPDS_DS_GUIDS {
LsapDsGuidTrust,
LsapDsGuidFlatName,
LsapDsGuidInitialIncoming,
LsapDsGuidInitialOutgoing,
LsapDsGuidSid,
LsapDsGuidAttributes,
LsapDsGuidIncoming,
LsapDsGuidOutgoing,
LsapDsGuidDirection,
LsapDsGuidPartner,
LsapDsGuidPosix,
LsapDsGuidType,
LsapDsGuidSecret,
LsapDsGuidCurrent,
LsapDsGuidCurrentTime,
LsapDsGuidPrevious,
LsapDsguidPreviousTime,
LsapDsGuidDelegatedTrustCreation
} LSAPDS_DS_GUIDS, *PLSAPDS_DS_GUIDS;
extern GUID LsapDsGuidList[ ];
extern ULONG LsapDsAttributeIds[LsapDsAttrLast];
extern ULONG LsapDsClassIds[LsapDsClassLast];
extern ATTR LsapDsClasses[LsapDsClassLast];
extern ATTR LsapDsAttrs[LsapDsAttrLast];
//
// Specially constructed multiple attributes that
//
extern ATTR LsapDsMachineDnsHost[ 1 ];
#define LsapDsMachineDnsHostCount ( sizeof( LsapDsMachineDnsHost ) / sizeof( ATTR ) )
#define LsapDsMachineClientSetAttrsCount 5
extern ATTR LsapDsMachineClientSetAttrs[ LsapDsMachineClientSetAttrsCount ];
extern ATTR LsapDsMachineSpn[ 1 ];
#define LsapDsMachineSpnCount ( sizeof( LsapDsMachineSpn ) / sizeof( ATTR ) )
extern ATTR LsapDsServerReferenceBl[ 1 ];
#define LsapDsServerReferenceCountBl ( sizeof( LsapDsServerReferenceBl ) / sizeof( ATTR ) )
#define LsapDsDomainNameSearchCount 2
extern ATTR LsapDsDomainNameSearch [ LsapDsDomainNameSearchCount ];
#define LsapDsDnsRootWellKnownObjectCount 1
extern ATTR LsapDsDnsRootWellKnownObject[ LsapDsDnsRootWellKnownObjectCount ];
extern ATTR LsapDsTDOQuotaAttributes[ 3 ];
#define LsapDsTDOQuotaAttributesCount ( sizeof( LsapDsTDOQuotaAttributes ) / sizeof( ATTR ) )
//
// Used for the trusted domain object fixup on reboot
//
#define LsapDsTrustedDomainFixupAttributeCount 11
extern ATTR LsapDsTrustedDomainFixupAttributes[ LsapDsTrustedDomainFixupAttributeCount ];
#define LsapDsTrustedDomainFixupXRefCount 3
extern ATTR LsapDsTrustedDomainFixupXRefAttributes[ LsapDsTrustedDomainFixupXRefCount ];
#define LsapDsForestInfoSearchAttributeCount 6
extern ATTR LsapDsForestInfoSearchAttributes[ LsapDsForestInfoSearchAttributeCount ];
#define LsapDsITAFixupAttributeCount 2
extern ATTR LsapDsITAFixupAttributes[ LsapDsITAFixupAttributeCount ];
//
// Macros to help with the manipulation of attributes
//
#define LSAP_DS_SET_DS_ATTRIBUTE_STRING( pattr, string ) \
(pattr)->AttrVal.pAVal->valLen = wcslen( string ) * sizeof( WCHAR ); \
(pattr)->AttrVal.pAVal->pVal = (PUCHAR)string; \
#define LSAP_DS_SET_DS_ATTRIBUTE_UNICODE( pattr, string ) \
(pattr)->AttrVal.pAVal->valLen = (string)->Length; \
(pattr)->AttrVal.pAVal->pVal = (PUCHAR)(string)->Buffer; \
#define LSAP_DS_SET_DS_ATTRIBUTE_ULONG( pattr, ulongval ) \
(pattr)->AttrVal.pAVal->valLen = sizeof( ULONG ); \
(pattr)->AttrVal.pAVal->pVal = (PUCHAR)&ulongval; \
#define LSAP_DS_SET_DS_ATTRIBUTE_SID( pattr, sid ) \
(pattr)->AttrVal.pAVal->valLen = RtlLengthSid( sid ); \
(pattr)->AttrVal.pAVal->pVal = (PUCHAR)sid; \
#define LSAP_DS_SET_DS_ATTRIBUTE_DSNAME( pattr, dsname ) \
(pattr)->AttrVal.pAVal->valLen = dsname->structLen; \
(pattr)->AttrVal.pAVal->pVal = (PUCHAR)dsname; \
#define LSAP_DS_GET_DS_ATTRIBUTE_LENGTH( pattr ) \
(pattr)->AttrVal.pAVal->valLen
#define LSAP_DS_GET_DS_ATTRIBUTE_AS_ULONG( pattr ) \
(*(PULONG)((pattr)->AttrVal.pAVal->pVal) )
#define LSAP_DS_GET_DS_ATTRIBUTE_AS_DSNAME( pattr ) \
((PDSNAME)((pattr)->AttrVal.pAVal->pVal ))
#define LSAP_DS_GET_DS_ATTRIBUTE_AS_PWSTR( pattr ) \
((PWSTR)((pattr)->AttrVal.pAVal->pVal ))
#define LSAP_DS_GET_DS_ATTRIBUTE_AS_USN( pattr ) \
((PUSN)((pattr)->AttrVal.pAVal->pVal ))
#define LSAP_DS_GET_DS_ATTRIBUTE_AS_PBYTE( pattr ) \
((PBYTE)((pattr)->AttrVal.pAVal->pVal ))
//
// GUID for the trusted domain auth property set
//
extern GUID LsapDsTrustedDomainAuthPropSet;
#endif // __DSATTRS_H__