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
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__
|