Documentation ¶
Overview ¶
The dtyp package implements the DTYP client protocol.
Introduction ¶
This document provides a collection of commonly used data types, which are categorized into two basic types: common base types and common data types. The common base types are those types that Microsoft compilers natively support. The common data types are data types that are frequently used by many protocols. These data types are user-defined types.
Overview ¶
Two types of data structures are specified in this document: data structures that are specified in terms of the wire format and data structures that are RPC-marshaled as specified in [MS-RPCE]. The latter are specified by using the Interface Definition Language (IDL) that is defined in [MS-RPCE] section 2.2.4.
For some types of data, both formats are shown. For example, both formats are shown if some protocols use the raw wire format but other protocols use the RPC-marshaled format. Any protocol that uses a data structure name in its IDL necessarily implies the use of the IDL version of the data structure. Any other use implies the use of the wire format version unless otherwise specified by the protocol that uses the data structure.
Index ¶
- Constants
- Variables
- type ACE
- type ACEData
- type ACEData_AccessAllowedACE
- type ACEData_AccessAllowedCallbackACE
- type ACEData_AccessAllowedCallbackObjectACE
- type ACEData_AccessAllowedObjectACE
- type ACEData_AccessDeniedACE
- type ACEData_AccessDeniedCallbackACE
- type ACEData_AccessDeniedCallbackObjectACE
- type ACEData_AccessDeniedObjectACE
- type ACEData_RawACE
- type ACEData_SystemAuditACE
- type ACEData_SystemAuditCallbackACE
- type ACEData_SystemAuditCallbackObjectACE
- type ACEData_SystemAuditObjectACE
- type ACEData_SystemMandatoryLabelACE
- type ACEData_SystemResourceAttributeACE
- type ACEData_SystemScopedPolicyIDACE
- type ACEGUID
- func (o *ACEGUID) GetValue() any
- func (o *ACEGUID) MarshalJSON() ([]byte, error)
- func (o *ACEGUID) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error
- func (o *ACEGUID) NDRSwitchValue(sw uint32) uint32
- func (o *ACEGUID) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error
- type ACEGUID_GUID
- type ACEHeader
- type ACEType
- type ACL
- type AccessAllowedACE
- type AccessAllowedCallbackACE
- type AccessAllowedCallbackObjectACE
- type AccessAllowedObjectACE
- type AccessDeniedACE
- type AccessDeniedCallbackACE
- type AccessDeniedCallbackObjectACE
- type AccessDeniedObjectACE
- type ClaimSecurityAttributeOctetStringRelative
- type ClaimSecurityAttributeRelativeV1
- type ClaimSecurityAttributeRelativeV1_Values
- type ClassID
- type EventDescriptor
- type EventHeader
- type EventHeader_Field10
- type EventHeader_Field10_Field1
- type Filetime
- func (ft *Filetime) AsTime() time.Time
- func (ft *Filetime) DecodeBinary(b []byte) error
- func (ft *Filetime) IsNever() bool
- func (ft *Filetime) MarshalJSON() ([]byte, error)
- func (o *Filetime) MarshalNDR(ctx context.Context, w ndr.Writer) error
- func (o *Filetime) UnmarshalNDR(ctx context.Context, w ndr.Reader) error
- type GUID
- type LUID
- type LargeInteger
- type MandatoryInformation
- type Multistring
- type ObjectTypeList
- type RawACE
- type SID
- func (o *SID) Bytes() ([]byte, error)
- func (o *SID) DecodeBinary(b []byte) error
- func (o *SID) MarshalJSON() ([]byte, error)
- func (o *SID) MarshalNDR(ctx context.Context, w ndr.Writer) error
- func (o *SID) NDRSizeInfo() []uint64
- func (o *SID) Parse(s string) error
- func (o *SID) String() string
- func (o *SID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error
- type SIDIDAuthority
- type SecurityDescriptor
- type ServerInfo100
- type ServerInfo101
- type SystemAuditACE
- type SystemAuditCallbackACE
- type SystemAuditCallbackObjectACE
- type SystemAuditObjectACE
- type SystemMandatoryLabelACE
- type SystemResourceAttributeACE
- type SystemScopedPolicyIDACE
- type SystemTime
- type TokenMandatoryPolicy
- type UUID
- type Uint128
- type UlargeInteger
- type UnicodeString
Constants ¶
const ACEInheritedObjectTypePresent = 0x00000002
ACEInheritedObjectTypePresent represents the ACE_INHERITED_OBJECT_TYPE_PRESENT RPC constant
const ACEObjectTypePresent = 0x00000001
ACEObjectTypePresent represents the ACE_OBJECT_TYPE_PRESENT RPC constant
const AccessMaskAccessSystemSecurity = 0x01000000
AccessMaskAccessSystemSecurity represents the ACCESS_MASK_ACCESS_SYSTEM_SECURITY RPC constant
const AccessMaskDSControlAccess = 0x00000100
AccessMaskDSControlAccess represents the ACCESS_MASK_DS_CONTROL_ACCESS RPC constant
const AccessMaskDSCreateChild = 0x00000001
AccessMaskDSCreateChild represents the ACCESS_MASK_DS_CREATE_CHILD RPC constant
const AccessMaskDSDeleteChild = 0x00000002
AccessMaskDSDeleteChild represents the ACCESS_MASK_DS_DELETE_CHILD RPC constant
const AccessMaskDSReadProperty = 0x00000010
AccessMaskDSReadProperty represents the ACCESS_MASK_DS_READ_PROP RPC constant
const AccessMaskDSSelf = 0x00000008
AccessMaskDSSelf represents the ACCESS_MASK_DS_SELF RPC constant
const AccessMaskDSWriteProperty = 0x00000020
AccessMaskDSWriteProperty represents the ACCESS_MASK_DS_WRITE_PROP RPC constant
const AccessMaskDelete = 0x00010000
AccessMaskDelete represents the ACCESS_MASK_DELETE RPC constant
const AccessMaskGenericAll = 0x10000000
AccessMaskGenericAll represents the ACCESS_MASK_GENERIC_ALL RPC constant
const AccessMaskGenericExecute = 0x20000000
AccessMaskGenericExecute represents the ACCESS_MASK_GENERIC_EXECUTE RPC constant
const AccessMaskGenericRead = 0x80000000
AccessMaskGenericRead represents the ACCESS_MASK_GENERIC_READ RPC constant
const AccessMaskGenericWrite = 0x40000000
AccessMaskGenericWrite represents the ACCESS_MASK_GENERIC_WRITE RPC constant
const AccessMaskMaximumAllowed = 0x02000000
AccessMaskMaximumAllowed represents the ACCESS_MASK_MAXIMUM_ALLOWED RPC constant
const AccessMaskReadControl = 0x00020000
AccessMaskReadControl represents the ACCESS_MASK_READ_CONTROL RPC constant
const AccessMaskSynchronize = 0x00100000
AccessMaskSynchronize represents the ACCESS_MASK_SYNCHRONIZE RPC constant
const AccessMaskWriteDACL = 0x00040000
AccessMaskWriteDACL represents the ACCESS_MASK_WRITE_DACL RPC constant
const AccessMaskWriteOwner = 0x00080000
AccessMaskWriteOwner represents the ACCESS_MASK_WRITE_OWNER RPC constant
const DACLAutoInherited = 0x0400
DACLAutoInherited represents the DACL_AUTO_INHERITED RPC constant
const DACLComputedInheritanceRequired = 0x0100
DACLComputedInheritanceRequired represents the DACL_COMPUTED_INHERITANCE_REQUIRED RPC constant
const DACLDefaulted = 0x0008
DACLDefaulted represents the DACL_DEFAULTED RPC constant
const DACLPresent = 0x0004
DACLPresent represents the DACL_PRESENT RPC constant
const DACLProtected = 0x1000
DACLProtected represents the DACL_PROTECTED RPC constant
const DACLTrusted = 0x0040
DACLTrusted represents the DACL_TRUSTED RPC constant
const DomainAliasRIDAccessControlAssistanceOperations = 0x00000243
DomainAliasRIDAccessControlAssistanceOperations represents the DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS RPC constant
const DomainAliasRIDAccountOperations = 0x00000224
DomainAliasRIDAccountOperations represents the DOMAIN_ALIAS_RID_ACCOUNT_OPS RPC constant
const DomainAliasRIDAdmins = 0x00000220
DomainAliasRIDAdmins represents the DOMAIN_ALIAS_RID_ADMINS RPC constant
const DomainAliasRIDAuthorizationAccess = 0x00000230
DomainAliasRIDAuthorizationAccess represents the DOMAIN_ALIAS_RID_AUTHORIZATION_ACCESS RPC constant
const DomainAliasRIDBackupOperations = 0x00000227
DomainAliasRIDBackupOperations represents the DOMAIN_ALIAS_RID_BACKUP_OPS RPC constant
const DomainAliasRIDCacheablePrincipalsGroup = 0x0000023B
DomainAliasRIDCacheablePrincipalsGroup represents the DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP RPC constant
const DomainAliasRIDCertServiceDCOMAccessGroup = 0x0000023E
DomainAliasRIDCertServiceDCOMAccessGroup represents the DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP RPC constant
const DomainAliasRIDCryptoOperators = 0x00000239
DomainAliasRIDCryptoOperators represents the DOMAIN_ALIAS_RID_CRYPTO_OPERATORS RPC constant
const DomainAliasRIDDCOMUsers = 0x00000232
DomainAliasRIDDCOMUsers represents the DOMAIN_ALIAS_RID_DCOM_USERS RPC constant
const DomainAliasRIDDefaultAccount = 0x00000245
DomainAliasRIDDefaultAccount represents the DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT RPC constant
const DomainAliasRIDDeviceOwners = 0x00000247
DomainAliasRIDDeviceOwners represents the DOMAIN_ALIAS_RID_DEVICE_OWNERS RPC constant
const DomainAliasRIDEventLogReadersGroup = 0x0000023D
DomainAliasRIDEventLogReadersGroup represents the DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP RPC constant
const DomainAliasRIDGuests = 0x00000222
DomainAliasRIDGuests represents the DOMAIN_ALIAS_RID_GUESTS RPC constant
const DomainAliasRIDHyperVAdmins = 0x00000242
DomainAliasRIDHyperVAdmins represents the DOMAIN_ALIAS_RID_HYPER_V_ADMINS RPC constant
const DomainAliasRIDIncomingForestTrustBuilders = 0x0000022D
DomainAliasRIDIncomingForestTrustBuilders represents the DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS RPC constant
const DomainAliasRIDInternetUsers = 0x00000238
DomainAliasRIDInternetUsers represents the DOMAIN_ALIAS_RID_INTERNET_USERS RPC constant
const DomainAliasRIDLoggingUsers = 0x0000022F
DomainAliasRIDLoggingUsers represents the DOMAIN_ALIAS_RID_LOGGING_USERS RPC constant
const DomainAliasRIDMonitoringUsers = 0x0000022E
DomainAliasRIDMonitoringUsers represents the DOMAIN_ALIAS_RID_MONITORING_USERS RPC constant
const DomainAliasRIDNetworkConfigurationOperations = 0x0000022C
DomainAliasRIDNetworkConfigurationOperations represents the DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS RPC constant
const DomainAliasRIDNonCacheablePrincipalsGroup = 0x0000023C
DomainAliasRIDNonCacheablePrincipalsGroup represents the DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP RPC constant
const DomainAliasRIDPowerUsers = 0x00000223
DomainAliasRIDPowerUsers represents the DOMAIN_ALIAS_RID_POWER_USERS RPC constant
const DomainAliasRIDPreW2KCompAccess = 0x0000022A
DomainAliasRIDPreW2KCompAccess represents the DOMAIN_ALIAS_RID_PRE_W2K_COMP_ACCESS RPC constant
const DomainAliasRIDPrintOperations = 0x00000226
DomainAliasRIDPrintOperations represents the DOMAIN_ALIAS_RID_PRINT_OPS RPC constant
const DomainAliasRIDRASServers = 0x00000229
DomainAliasRIDRASServers represents the DOMAIN_ALIAS_RID_RAS_SERVERS RPC constant
const DomainAliasRIDRDSEndpointServers = 0x00000240
DomainAliasRIDRDSEndpointServers represents the DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS RPC constant
const DomainAliasRIDRDSManagementServers = 0x00000241
DomainAliasRIDRDSManagementServers represents the DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS RPC constant
const DomainAliasRIDRDSRemoteAccessServers = 0x0000023F
DomainAliasRIDRDSRemoteAccessServers represents the DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS RPC constant
const DomainAliasRIDRemoteDesktopUsers = 0x0000022B
DomainAliasRIDRemoteDesktopUsers represents the DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS RPC constant
const DomainAliasRIDRemoteManagementUsers = 0x00000244
DomainAliasRIDRemoteManagementUsers represents the DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS RPC constant
const DomainAliasRIDReplicator = 0x00000228
DomainAliasRIDReplicator represents the DOMAIN_ALIAS_RID_REPLICATOR RPC constant
const DomainAliasRIDStorageReplicaAdmins = 0x00000246
DomainAliasRIDStorageReplicaAdmins represents the DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS RPC constant
const DomainAliasRIDSystemOperations = 0x00000225
DomainAliasRIDSystemOperations represents the DOMAIN_ALIAS_RID_SYSTEM_OPS RPC constant
const DomainAliasRIDTSLicenseServers = 0x00000231
DomainAliasRIDTSLicenseServers represents the DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS RPC constant
const DomainAliasRIDUsers = 0x00000221
DomainAliasRIDUsers represents the DOMAIN_ALIAS_RID_USERS RPC constant
const DomainGroupRIDAdmins = 0x00000200
DomainGroupRIDAdmins represents the DOMAIN_GROUP_RID_ADMINS RPC constant
const DomainGroupRIDCDCReserved = 0x0000020C
DomainGroupRIDCDCReserved represents the DOMAIN_GROUP_RID_CDC_RESERVED RPC constant
const DomainGroupRIDCertAdmins = 0x00000205
DomainGroupRIDCertAdmins represents the DOMAIN_GROUP_RID_CERT_ADMINS RPC constant
const DomainGroupRIDCloneableControllers = 0x0000020A
DomainGroupRIDCloneableControllers represents the DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS RPC constant
const DomainGroupRIDComputers = 0x00000203
DomainGroupRIDComputers represents the DOMAIN_GROUP_RID_COMPUTERS RPC constant
const DomainGroupRIDControllers = 0x00000204
DomainGroupRIDControllers represents the DOMAIN_GROUP_RID_CONTROLLERS RPC constant
const DomainGroupRIDEnterpriseAdmins = 0x00000207
DomainGroupRIDEnterpriseAdmins represents the DOMAIN_GROUP_RID_ENTERPRISE_ADMINS RPC constant
const DomainGroupRIDEnterpriseKeyAdmins = 0x0000020F
DomainGroupRIDEnterpriseKeyAdmins represents the DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS RPC constant
const DomainGroupRIDEnterpriseReadonlyDomainControllers = 0x000001F2
DomainGroupRIDEnterpriseReadonlyDomainControllers represents the DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS RPC constant
const DomainGroupRIDGuests = 0x00000202
DomainGroupRIDGuests represents the DOMAIN_GROUP_RID_GUESTS RPC constant
const DomainGroupRIDKeyAdmins = 0x0000020E
DomainGroupRIDKeyAdmins represents the DOMAIN_GROUP_RID_KEY_ADMINS RPC constant
const DomainGroupRIDPolicyAdmins = 0x00000208
DomainGroupRIDPolicyAdmins represents the DOMAIN_GROUP_RID_POLICY_ADMINS RPC constant
const DomainGroupRIDProtectedUsers = 0x0000020D
DomainGroupRIDProtectedUsers represents the DOMAIN_GROUP_RID_PROTECTED_USERS RPC constant
const DomainGroupRIDReadonlyControllers = 0x00000209
DomainGroupRIDReadonlyControllers represents the DOMAIN_GROUP_RID_READONLY_CONTROLLERS RPC constant
const DomainGroupRIDSchemaAdmins = 0x00000206
DomainGroupRIDSchemaAdmins represents the DOMAIN_GROUP_RID_SCHEMA_ADMINS RPC constant
const DomainGroupRIDUsers = 0x00000201
DomainGroupRIDUsers represents the DOMAIN_GROUP_RID_USERS RPC constant
const DomainUserRIDAdmin = 0x000001F4
DomainUserRIDAdmin represents the DOMAIN_USER_RID_ADMIN RPC constant
const DomainUserRIDDefaultAccount = 0x000001F7
DomainUserRIDDefaultAccount represents the DOMAIN_USER_RID_DEFAULT_ACCOUNT RPC constant
const DomainUserRIDGuest = 0x000001F5
DomainUserRIDGuest represents the DOMAIN_USER_RID_GUEST RPC constant
const DomainUserRIDKRBTGT = 0x000001F6
DomainUserRIDKRBTGT represents the DOMAIN_USER_RID_KRBTGT RPC constant
const GroupDefaulted = 0x0002
GroupDefaulted represents the GROUP_DEFAULTED RPC constant
const OwnerDefaulted = 0x0001
OwnerDefaulted represents the OWNER_DEFAULTED RPC constant
const RIDHighIntegrityLevel = 0x00003000
RIDHighIntegrityLevel represents the RID_HIGH_INTEGRITY_LEVEL RPC constant
const RIDLowIntegrityLevel = 0x00001000
RIDLowIntegrityLevel represents the RID_LOW_INTEGRITY_LEVEL RPC constant
const RIDMediumIntegrityLevel = 0x00002000
RIDMediumIntegrityLevel represents the RID_MEDIUM_INTEGRITY_LEVEL RPC constant
const RIDProtectedProcessIntegrityLevel = 0x00005000
RIDProtectedProcessIntegrityLevel represents the RID_PROTECTED_PROCESS_INTEGRITY_LEVEL RPC constant
const RIDSystemIntegrityLevel = 0x00004000
RIDSystemIntegrityLevel represents the RID_SYSTEM_INTEGRITY_LEVEL RPC constant
const RMControlValid = 0x4000
RMControlValid represents the RM_CONTROL_VALID RPC constant
const SACLAutoInherited = 0x0800
SACLAutoInherited represents the SACL_AUTO_INHERITED RPC constant
const SACLComputedInheritanceRequired = 0x0200
SACLComputedInheritanceRequired represents the SACL_COMPUTED_INHERITANCE_REQUIRED RPC constant
const SACLDefaulted = 0x0020
SACLDefaulted represents the SACL_DEFAULTED RPC constant
const SACLPresent = 0x0010
SACLPresent represents the SACL_PRESENT RPC constant
const SACLProtected = 0x2000
SACLProtected represents the SACL_PROTECTED RPC constant
const SecurityCreatorGroupRID = 0x00000001
SecurityCreatorGroupRID represents the SECURITY_CREATOR_GROUP_RID RPC constant
const SecurityCreatorOwnerRID = 0x00000000
SecurityCreatorOwnerRID represents the SECURITY_CREATOR_OWNER_RID RPC constant
const SecurityCreatorSIDAuthority = 0x00000003
SecurityCreatorSIDAuthority represents the SECURITY_CREATOR_SID_AUTHORITY RPC constant
const SecurityLocalLogonRID = 0x00000001
SecurityLocalLogonRID represents the SECURITY_LOCAL_LOGON_RID RPC constant
const SecurityLocalRID = 0x00000000
SecurityLocalRID represents the SECURITY_LOCAL_RID RPC constant
const SecurityLocalSIDAuthority = 0x00000002
SecurityLocalSIDAuthority represents the SECURITY_LOCAL_SID_AUTHORITY RPC constant
const SecurityMandatoryHighRID = 0x00003000
SecurityMandatoryHighRID represents the SECURITY_MANDATORY_HIGH_RID RPC constant
const SecurityMandatoryLowRID = 0x00001000
SecurityMandatoryLowRID represents the SECURITY_MANDATORY_LOW_RID RPC constant
const SecurityMandatoryMediumPlusRID = 0x00002100
SecurityMandatoryMediumPlusRID represents the SECURITY_MANDATORY_MEDIUM_PLUS_RID RPC constant
const SecurityMandatoryMediumRID = 0x00002000
SecurityMandatoryMediumRID represents the SECURITY_MANDATORY_MEDIUM_RID RPC constant
const SecurityMandatoryProtectedProcessRID = 0x00005000
SecurityMandatoryProtectedProcessRID represents the SECURITY_MANDATORY_PROTECTED_PROCESS_RID RPC constant
const SecurityMandatorySystemRID = 0x00004000
SecurityMandatorySystemRID represents the SECURITY_MANDATORY_SYSTEM_RID RPC constant
const SecurityMandatoryUntrustedRID = 0x00000000
SecurityMandatoryUntrustedRID represents the SECURITY_MANDATORY_UNTRUSTED_RID RPC constant
const SecurityNTAuthority = 0x00000005
SecurityNTAuthority represents the SECURITY_NT_AUTHORITY RPC constant
const SecurityNullRID = 0x00000000
SecurityNullRID represents the SECURITY_NULL_RID RPC constant
const SecurityNullSIDAuthority = 0x00000000
SecurityNullSIDAuthority represents the SECURITY_NULL_SID_AUTHORITY RPC constant
const SecurityWorldRID = 0x00000000
SecurityWorldRID represents the SECURITY_WORLD_RID RPC constant
const SecurityWorldSIDAuthority = 0x00000001
SecurityWorldSIDAuthority represents the SECURITY_WORLD_SID_AUTHORITY RPC constant
const SelfRelative = 0x8000
SelfRelative represents the SELF_RELATIVE RPC constant
const ServerSecurity = 0x0080
ServerSecurity represents the SERVER_SECURITY RPC constant
const SystemMandatoryLabelNoExecuteUp = 0x00000004
SystemMandatoryLabelNoExecuteUp represents the SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP RPC constant
const SystemMandatoryLabelNoReadUp = 0x00000002
SystemMandatoryLabelNoReadUp represents the SYSTEM_MANDATORY_LABEL_NO_READ_UP RPC constant
const SystemMandatoryLabelNoWriteUp = 0x00000001
SystemMandatoryLabelNoWriteUp represents the SYSTEM_MANDATORY_LABEL_NO_WRITE_UP RPC constant
Variables ¶
var ACEFlagContainerInheritACE = 2
ACEFlagContainerInheritACE represents the ACE_FLAG_CONTAINER_INHERIT_ACE RPC constant
var ACEFlagFailedAccessACEFlag = 128
ACEFlagFailedAccessACEFlag represents the ACE_FLAG_FAILED_ACCESS_ACE_FLAG RPC constant
var ACEFlagInheritOnlyACE = 8
ACEFlagInheritOnlyACE represents the ACE_FLAG_INHERIT_ONLY_ACE RPC constant
var ACEFlagInheritedACE = 16
ACEFlagInheritedACE represents the ACE_FLAG_INHERITED_ACE RPC constant
var ACEFlagNoPropagateInheritACE = 4
ACEFlagNoPropagateInheritACE represents the ACE_FLAG_NO_PROPAGATE_INHERIT_ACE RPC constant
var ACEFlagObjectInheritACE = 1
ACEFlagObjectInheritACE represents the ACE_FLAG_OBJECT_INHERIT_ACE RPC constant
var ACEFlagSuccessfulAccessACEFlag = 64
ACEFlagSuccessfulAccessACEFlag represents the ACE_FLAG_SUCCESSFUL_ACCESS_ACE_FLAG RPC constant
var (
// import guard
GoPackage = "dtyp"
)
Functions ¶
This section is empty.
Types ¶
type ACE ¶ added in v1.0.3
type ACE struct { ACEType uint8 `idl:"name:AceType" json:"ace_type"` ACEFlags uint8 `idl:"name:AceFlags" json:"ace_flags"` ACESize uint16 `idl:"name:AceSize" json:"ace_size"` Data []byte `idl:"name:Data;size_is:((AceSize-4))" json:"data"` ACEData *ACEData `idl:"name:AceData;switch_is:AceType" json:"ace_data"` }
ACE structure represents ACE RPC structure.
func (*ACE) MarshalNDR ¶ added in v1.0.3
type ACEData ¶ added in v1.0.3
type ACEData struct { // Types that are assignable to Value // // *ACEData_AccessAllowedACE // *ACEData_AccessDeniedACE // *ACEData_SystemAuditACE // *ACEData_AccessAllowedObjectACE // *ACEData_AccessDeniedObjectACE // *ACEData_SystemAuditObjectACE // *ACEData_AccessAllowedCallbackACE // *ACEData_AccessDeniedCallbackACE // *ACEData_AccessAllowedCallbackObjectACE // *ACEData_AccessDeniedCallbackObjectACE // *ACEData_SystemAuditCallbackACE // *ACEData_SystemAuditCallbackObjectACE // *ACEData_SystemMandatoryLabelACE // *ACEData_SystemResourceAttributeACE // *ACEData_SystemScopedPolicyIDACE // *ACEData_RawACE Value is_ACEData `json:"value"` }
ACEData structure represents ACE_DATA RPC union.
func (*ACEData) MarshalUnionNDR ¶ added in v1.0.3
func (*ACEData) NDRSwitchValue ¶ added in v1.0.3
type ACEData_AccessAllowedACE ¶ added in v1.0.3
type ACEData_AccessAllowedACE struct {
AccessAllowedACE *AccessAllowedACE `idl:"name:AccessAllowedAce" json:"access_allowed_ace"`
}
ACEData_AccessAllowedACE structure represents ACE_DATA RPC union arm.
It has following labels: 0
func (*ACEData_AccessAllowedACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessAllowedACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessAllowedCallbackACE ¶ added in v1.0.3
type ACEData_AccessAllowedCallbackACE struct {
AccessAllowedCallbackACE *AccessAllowedCallbackACE `idl:"name:AccessAllowedCallbackAce" json:"access_allowed_callback_ace"`
}
ACEData_AccessAllowedCallbackACE structure represents ACE_DATA RPC union arm.
It has following labels: 9
func (*ACEData_AccessAllowedCallbackACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessAllowedCallbackACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessAllowedCallbackObjectACE ¶ added in v1.0.3
type ACEData_AccessAllowedCallbackObjectACE struct {
AccessAllowedCallbackObjectACE *AccessAllowedCallbackObjectACE `idl:"name:AccessAllowedCallbackObjectAce" json:"access_allowed_callback_object_ace"`
}
ACEData_AccessAllowedCallbackObjectACE structure represents ACE_DATA RPC union arm.
It has following labels: 11
func (*ACEData_AccessAllowedCallbackObjectACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessAllowedCallbackObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessAllowedObjectACE ¶ added in v1.0.3
type ACEData_AccessAllowedObjectACE struct {
AccessAllowedObjectACE *AccessAllowedObjectACE `idl:"name:AccessAllowedObjectAce" json:"access_allowed_object_ace"`
}
ACEData_AccessAllowedObjectACE structure represents ACE_DATA RPC union arm.
It has following labels: 5
func (*ACEData_AccessAllowedObjectACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessAllowedObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessDeniedACE ¶ added in v1.0.3
type ACEData_AccessDeniedACE struct {
AccessDeniedACE *AccessDeniedACE `idl:"name:AccessDeniedAce" json:"access_denied_ace"`
}
ACEData_AccessDeniedACE structure represents ACE_DATA RPC union arm.
It has following labels: 1
func (*ACEData_AccessDeniedACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessDeniedACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessDeniedCallbackACE ¶ added in v1.0.3
type ACEData_AccessDeniedCallbackACE struct {
AccessDeniedCallbackACE *AccessDeniedCallbackACE `idl:"name:AccessDeniedCallbackAce" json:"access_denied_callback_ace"`
}
ACEData_AccessDeniedCallbackACE structure represents ACE_DATA RPC union arm.
It has following labels: 10
func (*ACEData_AccessDeniedCallbackACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessDeniedCallbackACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessDeniedCallbackObjectACE ¶ added in v1.0.3
type ACEData_AccessDeniedCallbackObjectACE struct {
AccessDeniedCallbackObjectACE *AccessDeniedCallbackObjectACE `idl:"name:AccessDeniedCallbackObjectAce" json:"access_denied_callback_object_ace"`
}
ACEData_AccessDeniedCallbackObjectACE structure represents ACE_DATA RPC union arm.
It has following labels: 12
func (*ACEData_AccessDeniedCallbackObjectACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessDeniedCallbackObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_AccessDeniedObjectACE ¶ added in v1.0.3
type ACEData_AccessDeniedObjectACE struct {
AccessDeniedObjectACE *AccessDeniedObjectACE `idl:"name:AccessDeniedObjectAce" json:"access_denied_object_ace"`
}
ACEData_AccessDeniedObjectACE structure represents ACE_DATA RPC union arm.
It has following labels: 6
func (*ACEData_AccessDeniedObjectACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_AccessDeniedObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_RawACE ¶ added in v1.0.3
type ACEData_RawACE struct {
RawACE *RawACE `idl:"name:RawAce" json:"raw_ace"`
}
ACEData_RawACE structure represents ACE_DATA RPC default union arm.
func (*ACEData_RawACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_RawACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemAuditACE ¶ added in v1.0.3
type ACEData_SystemAuditACE struct {
SystemAuditACE *SystemAuditACE `idl:"name:SystemAuditAce" json:"system_audit_ace"`
}
ACEData_SystemAuditACE structure represents ACE_DATA RPC union arm.
It has following labels: 2
func (*ACEData_SystemAuditACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemAuditACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemAuditCallbackACE ¶ added in v1.0.3
type ACEData_SystemAuditCallbackACE struct {
SystemAuditCallbackACE *SystemAuditCallbackACE `idl:"name:SystemAuditCallbackAce" json:"system_audit_callback_ace"`
}
ACEData_SystemAuditCallbackACE structure represents ACE_DATA RPC union arm.
It has following labels: 13
func (*ACEData_SystemAuditCallbackACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemAuditCallbackACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemAuditCallbackObjectACE ¶ added in v1.0.3
type ACEData_SystemAuditCallbackObjectACE struct {
SystemAuditCallbackObjectACE *SystemAuditCallbackObjectACE `idl:"name:SystemAuditCallbackObjectAce" json:"system_audit_callback_object_ace"`
}
ACEData_SystemAuditCallbackObjectACE structure represents ACE_DATA RPC union arm.
It has following labels: 15
func (*ACEData_SystemAuditCallbackObjectACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemAuditCallbackObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemAuditObjectACE ¶ added in v1.0.3
type ACEData_SystemAuditObjectACE struct {
SystemAuditObjectACE *SystemAuditObjectACE `idl:"name:SystemAuditObjectAce" json:"system_audit_object_ace"`
}
ACEData_SystemAuditObjectACE structure represents ACE_DATA RPC union arm.
It has following labels: 7
func (*ACEData_SystemAuditObjectACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemAuditObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemMandatoryLabelACE ¶ added in v1.0.3
type ACEData_SystemMandatoryLabelACE struct {
SystemMandatoryLabelACE *SystemMandatoryLabelACE `idl:"name:SystemMandatoryLabelAce" json:"system_mandatory_label_ace"`
}
ACEData_SystemMandatoryLabelACE structure represents ACE_DATA RPC union arm.
It has following labels: 17
func (*ACEData_SystemMandatoryLabelACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemMandatoryLabelACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemResourceAttributeACE ¶ added in v1.0.3
type ACEData_SystemResourceAttributeACE struct {
SystemResourceAttributeACE *SystemResourceAttributeACE `idl:"name:SystemResourceAttributeAce" json:"system_resource_attribute_ace"`
}
ACEData_SystemResourceAttributeACE structure represents ACE_DATA RPC union arm.
It has following labels: 18
func (*ACEData_SystemResourceAttributeACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemResourceAttributeACE) UnmarshalNDR ¶ added in v1.0.3
type ACEData_SystemScopedPolicyIDACE ¶ added in v1.0.3
type ACEData_SystemScopedPolicyIDACE struct {
SystemScopedPolicyIDACE *SystemScopedPolicyIDACE `idl:"name:SystemScopedPolicyIdAce" json:"system_scoped_policy_id_ace"`
}
ACEData_SystemScopedPolicyIDACE structure represents ACE_DATA RPC union arm.
It has following labels: 19
func (*ACEData_SystemScopedPolicyIDACE) MarshalNDR ¶ added in v1.0.3
func (*ACEData_SystemScopedPolicyIDACE) UnmarshalNDR ¶ added in v1.0.3
type ACEGUID ¶ added in v1.0.3
type ACEGUID struct { // Types that are assignable to Value // // *ACEGUID_GUID Value is_ACEGUID `json:"value"` }
ACEGUID structure represents ACE_GUID RPC union.
func (*ACEGUID) MarshalJSON ¶ added in v1.0.3
func (*ACEGUID) MarshalUnionNDR ¶ added in v1.0.3
func (*ACEGUID) NDRSwitchValue ¶ added in v1.0.3
type ACEGUID_GUID ¶ added in v1.0.3
type ACEGUID_GUID struct {
GUID *GUID `idl:"name:GUID" json:"guid"`
}
ACEGUID_GUID structure represents ACE_GUID RPC union arm.
It has following labels: 1, 2
func (*ACEGUID_GUID) MarshalNDR ¶ added in v1.0.3
func (*ACEGUID_GUID) UnmarshalNDR ¶ added in v1.0.3
type ACEHeader ¶
type ACEHeader struct { // AceType (1 byte): An unsigned 8-bit integer that specifies the ACE types. This field // MUST be one of the following values. // // +----------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_ALLOWED_ACE_TYPE 0x00 | Access-allowed ACE that uses the ACCESS_ALLOWED_ACE (section 2.4.4.2) structure. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_DENIED_ACE_TYPE 0x01 | Access-denied ACE that uses the ACCESS_DENIED_ACE (section 2.4.4.4) structure. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_AUDIT_ACE_TYPE 0x02 | System-audit ACE that uses the SYSTEM_AUDIT_ACE (section 2.4.4.10) structure. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_ALARM_ACE_TYPE 0x03 | Reserved for future use. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_ALLOWED_COMPOUND_ACE_TYPE 0x04 | Reserved for future use. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_ALLOWED_OBJECT_ACE_TYPE 0x05 | Object-specific access-allowed ACE that uses the ACCESS_ALLOWED_OBJECT_ACE | // | | (section 2.4.4.3) structure.<45> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_DENIED_OBJECT_ACE_TYPE 0x06 | Object-specific access-denied ACE that uses the ACCESS_DENIED_OBJECT_ACE | // | | (section 2.4.4.5) structure.<46> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_AUDIT_OBJECT_ACE_TYPE 0x07 | Object-specific system-audit ACE that uses the SYSTEM_AUDIT_OBJECT_ACE (section | // | | 2.4.4.11) structure.<47> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_ALARM_OBJECT_ACE_TYPE 0x08 | Reserved for future use. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_ALLOWED_CALLBACK_ACE_TYPE 0x09 | Access-allowed callback ACE that uses the ACCESS_ALLOWED_CALLBACK_ACE (section | // | | 2.4.4.6) structure.<48> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_DENIED_CALLBACK_ACE_TYPE 0x0A | Access-denied callback ACE that uses the ACCESS_DENIED_CALLBACK_ACE (section | // | | 2.4.4.7) structure.<49> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE 0x0B | Object-specific access-allowed callback ACE that uses the | // | | ACCESS_ALLOWED_CALLBACK_OBJECT_ACE (section 2.4.4.8) structure.<50> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE 0x0C | Object-specific access-denied callback ACE that uses the | // | | ACCESS_DENIED_CALLBACK_OBJECT_ACE (section 2.4.4.9) structure.<51> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_AUDIT_CALLBACK_ACE_TYPE 0x0D | System-audit callback ACE that uses the SYSTEM_AUDIT_CALLBACK_ACE (section | // | | 2.4.4.12) structure.<52> | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_ALARM_CALLBACK_ACE_TYPE 0x0E | Reserved for future use. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE 0x0F | Object-specific system-audit callback ACE that uses the | // | | SYSTEM_AUDIT_CALLBACK_OBJECT_ACE (section 2.4.4.14) structure. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE 0x10 | Reserved for future use. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_MANDATORY_LABEL_ACE_TYPE 0x11 | Mandatory label ACE that uses the SYSTEM_MANDATORY_LABEL_ACE (section 2.4.4.13) | // | | structure. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE 0x12 | Resource attribute ACE that uses the SYSTEM_RESOURCE_ATTRIBUTE_ACE (section | // | | 2.4.4.15) | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_SCOPED_POLICY_ID_ACE_TYPE 0x13 | A central policy ID ACE that uses the SYSTEM_SCOPED_POLICY_ID_ACE (section | // | | 2.4.4.16) | // +----------------------------------------------+----------------------------------------------------------------------------------+ ACEType uint8 `idl:"name:AceType" json:"ace_type"` // AceFlags (1 byte): An unsigned 8-bit integer that specifies a set of ACE type-specific // control flags. This field can be a combination of the following values. // // +---------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------+----------------------------------------------------------------------------------+ // | CONTAINER_INHERIT_ACE 0x02 | Child objects that are containers, such as directories, inherit the | // | | ACE as an effective ACE. The inherited ACE is inheritable unless the | // | | NO_PROPAGATE_INHERIT_ACE bit flag is also set. | // +---------------------------------+----------------------------------------------------------------------------------+ // | FAILED_ACCESS_ACE_FLAG 0x80 | Used with system-audit ACEs in a system access control list (SACL) to generate | // | | audit messages for failed access attempts. | // +---------------------------------+----------------------------------------------------------------------------------+ // | INHERIT_ONLY_ACE 0x08 | Indicates an inherit-only ACE, which does not control access to the object | // | | to which it is attached. If this flag is not set, the ACE is an effective ACE | // | | that controls access to the object to which it is attached. Both effective | // | | and inherit-only ACEs can be inherited depending on the state of the other | // | | inheritance flags. | // +---------------------------------+----------------------------------------------------------------------------------+ // | INHERITED_ACE 0x10 | Used to indicate that the ACE was inherited.<54> See section 2.5.3.5 for | // | | processing rules for setting this flag. | // +---------------------------------+----------------------------------------------------------------------------------+ // | NO_PROPAGATE_INHERIT_ACE 0x04 | If the ACE is inherited by a child object, the system clears the | // | | OBJECT_INHERIT_ACE and CONTAINER_INHERIT_ACE flags in the inherited ACE. This | // | | prevents the ACE from being inherited by subsequent generations of objects. | // +---------------------------------+----------------------------------------------------------------------------------+ // | OBJECT_INHERIT_ACE 0x01 | Noncontainer child objects inherit the ACE as an effective ACE. For child | // | | objects that are containers, the ACE is inherited as an inherit-only ACE unless | // | | the NO_PROPAGATE_INHERIT_ACE bit flag is also set. | // +---------------------------------+----------------------------------------------------------------------------------+ // | SUCCESSFUL_ACCESS_ACE_FLAG 0x40 | Used with system-audit ACEs in a SACL to generate audit messages for successful | // | | access attempts. | // +---------------------------------+----------------------------------------------------------------------------------+ ACEFlags uint8 `idl:"name:AceFlags" json:"ace_flags"` // AceSize (2 bytes): An unsigned 16-bit integer that specifies the size, in bytes, // of the ACE. The AceSize field can be greater than the sum of the individual fields, // but MUST be a multiple of 4 to ensure alignment on a DWORD boundary. In cases where // the AceSize field encompasses additional data for the callback ACEs types, that data // is implementation-specific. Otherwise, this additional data is not interpreted and // MUST be ignored. ACESize uint16 `idl:"name:AceSize" json:"ace_size"` }
ACEHeader structure represents ACE_HEADER RPC structure.
The ACE_HEADER structure defines the type and size of an access control entry (ACE).
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | AceType | AceFlags | AceSize | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
The RPC representation of the ACE_HEADER defines the type and size of an ACE. The members and values are as specified in section 2.4.4.1.
func (*ACEHeader) MarshalNDR ¶
type ACEType ¶ added in v1.0.3
type ACEType uint16
ACEType type represents ACE_TYPE RPC enumeration.
var ( ACETypeAccessAllowedACEType ACEType = 0 ACETypeAccessDeniedACEType ACEType = 1 ACETypeSystemAuditACEType ACEType = 2 ACETypeSystemAlarmACEType ACEType = 3 ACETypeAccessAllowedCompoundACEType ACEType = 4 ACETypeAccessAllowedObjectACEType ACEType = 5 ACETypeAccessDeniedObjectACEType ACEType = 6 ACETypeSystemAuditObjectACEType ACEType = 7 ACETypeSystemAlarmObjectACEType ACEType = 8 ACETypeAccessAllowedCallbackACEType ACEType = 9 ACETypeAccessDeniedCallbackACEType ACEType = 10 ACETypeAccessAllowedCallbackObjectACEType ACEType = 11 ACETypeAccessDeniedCallbackObjectACEType ACEType = 12 ACETypeSystemAuditCallbackACEType ACEType = 13 ACETypeSystemAlarmCallbackACEType ACEType = 14 ACETypeSystemAuditCallbackObjectACEType ACEType = 15 ACETypeSystemAlarmCallbackObjectACEType ACEType = 16 ACETypeSystemMandatoryLabelACEType ACEType = 17 ACETypeSystemResourceAttributeACEType ACEType = 18 ACETypeSystemScopedPolicyIdaceType ACEType = 19 )
type ACL ¶
type ACL struct { // AclRevision (1 byte): An unsigned 8-bit value that specifies the revision of the // ACL. The only two legitimate forms of ACLs supported for on-the-wire management or // manipulation are type 2 and type 4. No other form is valid for manipulation on the // wire. Therefore this field MUST be set to one of the following values. // // +----------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------+----------------------------------------------------------------------------------+ // +----------------------+----------------------------------------------------------------------------------+ // | ACL_REVISION 0x02 | When set to 0x02, only AceTypes 0x00, 0x01, 0x02, 0x03, 0x11, 0x12, and 0x13 can | // | | be present in the ACL. An AceType of 0x11 is used for SACLs but not for DACLs. | // | | For more information about ACE types, see section 2.4.4.1. | // +----------------------+----------------------------------------------------------------------------------+ // | ACL_REVISION_DS 0x04 | When set to 0x04, AceTypes 0x05, 0x06, 0x07, 0x08, and 0x11 are allowed. ACLs | // | | of revision 0x04 are applicable only to directory service objects. An AceType of | // | | 0x11 is used for SACLs but not for DACLs. | // +----------------------+----------------------------------------------------------------------------------+ ACLRevision uint8 `idl:"name:AclRevision" json:"acl_revision"` // Sbz1 (1 byte): An unsigned 8-bit value. This field is reserved and MUST be set to // zero. SBZ1 uint8 `idl:"name:Sbz1" json:"sbz1"` // AclSize (2 bytes): An unsigned 16-bit integer that specifies the size, in bytes, // of the complete ACL, including all ACEs. ACLSize uint16 `idl:"name:AclSize" json:"acl_size"` // AceCount (2 bytes): An unsigned 16-bit integer that specifies the count of the number // of ACE records in the ACL. ACECount uint16 `idl:"name:AceCount" json:"ace_count"` // Sbz2 (2 bytes): An unsigned 16-bit integer. This field is reserved and MUST be set // to zero. SBZ2 uint16 `idl:"name:Sbz2" json:"sbz2"` ACEEntries []*ACE `idl:"name:AceEntries;size_is:(AceCount)" json:"ace_entries"` }
ACL structure represents ACL RPC structure.
The access control list (ACL) packet is used to specify a list of individual access control entries (ACEs). An ACL packet and an array of ACEs comprise a complete access control list.
The individual ACEs in an ACL are numbered from 0 to n, where n+1 is the number of ACEs in the ACL. When editing an ACL, an application refers to an ACE within the ACL by the ACE index.
In the absence of implementation-specific functions to access the individual ACEs, access to each ACE MUST be computed by using the AclSize and AceCount fields to parse the wire packets following the ACL to identify each ACE_HEADER, which in turn contains the information needed to obtain the specific ACEs.
An ACL is said to be in canonical form if:
* All explicit ACEs are placed before inherited ACEs.
* Within the explicit ACEs, deny ACEs come before grant ACEs.
* Deny ACEs on the object come before deny ACEs on a child or property.
* Grant ACEs on the object come before grant ACEs on a child or property.
* Inherited ACEs are placed in the order in which they were inherited.
There are two types of ACL:
* A discretionary access control list (DACL) ( a66edeb1-52a0-4d64-a93b-2f5c833d7d92#gt_d727f612-7a45-48e4-9d87-71735d62b321 ) is controlled by the owner of an object or anyone granted WRITE_DAC access to the object. It specifies the access particular users and groups can have to an object. For example, the owner of a file can use a DACL to control which users and groups can and cannot have access to the file.
* A system access control list (SACL) ( a66edeb1-52a0-4d64-a93b-2f5c833d7d92#gt_c189801e-3752-4715-88f4-17804dad5782 ) is similar to the DACL, except that the SACL is used to audit rather than control access to an object. When an audited action occurs, the operating system records the event in the security log. Each ACE in a SACL has a header that indicates whether auditing is triggered by success, failure, or both; a SID that specifies a particular user or security group to monitor; and an access mask that lists the operations to audit.
The SACL also MAY contain <71> ( 11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_71 ) a label ACE that defines the integrity level of the object.
The only valid ACE types for a SACL are the auditing types (SYSTEM_AUDIT_ACE_TYPE, SYSTEM_AUDIT_OBJECT_ACE_TYPE, SYSTEM_AUDIT_CALLBACK_ACE_TYPE, and SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE), the label type (SYSTEM_MANDATORY_LABEL_ACE_TYPE), the system resource attribute type (SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE), and the scoped policy type (SYSTEM_SCOPED_POLICY_ID_ACE_TYPE), as specified in section 2.4.4.1.
The SACL MUST NOT contain ACEs that belong in the DACL, and the DACL MUST NOT contain ACE types that belong in the SACL. Doing so results in unspecified behavior.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | AclRevision | Sbz1 | AclSize | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | AceCount | Sbz2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
The RPC representation of the ACL data type specifies the elements needed to access a complete access control list, including both the ACL header structure and the array of ACEs. The individual members are as specified in section 2.4.5.
The ACL structure MUST be aligned on a 32-bit boundary.
In the absence of implementation-specific functions to access the individual ACEs, access to each ACE MUST be computed by using the AclSize and AceCount members to parse the memory following the ACL to identify each ACE_HEADER, which in turn contains the information needed to obtain the specific ACEs.
func (*ACL) NDRSizeInfo ¶ added in v1.0.3
type AccessAllowedACE ¶ added in v1.0.3
type AccessAllowedACE struct { // Mask (4 bytes): An ACCESS_MASK that specifies the user rights allowed by this ACE. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` }
AccessAllowedACE structure represents ACCESS_ALLOWED_ACE RPC structure.
The ACCESS_ALLOWED_ACE structure defines an ACE for the discretionary access control list (DACL) that controls access to an object. An access-allowed ACE allows access to an object for a specific trustee identified by a security identifier (SID).
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessAllowedACE) MarshalNDR ¶ added in v1.0.3
func (*AccessAllowedACE) UnmarshalNDR ¶ added in v1.0.3
type AccessAllowedCallbackACE ¶ added in v1.0.3
type AccessAllowedCallbackACE struct { // Mask (4 bytes): An ACCESS_MASK that specifies the user rights allowed by this ACE. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` // ApplicationData (variable): Optional application data. The size of the application // data is determined by the AceSize field of the ACE_HEADER. ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
AccessAllowedCallbackACE structure represents ACCESS_ALLOWED_CALLBACK_ACE RPC structure.
The ACCESS_ALLOWED_CALLBACK_ACE structure defines an ACE for the DACL that controls access to an object. An access-allowed ACE allows access to an object for a specific trustee identified by a SID.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ApplicationData (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessAllowedCallbackACE) MarshalNDR ¶ added in v1.0.3
func (*AccessAllowedCallbackACE) UnmarshalNDR ¶ added in v1.0.3
type AccessAllowedCallbackObjectACE ¶ added in v1.0.3
type AccessAllowedCallbackObjectACE struct { // Mask (4 bytes): An ACCESS_MASK structure that specifies the user rights allowed by // this ACE. // // +----------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CONTROL_ACCESS 0X00000100 | The ObjectType GUID identifies an extended access right. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CREATE_CHILD 0X00000001 | The ObjectType GUID identifies a type of child object. The ACE controls the | // | | trustee's right to create this type of child object. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_READ_PROP 0x00000010 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to read the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_WRITE_PROP 0x00000020 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to write the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_SELF 0x00000008 | The ObjectType GUID identifies a validated write. | // +----------------------------------------+----------------------------------------------------------------------------------+ Mask uint32 `idl:"name:Mask" json:"mask"` // Flags (4 bytes): A 32-bit unsigned integer that specifies a set of bit flags that // indicate whether the ObjectType and InheritedObjectType fields contain valid data. // This parameter can be one or more of the following values. // // +----------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------------+----------------------------------------------------------------------------------+ // | 0x00000000 | Neither ObjectType nor InheritedObjectType are valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_OBJECT_TYPE_PRESENT 0x00000001 | ObjectType is valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002 | InheritedObjectType is valid. If this value is not specified, all types of child | // | | objects can inherit the ACE. | // +----------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` // ObjectType (16 bytes): A GUID that identifies a property set, property, extended // right, or type of child object. The purpose of this GUID depends on the user rights // specified in the Mask field. This field is valid only if the ACE _OBJECT_TYPE_PRESENT // bit is set in the Flags field. Otherwise, the ObjectType field is ignored. ObjectType *ACEGUID `idl:"name:ObjectType;switch_is:(Flags 1 &)" json:"object_type"` // InheritedObjectType (16 bytes): A GUID that identifies the type of child object that // can inherit the ACE. Inheritance is also controlled by the inheritance flags in the // ACE_HEADER, as well as by any protection against inheritance placed on the child // objects. This field is valid only if the ACE_INHERITED_OBJECT_TYPE_PRESENT bit is // set in the Flags member. Otherwise, the InheritedObjectType field is ignored. InheritedObjectType *ACEGUID `idl:"name:InheritedObjectType;switch_is:(Flags 2 &)" json:"inherited_object_type"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` // ApplicationData (variable): Optional application data. The size of the application // data is determined by the AceSize field of the ACE_HEADER. ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
AccessAllowedCallbackObjectACE structure represents ACCESS_ALLOWED_CALLBACK_OBJECT_ACE RPC structure.
The ACCESS_ALLOWED_CALLBACK_OBJECT_ACE structure defines an ACE that controls allowed access to an object, property set, or property. The ACE contains a set of user rights, a GUID that identifies the type of object, and a SID that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Flags | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | InheritedObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ApplicationData (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessAllowedCallbackObjectACE) MarshalNDR ¶ added in v1.0.3
func (*AccessAllowedCallbackObjectACE) UnmarshalNDR ¶ added in v1.0.3
type AccessAllowedObjectACE ¶ added in v1.0.3
type AccessAllowedObjectACE struct { // Mask (4 bytes): An ACCESS_MASK that specifies the user rights allowed by this ACE. // // +----------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CONTROL_ACCESS 0X00000100 | The ObjectType GUID identifies an extended access right. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CREATE_CHILD 0X00000001 | The ObjectType GUID identifies a type of child object. The ACE controls the | // | | trustee's right to create this type of child object. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_DELETE_CHILD 0X00000002 | The ObjectType GUID identifies a type of child object. The ACE controls the | // | | trustee's right to delete this type of child object. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_READ_PROP 0x00000010 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to read the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_WRITE_PROP 0x00000020 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to write the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_SELF 0x00000008 | The ObjectType GUID identifies a validated write. | // +----------------------------------------+----------------------------------------------------------------------------------+ Mask uint32 `idl:"name:Mask" json:"mask"` // Flags (4 bytes): A 32-bit unsigned integer that specifies a set of bit flags that // indicate whether the ObjectType and InheritedObjectType fields contain valid data. // This parameter can be one or more of the following values. // // +----------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------------+----------------------------------------------------------------------------------+ // | 0x00000000 | Neither ObjectType nor InheritedObjectType are valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_OBJECT_TYPE_PRESENT 0x00000001 | ObjectType is valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002 | InheritedObjectType is valid. If this value is not specified, all types of child | // | | objects can inherit the ACE. | // +----------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` // ObjectType (16 bytes): A GUID that identifies a property set, property, extended // right, or type of child object. The purpose of this GUID depends on the user rights // specified in the Mask field. This field is valid only if the ACE _OBJECT_TYPE_PRESENT // bit is set in the Flags field. Otherwise, the ObjectType field is ignored. For information // on access rights and for a mapping of the control access rights to the corresponding // GUID value that identifies each right, see [MS-ADTS] sections 5.1.3.2 and 5.1.3.2.1. // // ACCESS_MASK bits are not mutually exclusive. Therefore, the ObjectType field can // be set in an ACE with any ACCESS_MASK. If the AccessCheck algorithm calls this ACE // and does not find an appropriate GUID, then that ACE will be ignored. For more information // on access checks and object access, see [MS-ADTS] section 5.1.3.3.3. ObjectType *ACEGUID `idl:"name:ObjectType;switch_is:(Flags 1 &)" json:"object_type"` // InheritedObjectType (16 bytes): A GUID that identifies the type of child object that // can inherit the ACE. Inheritance is also controlled by the inheritance flags in the // ACE_HEADER, as well as by any protection against inheritance placed on the child // objects. This field is valid only if the ACE_INHERITED_OBJECT_TYPE_PRESENT bit is // set in the Flags member. Otherwise, the InheritedObjectType field is ignored. InheritedObjectType *ACEGUID `idl:"name:InheritedObjectType;switch_is:(Flags 2 &)" json:"inherited_object_type"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` }
AccessAllowedObjectACE structure represents ACCESS_ALLOWED_OBJECT_ACE RPC structure.
The ACCESS_ALLOWED_OBJECT_ACE structure defines an ACE that controls allowed access to an object, a property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and a SID that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Flags | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | InheritedObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessAllowedObjectACE) MarshalNDR ¶ added in v1.0.3
func (*AccessAllowedObjectACE) UnmarshalNDR ¶ added in v1.0.3
type AccessDeniedACE ¶ added in v1.0.3
type AccessDeniedACE struct { // Mask (4 bytes): An ACCESS_MASK that specifies the user rights denied by this ACE. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` }
AccessDeniedACE structure represents ACCESS_DENIED_ACE RPC structure.
The ACCESS_DENIED_ACE structure defines an ACE for the DACL that controls access to an object. An access-denied ACE denies access to an object for a specific trustee identified by a SID.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessDeniedACE) MarshalNDR ¶ added in v1.0.3
func (*AccessDeniedACE) UnmarshalNDR ¶ added in v1.0.3
type AccessDeniedCallbackACE ¶ added in v1.0.3
type AccessDeniedCallbackACE struct { // Mask (4 bytes): An ACCESS_MASK that specifies the user rights denied by this ACE. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` // ApplicationData (variable): Optional application data. The size of the application // data is determined by the AceSize field of the ACE_HEADER. ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
AccessDeniedCallbackACE structure represents ACCESS_DENIED_CALLBACK_ACE RPC structure.
The ACCESS_DENIED_CALLBACK_ACE structure defines an ACE for the DACL that controls access to an object. An access-denied ACE denies access to an object for a specific trustee identified by a SID.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ApplicationData (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessDeniedCallbackACE) MarshalNDR ¶ added in v1.0.3
func (*AccessDeniedCallbackACE) UnmarshalNDR ¶ added in v1.0.3
type AccessDeniedCallbackObjectACE ¶ added in v1.0.3
type AccessDeniedCallbackObjectACE struct { // Mask (4 bytes): An ACCESS_MASK structure that specifies the user rights denied by // this ACE. // // +----------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CONTROL_ACCESS 0X00000100 | The ObjectType GUID identifies an extended access right. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CREATE_CHILD 0X00000001 | The ObjectType GUID identifies a type of child object. The ACE controls the | // | | trustee's right to create this type of child object. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_READ_PROP 0x00000010 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to read the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_WRITE_PROP 0x00000020 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to write the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_SELF 0x00000008 | The ObjectType GUID identifies a validated write. | // +----------------------------------------+----------------------------------------------------------------------------------+ Mask uint32 `idl:"name:Mask" json:"mask"` // Flags (4 bytes): A 32-bit unsigned integer that specifies a set of bit flags that // indicate whether the ObjectType and InheritedObjectType fields contain valid data. // This parameter can be one or more of the following values. // // +----------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------------+----------------------------------------------------------------------------------+ // | 0x00000000 | Neither ObjectType nor InheritedObjectType are valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_OBJECT_TYPE_PRESENT 0x00000001 | ObjectType is valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002 | InheritedObjectType is valid. If this value is not specified, all types of child | // | | objects can inherit the ACE. | // +----------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` // ObjectType (16 bytes): A GUID that identifies a property set, property, extended // right, or type of child object. The purpose of this GUID depends on the user rights // specified in the Mask field. This field is valid only if the ACE _OBJECT_TYPE_PRESENT // bit is set in the Flags field. Otherwise, the ObjectType field is ignored. ObjectType *ACEGUID `idl:"name:ObjectType;switch_is:(Flags 1 &)" json:"object_type"` // InheritedObjectType (16 bytes): A GUID that identifies the type of child object that // can inherit the ACE. Inheritance is also controlled by the inheritance flags in the // ACE_HEADER, as well as by any protection against inheritance placed on the child // objects. This field is valid only if the ACE_INHERITED_OBJECT_TYPE_PRESENT bit is // set in the Flags member. Otherwise, the InheritedObjectType field is ignored. InheritedObjectType *ACEGUID `idl:"name:InheritedObjectType;switch_is:(Flags 2 &)" json:"inherited_object_type"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` // ApplicationData (variable): Optional application data. The size of the application // data is determined by the AceSize field of the ACE_HEADER. ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
AccessDeniedCallbackObjectACE structure represents ACCESS_DENIED_CALLBACK_OBJECT_ACE RPC structure.
The ACCESS_DENIED_CALLBACK_OBJECT_ACE structure defines an ACE that controls denied access to an object, a property set, or property. The ACE contains a set of user rights, a GUID that identifies the type of object, and a SID that identifies the trustee to whom the system will deny access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Flags | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | InheritedObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ApplicationData (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessDeniedCallbackObjectACE) MarshalNDR ¶ added in v1.0.3
func (*AccessDeniedCallbackObjectACE) UnmarshalNDR ¶ added in v1.0.3
type AccessDeniedObjectACE ¶ added in v1.0.3
type AccessDeniedObjectACE struct { // Mask (4 bytes): An ACCESS_MASK that specifies the user rights allowed by this ACE. // // +----------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CONTROL_ACCESS 0X00000100 | The ObjectType GUID identifies an extended access right. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_CREATE_CHILD 0X00000001 | The ObjectType GUID identifies a type of child object. The ACE controls the | // | | trustee's right to create this type of child object. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_DELETE_CHILD 0X00000002 | The ObjectType GUID identifies a type of child object. The ACE controls the | // | | trustee's right to delete this type of child object. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_READ_PROP 0x00000010 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to read the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_WRITE_PROP 0x00000020 | The ObjectType GUID identifies a property set or property of the object. The ACE | // | | controls the trustee's right to write the property or property set. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | ADS_RIGHT_DS_SELF 0x00000008 | The ObjectType GUID identifies a validated write. | // +----------------------------------------+----------------------------------------------------------------------------------+ Mask uint32 `idl:"name:Mask" json:"mask"` // Flags (4 bytes): A 32-bit unsigned integer that specifies a set of bit flags that // indicate whether the ObjectType and InheritedObjectType fields contain valid data. // This parameter can be one or more of the following values. // // +----------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------------+----------------------------------------------------------------------------------+ // | 0x00000000 | Neither ObjectType nor InheritedObjectType is valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_OBJECT_TYPE_PRESENT 0x00000001 | ObjectType is valid. | // +----------------------------------------------+----------------------------------------------------------------------------------+ // | ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002 | InheritedObjectType is valid. If this value is not specified, all types of child | // | | objects can inherit the ACE. | // +----------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` // ObjectType (16 bytes): A GUID that identifies a property set, a property, an extended // right, or a type of child object. The purpose of this GUID depends on the user rights // specified in the Mask field. This field is valid only if the ACE _OBJECT_TYPE_PRESENT // bit is set in the Flags field. Otherwise, the ObjectType field is ignored. For information // about access rights and for a mapping of the control access rights to the corresponding // GUID value that identifies each right, see [MS-ADTS] sections 5.1.3.2 and 5.1.3.2.1. ObjectType *ACEGUID `idl:"name:ObjectType;switch_is:(Flags 1 &)" json:"object_type"` // InheritedObjectType (16 bytes): A GUID that identifies the type of child object that // can inherit the ACE. Inheritance is also controlled by the inheritance flags in the // ACE_HEADER, as well as by any protection against inheritance placed on the child // objects. This field is valid only if the ACE_INHERITED_OBJECT_TYPE_PRESENT bit is // set in the Flags member. Otherwise, the InheritedObjectType field is ignored. InheritedObjectType *ACEGUID `idl:"name:InheritedObjectType;switch_is:(Flags 2 &)" json:"inherited_object_type"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. SID *SID `idl:"name:Sid" json:"sid"` }
AccessDeniedObjectACE structure represents ACCESS_DENIED_OBJECT_ACE RPC structure.
The ACCESS_DENIED_OBJECT_ACE structure defines an ACE that controls denied access to an object, a property set, or a property. The ACE contains a set of access rights, a GUID that identifies the type of object, and a SID that identifies the trustee to whom the system will deny access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Flags | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | InheritedObjectType (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*AccessDeniedObjectACE) MarshalNDR ¶ added in v1.0.3
func (*AccessDeniedObjectACE) UnmarshalNDR ¶ added in v1.0.3
type ClaimSecurityAttributeOctetStringRelative ¶
type ClaimSecurityAttributeOctetStringRelative struct { // Length: The length, in bytes, of the value contained in the OctetString field. Length uint32 `idl:"name:Length" json:"length"` // OctetString: An array of bytes containing the octet string value. The length of // the value is specified by the Length field. OctetString []byte `idl:"name:OctetString" json:"octet_string"` }
ClaimSecurityAttributeOctetStringRelative structure represents CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE RPC structure.
The CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE structure specifies an octet string.<78>
func (*ClaimSecurityAttributeOctetStringRelative) MarshalNDR ¶
func (*ClaimSecurityAttributeOctetStringRelative) NDRSizeInfo ¶
func (o *ClaimSecurityAttributeOctetStringRelative) NDRSizeInfo() []uint64
func (*ClaimSecurityAttributeOctetStringRelative) UnmarshalNDR ¶
type ClaimSecurityAttributeRelativeV1 ¶
type ClaimSecurityAttributeRelativeV1 struct { // Name: A DWORD value indicating an offset from the beginning of the CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 // structure to a string of Unicode characters containing the name of the claim security // attribute. The string MUST be at least 4 bytes in length. Name uint32 `idl:"name:Name" json:"name"` // ValueType: A union tag value indicating the type of information referred to by the // Values member. The Values member MUST be an array of offsets from the beginning of // the CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 structure to the specified ValueType. ValueType // MUST be one of the following values: // // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64 0x0001 | Values member refers to an array of offsets to LONG64 value(s). | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64 0x0002 | Values member refers to an array of offsets to ULONG64 value(s). | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING 0x0003 | Values member refers to an array of offsets to Unicode character string | // | | value(s). | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_TYPE_SID 0x0005 | The Values member refers to an array of offsets to | // | | CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE value(s) where the OctetString | // | | value is a SID string. | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN 0x0006 | The Values member refers to an array of offsets to ULONG64 values where each | // | | element indicates a Boolean value. The value 1 indicates TRUE, and the value 0 | // | | indicates FALSE. | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING 0x0010 | Values member contains an array of | // | | CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE value(s) as specified in section | // | | 2.4.10.2. | // +---------------------------------------------------+----------------------------------------------------------------------------------+ ValueType uint16 `idl:"name:ValueType" json:"value_type"` // Flags: The upper two bytes of this DWORD are available for application-specific // data. The two lowest-order bits in the lower of these two bytes are reserved. These // two bytes MAY<75> contain only one of the following values in those two bits: // // +----------------------------------------------------+-----------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------------------+-----------------------------------------------------------------------+ // +----------------------------------------------------+-----------------------------------------------------------------------+ // | FCI_CLAIM_SECURITY_ATTRIBUTE_MANUAL 0x0001 | The CLAIM_SECURITY_ATTRIBUTE has been manually assigned | // +----------------------------------------------------+-----------------------------------------------------------------------+ // | FCI_CLAIM_SECURITY_ATTRIBUTE_POLICY_DERIVED 0x0002 | The CLAIM_SECURITY_ATTRIBUTE has been determined by a central policy. | // +----------------------------------------------------+-----------------------------------------------------------------------+ // // The lower two bytes of this DWORD MUST be zero or a bitwise combination of one or // more of the following values:<76> // // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------------------------------------------------+----------------------------------------------------------------------------------+ // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE 0x0001 | This claim security attribute is not inherited across processes.<77> | // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE 0x0002 | The value of the claim security attribute is case sensitive. This flag is valid | // | | for values that contain string types. | // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY 0x0004 | Reserved for future use. | // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT 0x0008 | The claim security attribute is disabled by default. | // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_DISABLED 0x0010 | Reserved for future use. | // +------------------------------------------------------+----------------------------------------------------------------------------------+ // | CLAIM_SECURITY_ATTRIBUTE_MANDATORY 0x0020 | The claim security attribute is mandatory. | // +------------------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` // ValueCount: The number of values contained in the Values member. ValueCount uint32 `idl:"name:ValueCount" json:"value_count"` // Values: An array of offsets from the beginning of the CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 // structure. Each offset indicates the location of a claim security attribute value // of type specified in the ValueType member. Values *ClaimSecurityAttributeRelativeV1_Values `idl:"name:Values" json:"values"` // contains filtered or unexported fields }
ClaimSecurityAttributeRelativeV1 structure represents CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 RPC structure.
The CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 structure defines a resource attribute that is defined in contiguous memory for persistence within a serialized Security Descriptor.
func (*ClaimSecurityAttributeRelativeV1) MarshalNDR ¶
func (*ClaimSecurityAttributeRelativeV1) UnmarshalNDR ¶
type ClaimSecurityAttributeRelativeV1_Values ¶
type ClaimSecurityAttributeRelativeV1_Values struct { Int64 []int64 `idl:"name:pInt64" json:"int64"` Uint64 []uint64 `idl:"name:pUint64" json:"uint64"` String []string `idl:"name:ppString" json:"string"` OctetString []*ClaimSecurityAttributeOctetStringRelative `idl:"name:pOctetString" json:"octet_string"` }
type EventDescriptor ¶
type EventDescriptor struct { // Id: The event identifier. ID uint16 `idl:"name:Id" json:"id"` // Version: The version of the event, which indicates a revision to the event definition. // The Version and Id members uniquely identify the event within the scope of a provider. Version uint8 `idl:"name:Version" json:"version"` // Channel: Defines the audience for the event (for example, administrator or developer). Channel uint8 `idl:"name:Channel" json:"channel"` // Level: Specifies the severity or level of detail included in the event (for example, // informational or fatal). Level uint8 `idl:"name:Level" json:"level"` // Opcode: Identifies a step in a sequence of operations being performed within a Task. Opcode uint8 `idl:"name:Opcode" json:"opcode"` // Task: Identifies a larger unit of work within an application or component (broader // in scope than the Opcode). Task uint16 `idl:"name:Task" json:"task"` // Keyword: A bitmask that specifies a logical group of related events. Each bit corresponds // to one group. An event can belong to one or more groups. The keyword can contain // one or more provider-defined keywords, standard keywords, or both. // // This structure represents an event defined in a manifest and is included in the EVENT_HEADER // structure. Keyword uint64 `idl:"name:Keyword" json:"keyword"` }
EventDescriptor structure represents EVENT_DESCRIPTOR RPC structure.
The EVENT_DESCRIPTOR structure specifies the metadata that defines an event.
func (*EventDescriptor) MarshalNDR ¶
func (*EventDescriptor) UnmarshalNDR ¶
type EventHeader ¶
type EventHeader struct { // Size: Size of the event record, in bytes. Size uint16 `idl:"name:Size" json:"size"` // HeaderType: Reserved. HeaderType uint16 `idl:"name:HeaderType" json:"header_type"` // Flags: Flags that provide information about the event such as the type of session // it was logged to and whether the event contains extended data. This member can contain // one or more of the following flags. // // +-----------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-----------------------------------+----------------------------------------------------------------------------------+ // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_EXTENDED_INFO | The ExtendedData member of the event record contains data. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_PRIVATE_SESSION | The event was logged to a private session. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_STRING_ONLY | The event data is a null-terminated Unicode string. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_TRACE_MESSAGE | The provider used an implementation-specific trace message function to log the | // | | event. Typically indicates that the event was written by the Windows software | // | | trace preprocessor. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_NO_CPUTIME | Indicates that elapsed execution time was not recorded; the ProcessorTime member | // | | can be used to determine the elapsed execution time. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_32_BIT_HEADER | Indicates that the provider was running on a 32-bit computer or in a WOW64 | // | | session. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_64_BIT_HEADER | Indicates that the provider was running on a 64-bit computer. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_DECODE_GUID | Indicates that the ProviderId member of the event record is a decode GUID rather | // | | than a control GUID.<2> | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_CLASSIC_HEADER | Indicates that provider used a trace event function to log the event. | // +-----------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_FLAG_PROCESSOR_INDEX | If this flag is set, the identifier for the CPU that logged the event MUST be | // | | accessed using the ProcessorIndex member of the BufferContext member of the | // | | event record. If this flag is not set, the identifier for the CPU that logged | // | | the event MUST be read from the ProcessorNumber member of the BufferContext | // | | member of the event record.<3> | // +-----------------------------------+----------------------------------------------------------------------------------+ Flags uint16 `idl:"name:Flags" json:"flags"` // EventProperty: Indicates the source to use for parsing the event data. // // +---------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_PROPERTY_XML | Indicates that you need a manifest to parse the event data. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_PROPERTY_FORWARDED_XML | Indicates that the event data contains within itself a fully rendered XML | // | | description of the data, so you do not need a manifest to parse the event data. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG | Indicates that you need a WMI MOF class to parse the event data. | // +---------------------------------------+----------------------------------------------------------------------------------+ EventProperty uint16 `idl:"name:EventProperty" json:"event_property"` // ThreadId: Identifies the thread that generated the event. ThreadID uint32 `idl:"name:ThreadId" json:"thread_id"` // ProcessId: Identifies the process that generated the event. ProcessID uint32 `idl:"name:ProcessId" json:"process_id"` // TimeStamp: Contains the time that the event occurred. The resolution is system time // unless the ProcessTraceMode member of EVENT_TRACE_LOGFILE contains the PROCESS_TRACE_MODE_RAW_TIMESTAMP // flag, in which case the resolution depends on the value of the Wnode.ClientContext // member of EVENT_TRACE_PROPERTIES at the time the controller created the session. Timestamp *LargeInteger `idl:"name:TimeStamp" json:"timestamp"` // ProviderId: GUID that uniquely identifies the provider that logged the event. ProviderID *GUID `idl:"name:ProviderId" json:"provider_id"` // EventDescriptor: Defines information about the event such as the event identifier // and severity level. EventDescriptor *EventDescriptor `idl:"name:EventDescriptor" json:"event_descriptor"` Field10 *EventHeader_Field10 `idl:"name:" json:""` // ActivityId: Identifier that relates two events. // // The KernelTime and UserTime members can be used to determine the CPU cost in units // for a set of instructions (the values indicate the CPU usage charged to that thread // at the time of logging). For example, if Event A and Event B are consecutively logged // by the same thread and they have CPU usage numbers 150 and 175, then the activity // that was performed by that thread between events A and B cost 25 CPU time units (175 // – 150). ActivityID *GUID `idl:"name:ActivityId" json:"activity_id"` }
EventHeader structure represents EVENT_HEADER RPC structure.
The EVENT_HEADER structure defines the main parameters of an event.
func (*EventHeader) MarshalNDR ¶
func (*EventHeader) UnmarshalNDR ¶
type EventHeader_Field10 ¶
type EventHeader_Field10 struct { Field1 *EventHeader_Field10_Field1 `idl:"name:" json:""` // ProcessorTime: For private sessions, the elapsed execution time for user-mode instructions, // in CPU ticks. ProcessorTime uint64 `idl:"name:ProcessorTime" json:"processor_time"` }
type EventHeader_Field10_Field1 ¶
type EventHeader_Field10_Field1 struct { // KernelTime: Elapsed execution time for kernel-mode instructions, in CPU time units. // For private sessions, the value in the ProcessorTime member can be used instead. KernelTime uint32 `idl:"name:KernelTime" json:"kernel_time"` // UserTime: Elapsed execution time for user-mode instructions, in CPU time units. // For private sessions, the value in the ProcessorTime member can be used instead. UserTime uint32 `idl:"name:UserTime" json:"user_time"` }
EventHeader_Field10_Field1 structure represents EVENT_HEADER structure anonymous member.
The EVENT_HEADER structure defines the main parameters of an event.
func (*EventHeader_Field10_Field1) MarshalNDR ¶
func (*EventHeader_Field10_Field1) UnmarshalNDR ¶
type Filetime ¶
type Filetime struct { // dwLowDateTime: A 32-bit unsigned integer that contains the low-order bits of the // file time. LowDateTime uint32 `idl:"name:dwLowDateTime" json:"low_date_time"` // dwHighDateTime: A 32-bit unsigned integer that contains the high-order bits of the // file time. HighDateTime uint32 `idl:"name:dwHighDateTime" json:"high_date_time"` }
Filetime structure represents FILETIME RPC structure.
The FILETIME structure is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since January 1, 1601, Coordinated Universal Time (UTC).
func (*Filetime) DecodeBinary ¶
func (*Filetime) MarshalJSON ¶
func (*Filetime) MarshalNDR ¶
type GUID ¶
type GUID struct { // Data1 (4 bytes): The value of the Data1 member (section 2.3.4), in little-endian // byte order. // // Data1: This member is generally treated as an opaque value. This member is equivalent // to the time_low field of a DCE UUID ([C706] section A.1). Data1 uint32 `idl:"name:Data1" json:"data1"` // Data2 (2 bytes): The value of the Data2 member (section 2.3.4), in little-endian // byte order. // // Data2: This member is generally treated as an opaque value. This member is equivalent // to the time_mid field of a DCE UUID ([C706] section A.1). Data2 uint16 `idl:"name:Data2" json:"data2"` // Data3 (2 bytes): The value of the Data3 member (section 2.3.4), in little-endian // byte order. // // Data3: This member is generally treated as an opaque value. This member is equivalent // to the time_hi_and_version field of a DCE UUID ([C706] section A.1). Data3 uint16 `idl:"name:Data3" json:"data3"` // Data4 (8 bytes): The value of the Data4 member (section 2.3.4), in little-endian // byte order. // // Data4: This array is generally treated as a sequence of opaque values. This member // is equivalent to the following sequence of fields of a DCE UUID ([C706] section A.1) // in this order: clock_seq_hi_and_reserved, clock_seq_low, and the sequence of bytes // in the node field. Data4 []byte `idl:"name:Data4" json:"data4"` }
GUID structure represents GUID RPC structure.
The packet version is used within block protocols. The following diagram represents a GUID as an opaque sequence of bytes.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Data1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Data2 | Data3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Data4 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
The following structure is an IDL representation of GUID equivalent to and compatible with a DCE UUID ([C706] section A.1) according to the following mappings.
func GUIDFromBytes ¶ added in v1.0.1
func GUIDFromUUID ¶
func (*GUID) MarshalJSON ¶
type LUID ¶
type LUID struct { // LowPart: The low-order bits of the structure. LowPart uint32 `idl:"name:LowPart" json:"low_part"` // HighPart: The high-order bits of the structure. HighPart int32 `idl:"name:HighPart" json:"high_part"` }
LUID structure represents LUID RPC structure.
The LUID structure is 64-bit value guaranteed to be unique only on the system on which it was generated. The uniqueness of a locally unique identifier (LUID) is guaranteed only until the system is restarted.
type LargeInteger ¶
type LargeInteger struct {
QuadPart int64 `idl:"name:QuadPart" json:"quad_part"`
}
LargeInteger structure represents LARGE_INTEGER RPC structure.
The LARGE_INTEGER structure is used to represent a 64-bit signed integer value.
func (*LargeInteger) MarshalNDR ¶
func (*LargeInteger) UnmarshalNDR ¶
type MandatoryInformation ¶
type MandatoryInformation struct { // AllowedAccess: The AllowedAccess member specifies the access mask that is used to // encode the user rights to an object. AllowedAccess uint32 `idl:"name:AllowedAccess" json:"allowed_access"` // WriteAllowed: Specifies write properties for the object. WriteAllowed bool `idl:"name:WriteAllowed" json:"write_allowed"` // ReadAllowed: Specifies read properties for the object. ReadAllowed bool `idl:"name:ReadAllowed" json:"read_allowed"` // ExecuteAllowed: Specifies execution properties for the object. ExecuteAllowed bool `idl:"name:ExecuteAllowed" json:"execute_allowed"` // MandatoryPolicy: Specifies the integrity policy for the object. MandatoryPolicy *TokenMandatoryPolicy `idl:"name:MandatoryPolicy" json:"mandatory_policy"` }
MandatoryInformation structure represents MANDATORY_INFORMATION RPC structure.
The MANDATORY_INFORMATION structure defines mandatory security information for a securable object.
func (*MandatoryInformation) MarshalNDR ¶
func (*MandatoryInformation) UnmarshalNDR ¶
type Multistring ¶
type Multistring struct { // Value: A data buffer, which is a string literal containing multiple null-terminated // strings serially. Value string `idl:"name:Value" json:"value"` // nChar: The length, in characters, including the two terminating nulls. CharCount uint32 `idl:"name:nChar" json:"char_count"` }
Multistring structure represents MULTI_SZ RPC structure.
The MULTI_SZ structure defines an implementation-specific<4> type that contains a sequence of null-terminated strings, terminated by an empty string (\0) so that the last two characters are both null terminators.
func (*Multistring) MarshalNDR ¶
func (*Multistring) UnmarshalNDR ¶
type ObjectTypeList ¶
type ObjectTypeList struct { // Level: Specifies the level of the object type in the hierarchy of an object and // its sub-objects. Level zero indicates the object itself. Level one indicates a sub-object // of the object, such as a property set. Level two indicates a sub-object of the level // one sub-object, such as a property. There can be a maximum of five levels numbered // zero through four. // // +------------------------------+--------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------------------------+--------------------------------------------+ // +------------------------------+--------------------------------------------+ // | ACCESS_OBJECT_GUID 0x0 | Indicates the object itself at level zero. | // +------------------------------+--------------------------------------------+ // | ACCESS_PROPERTY_SET_GUID 0x1 | Indicates a property set at level one. | // +------------------------------+--------------------------------------------+ // | ACCESS_PROPERTY_GUID 0x2 | Indicates a property at level two. | // +------------------------------+--------------------------------------------+ // | ACCESS_MAX_LEVEL 0x4 | Maximum level. | // +------------------------------+--------------------------------------------+ Level uint16 `idl:"name:Level" json:"level"` // Remaining: Remaining access bits for this element, used by the access check algorithm, // as specified in section 2.5.3.2. Remaining uint32 `idl:"name:Remaining" json:"remaining"` // ObjectType: A pointer to the GUID for the object or sub-object. ObjectType *GUID `idl:"name:ObjectType" json:"object_type"` }
ObjectTypeList structure represents OBJECT_TYPE_LIST RPC structure.
The OBJECT_TYPE_LIST structure identifies an object type element in a hierarchy of object types. The Access Check Algorithm Pseudocode functions (section 2.5.3.2) use an array of OBJECT_TYPE_LIST structures to define a hierarchy of an object and its sub-objects, such as property sets and properties.
func (*ObjectTypeList) MarshalNDR ¶
func (*ObjectTypeList) UnmarshalNDR ¶
type RawACE ¶ added in v1.0.3
type RawACE struct {
RawData []byte `idl:"name:RawData" json:"raw_data"`
}
RawACE structure represents RAW_ACE RPC structure.
func (*RawACE) MarshalNDR ¶ added in v1.0.3
type SID ¶
type SID struct { // Revision: An 8-bit unsigned integer that specifies the revision level of the SID. // This value MUST be set to 0x01. Revision uint8 `idl:"name:Revision" json:"revision"` // SubAuthorityCount: An 8-bit unsigned integer that specifies the number of elements // in the SubAuthority array. The maximum number of elements allowed is 15. SubAuthorityCount uint8 `idl:"name:SubAuthorityCount" json:"sub_authority_count"` // IdentifierAuthority: An RPC_SID_IDENTIFIER_AUTHORITY structure that indicates the // authority under which the SID was created. It describes the entity that created the // SID. The Identifier Authority value {0,0,0,0,0,5} denotes SIDs created by the NT // SID authority. IDAuthority *SIDIDAuthority `idl:"name:IdentifierAuthority" json:"id_authority"` // SubAuthority: A variable length array of unsigned 32-bit integers that uniquely // identifies a principal relative to the IdentifierAuthority. Its length is determined // by SubAuthorityCount. SubAuthority []uint32 `idl:"name:SubAuthority;size_is:(SubAuthorityCount)" json:"sub_authority"` }
SID structure represents RPC_SID RPC structure.
The RPC_SID structure is an IDL representation of the SID type (as specified in section 2.4.2) for use by RPC-based protocols.
func (*SID) DecodeBinary ¶
func (*SID) MarshalJSON ¶
func (*SID) NDRSizeInfo ¶
type SIDIDAuthority ¶
type SIDIDAuthority struct {
Value []byte `idl:"name:Value" json:"value"`
}
SIDIDAuthority structure represents RPC_SID_IDENTIFIER_AUTHORITY RPC structure.
The RPC_SID_IDENTIFIER_AUTHORITY structure is a representation of a security identifier (SID) authority, as specified by the SID_IDENTIFIER_AUTHORITY structure. This structure is defined in IDL as follows.
For individual member semantics of the SID_IDENTIFIER_AUTHORITY structure, see section 2.4.1.
func (*SIDIDAuthority) MarshalNDR ¶
func (*SIDIDAuthority) UnmarshalNDR ¶
type SecurityDescriptor ¶
type SecurityDescriptor struct { // Revision (1 byte): An unsigned 8-bit value that specifies the revision of the SECURITY_DESCRIPTOR // structure. This field MUST be set to one. // // Revision: As specified in section 2.4.6. Revision uint8 `idl:"name:Revision" json:"revision"` // Sbz1 (1 byte): An unsigned 8-bit value with no meaning unless the Control RM bit // is set to 0x1. If the RM bit is set to 0x1, Sbz1 is interpreted as the resource manager // control bits that contain specific information<73> for the specific resource manager // that is accessing the structure. The permissible values and meanings of these bits // are determined by the implementation of the resource manager. // // Sbz1: As specified in section 2.4.6. SBZ1 uint8 `idl:"name:Sbz1" json:"sbz1"` // Control (2 bytes): An unsigned 16-bit field that specifies control access bit flags. // The Self Relative (SR) bit MUST be set when the security descriptor is in self-relative // format. // // +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ // | | | | | | | | | | | | | | | | | // | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | // | | | | | | | | | | | 0 | | | | | | // | | | | | | | | | | | | | | | | | // +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ // +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ // | S R | R M | P S | P D | S I | D I | S C | D C | S S | D T | S D | S P | D D | D P | G D | O D | // +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ // // Where the bits are defined as: // // +---------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | DESCRIPTION | // | | | // +---------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------+----------------------------------------------------------------------------------+ // | SR Self-Relative | Set when the security descriptor is in self-relative format. Cleared when the | // | | security descriptor is in absolute format. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | RM RM Control Valid | Set to 0x1 when the Sbz1 field is to be interpreted as resource manager control | // | | bits. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | PS SACL Protected | Set when the SACL will be protected from inherit operations. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | PD DACL Protected | Set when the DACL will be protected from inherit operations. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | SI SACL Auto-Inherited | Set when the SACL was created through inheritance. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DI DACL Auto-Inherited | Set when the DACL was created through inheritance. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | SC SACL Computed Inheritance Required | Set when the SACL is to be computed through inheritance. When both SC and SI are | // | | set, the resulting security descriptor sets SI; the SC setting is not preserved. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DC DACL Computed Inheritance Required | Set when the DACL is to be computed through inheritance. When both DC and DI are | // | | set, the resulting security descriptor sets DI; the DC setting is not preserved. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | SS Server Security | Set when the caller wants the system to create a Server ACL based on the input | // | | ACL, regardless of its source (explicit or defaulting). | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DT DACL Trusted | Set when the ACL that is pointed to by the DACL field was provided by a trusted | // | | source and does not require any editing of compound ACEs. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | SD SACL Defaulted | Set when the SACL was established by default means. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | SP SACL Present | Set when the SACL is present on the object. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DD DACL Defaulted | Set when the DACL was established by default means. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DP DACL Present | Set when the DACL is present on the object. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | GD Group Defaulted | Set when the group was established by default means. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | OD Owner Defaulted | Set when the owner was established by default means. | // +---------------------------------------+----------------------------------------------------------------------------------+ // // Control: As specified in section 2.4.6. Control uint16 `idl:"name:Control" json:"control"` // OffsetOwner (4 bytes): An unsigned 32-bit integer that specifies the offset to the // SID. This SID specifies the owner of the object to which the security descriptor // is associated. This must be a valid offset if the OD flag is not set. If this field // is set to zero, the OwnerSid field MUST not be present. OffsetOwner uint32 `idl:"name:OffsetOwner" json:"offset_owner"` // OffsetGroup (4 bytes): An unsigned 32-bit integer that specifies the offset to the // SID. This SID specifies the group of the object to which the security descriptor // is associated. This must be a valid offset if the GD flag is not set. If this field // is set to zero, the GroupSid field MUST not be present. OffsetGroup uint32 `idl:"name:OffsetGroup" json:"offset_group"` // OffsetSacl (4 bytes): An unsigned 32-bit integer that specifies the offset to the // ACL that contains system ACEs. Typically, the system ACL contains auditing ACEs (such // as SYSTEM_AUDIT_ACE, SYSTEM_AUDIT_CALLBACK_ACE, or SYSTEM_AUDIT_CALLBACK_OBJECT_ACE), // and at most one Label ACE (as specified in section 2.4.4.13). This must be a valid // offset if the SP flag is set; if the SP flag is not set, this field MUST be set to // zero. If this field is set to zero, the Sacl field MUST not be present. OffsetSACL uint32 `idl:"name:OffsetSacl" json:"offset_sacl"` // OffsetDacl (4 bytes): An unsigned 32-bit integer that specifies the offset to the // ACL that contains ACEs that control access. Typically, the DACL contains ACEs that // grant or deny access to principals or groups. This must be a valid offset if the // DP flag is set; if the DP flag is not set, this field MUST be set to zero. If this // field is set to zero, the Dacl field MUST not be present. OffsetDACL uint32 `idl:"name:OffsetDacl" json:"offset_dacl"` // Owner: Pointer to the Owner SID (OwnerSid), as specified in section 2.4.6. Owner *SID `idl:"name:Owner" json:"owner"` // Group: Pointer to the Group SID (GroupSid), as specified in section 2.4.6. Group *SID `idl:"name:Group" json:"group"` // Sacl (variable): The SACL of the object. The length of the SID MUST be a multiple // of 4. This field MUST be present if the SP flag is set. // // Sacl: Pointer to the Sacl, as specified in section 2.4.6. SACL *ACL `idl:"name:Sacl" json:"sacl"` // Dacl (variable): The DACL of the object. The length of the SID MUST be a multiple // of 4. This field MUST be present if the DP flag is set. // // Dacl: Pointer to the Dacl, as specified in section 2.4.6. DACL *ACL `idl:"name:Dacl" json:"dacl"` }
SecurityDescriptor structure represents SECURITY_DESCRIPTOR RPC structure.
The SECURITY_DESCRIPTOR structure defines the security attributes of an object. These attributes specify who owns the object; who can access the object and what they can do with it; what level of audit logging can be applied to the object; and what kind of restrictions apply to the use of the security descriptor.
Security descriptors appear in one of two forms, absolute or self-relative.
A security descriptor is said to be in absolute format if it stores all of its security information via pointer fields, as specified in the RPC representation in section 2.4.6.1.
A security descriptor is said to be in self-relative format if it stores all of its security information in a contiguous block of memory and expresses all of its pointer fields as offsets from its beginning. The order of appearance of pointer target fields is not required to be in any particular order; the location of the OwnerSid, GroupSid, Sacl, and/or Dacl is only based on OffsetOwner, OffsetGroup, OffsetSacl, and/or OffsetDacl pointers found in the fixed portion of the relative security descriptor.<72>
The self-relative form of the security descriptor is required if one wants to transmit the SECURITY_DESCRIPTOR structure as an opaque data structure for transmission in communication protocols over a wire, or for storage on secondary media; the absolute form cannot be transmitted because it contains pointers to objects that are generally not accessible to the recipient.
When a self-relative security descriptor is transmitted over a wire, it is sent in little-endian format and requires no padding.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Revision | Sbz1 | Control | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OffsetOwner | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OffsetGroup | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OffsetSacl | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OffsetDacl | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OwnerSid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | GroupSid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sacl (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Dacl (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
The RPC representation of the SECURITY_DESCRIPTOR structure defines the in-memory representation of the SECURITY_DESCRIPTOR message. The individual member semantics for the Revision, Sbz1, Control, Owner, Group, Sacl and Dacl members are as specified in section 2.4.6, with the exceptions that Owner corresponds to OwnerSid, and Group corresponds to GroupSid, respectively.
func (*SecurityDescriptor) MarshalNDR ¶
func (*SecurityDescriptor) Parse ¶ added in v1.0.3
func (o *SecurityDescriptor) Parse(b []byte) error
func (*SecurityDescriptor) UnmarshalNDR ¶
type ServerInfo100 ¶
type ServerInfo100 struct { // sv100_platform_id: Specifies the information level to use for platform-specific // information. // // +-----------------+-------+ // | | | // | NAME | VALUE | // | | | // +-----------------+-------+ // +-----------------+-------+ // | PLATFORM_ID_DOS | 300 | // +-----------------+-------+ // | PLATFORM_ID_OS2 | 400 | // +-----------------+-------+ // | PLATFORM_ID_NT | 500 | // +-----------------+-------+ // | PLATFORM_ID_OSF | 600 | // +-----------------+-------+ // | PLATFORM_ID_VMS | 700 | // +-----------------+-------+ PlatformID uint32 `idl:"name:sv100_platform_id" json:"platform_id"` // sv100_name: A pointer to a null-terminated Unicode UTF-16 Internet host name or // NetBIOS host name of a server. Name string `idl:"name:sv100_name;string" json:"name"` }
ServerInfo100 structure represents SERVER_INFO_100 RPC structure.
The SERVER_INFO_100 structure contains information about the specified server, including the name and platform.
func (*ServerInfo100) MarshalNDR ¶
func (*ServerInfo100) UnmarshalNDR ¶
type ServerInfo101 ¶
type ServerInfo101 struct { // sv101_platform_id: Specifies the information level to use for platform-specific // information. // // +-----------------+-------+ // | | | // | NAME | VALUE | // | | | // +-----------------+-------+ // +-----------------+-------+ // | PLATFORM_ID_DOS | 300 | // +-----------------+-------+ // | PLATFORM_ID_OS2 | 400 | // +-----------------+-------+ // | PLATFORM_ID_NT | 500 | // +-----------------+-------+ // | PLATFORM_ID_OSF | 600 | // +-----------------+-------+ // | PLATFORM_ID_VMS | 700 | // +-----------------+-------+ PlatformID uint32 `idl:"name:sv101_platform_id" json:"platform_id"` // sv101_name: A pointer to a null-terminated Unicode UTF-16 Internet host name or // NetBIOS host name of a server. Name string `idl:"name:sv101_name;string" json:"name"` // sv101_version_major: Specifies the major release version number of the operating // system. The server MUST set this field to an implementation-specific major release // version number that corresponds to the host operating system as specified in the // following table. // // +-----------------------------------------+---------------+ // | OPERATING | MAJOR | // | SYSTEM | VERSION | // +-----------------------------------------+---------------+ // +-----------------------------------------+---------------+ // | Windows NT 4.0 operating system | 4 | // +-----------------------------------------+---------------+ // | Windows 2000 operating system | 5 | // +-----------------------------------------+---------------+ // | Windows XP operating system | 5 | // +-----------------------------------------+---------------+ // | Windows Server 2003 operating system | 5 | // +-----------------------------------------+---------------+ // | Windows Vista operating system | 6 | // +-----------------------------------------+---------------+ // | Windows Server 2008 operating system | 6 | // +-----------------------------------------+---------------+ // | Windows Server 2008 R2 operating system | 6 | // +-----------------------------------------+---------------+ VersionMajor uint32 `idl:"name:sv101_version_major" json:"version_major"` // sv101_version_minor: Specifies the minor release version number of the operating // system. The server MUST set this field to an implementation-specific minor release // version number that corresponds to the host operating system as specified in the // following table. // // +------------------------+---------------+ // | OPERATING | MINOR | // | SYSTEM | VERSION | // +------------------------+---------------+ // +------------------------+---------------+ // | Windows NT 4.0 | 0 | // +------------------------+---------------+ // | Windows 2000 | 0 | // +------------------------+---------------+ // | Windows XP | 1 | // +------------------------+---------------+ // | Windows Server 2003 | 2 | // +------------------------+---------------+ // | Windows Vista | 0 | // +------------------------+---------------+ // | Windows Server 2008 | 0 | // +------------------------+---------------+ // | Windows Server 2008 R2 | 1 | // +------------------------+---------------+ VersionMinor uint32 `idl:"name:sv101_version_minor" json:"version_minor"` // sv101_version_type: The sv101_version_type field specifies the SV_TYPE flags, which // indicate the software services that are available (but not necessarily running) on // the server. This member MUST be a combination of one or more of the following values. // // +--------------------------------------+----------------------------------------------------------------------------------+ // | | | // | CONSTANT/VALUE | DESCRIPTION | // | | | // +--------------------------------------+----------------------------------------------------------------------------------+ // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_WORKSTATION 0x00000001 | A server running the WorkStation Service. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_SERVER 0x00000002 | A server running the Server Service. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_SQLSERVER 0x00000004 | A server running SQL Server. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_DOMAIN_CTRL 0x00000008 | A primary domain controller. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_DOMAIN_BAKCTRL 0x00000010 | A backup domain controller. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_TIME_SOURCE 0x00000020 | A server is available as a time source for network time synchronization. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_AFP 0x00000040 | An Apple File Protocol server. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_NOVELL 0x00000080 | A Novell server. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_DOMAIN_MEMBER 0x00000100 | A LAN Manager 2.x domain member. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_PRINTQ_SERVER 0x00000200 | A server sharing print queue. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_DIALIN_SERVER 0x00000400 | A server running a dial-in service. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_XENIX_SERVER 0x00000800 | A Xenix server. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_NT 0x00001000 | Windows Server 2003, Windows XP, Windows 2000, or Windows NT operating system. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_WFW 0x00002000 | A server running Windows for Workgroups. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_SERVER_MFPN 0x00004000 | Microsoft File and Print for NetWare. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_SERVER_NT 0x00008000 | Windows Server 2003, Windows 2000 Server operating system, or a server that is | // | | not a domain controller. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_POTENTIAL_BROWSER 0x00010000 | A server that can run the browser service. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_BACKUP_BROWSER 0x00020000 | A server running a browser service as backup. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_MASTER_BROWSER 0x00040000 | A server running the master browser service. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_DOMAIN_MASTER 0x00080000 | A server running the domain master browser. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_WINDOWS 0x00400000 | Windows Millennium Edition operating system, Windows 98 operating system, or | // | | Windows 95. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_TERMINALSERVER 0x02000000 | Terminal Server. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_CLUSTER_VS_NT 0x04000000 | Cluster virtual servers available in the domain. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_LOCAL_LIST_ONLY 0x40000000 | Servers maintained by the browser. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_DOMAIN_ENUM 0x80000000 | Primary domain. | // +--------------------------------------+----------------------------------------------------------------------------------+ // | SV_TYPE_ALL 0xFFFFFFFF | All servers. | // +--------------------------------------+----------------------------------------------------------------------------------+ VersionType uint32 `idl:"name:sv101_version_type" json:"version_type"` // sv101_comment: A pointer to a null-terminated Unicode UTF-16 string that specifies // a comment that describes the server. Comment string `idl:"name:sv101_comment;string" json:"comment"` }
ServerInfo101 structure represents SERVER_INFO_101 RPC structure.
The SERVER_INFO_101 structure contains information about the specified server, including the name, platform, type of server, and associated software.
func (*ServerInfo101) MarshalNDR ¶
func (*ServerInfo101) UnmarshalNDR ¶
type SystemAuditACE ¶ added in v1.0.3
type SystemAuditACE struct { // Mask (4 bytes): An ACCESS_MASK structure that specifies the user rights that cause // audit messages to be generated. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. An access attempt of a kind specified by the Mask field by any trustee whose SID // matches the Sid field causes the system to generate an audit message. If an application // does not specify a SID for this field, audit messages are generated for the specified // access rights for all trustees. SID *SID `idl:"name:Sid" json:"sid"` }
SystemAuditACE structure represents SYSTEM_AUDIT_ACE RPC structure.
The SYSTEM_AUDIT_ACE structure defines an access ACE for the system access control list (SACL) that specifies what types of access cause system-level notifications. A system-audit ACE causes an audit message to be logged when a specified trustee attempts to gain access to an object. The trustee is identified by a SID.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*SystemAuditACE) MarshalNDR ¶ added in v1.0.3
func (*SystemAuditACE) UnmarshalNDR ¶ added in v1.0.3
type SystemAuditCallbackACE ¶ added in v1.0.3
type SystemAuditCallbackACE struct { // Mask (4 bytes): An ACCESS_MASK structure that specifies the user rights that cause // audit messages to be generated. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. An access attempt of a kind specified by the Mask field by any trustee whose SID // matches the Sid field causes the system to generate an audit message. If an application // does not specify a SID for this field, audit messages are generated for the specified // access rights for all trustees. SID *SID `idl:"name:Sid" json:"sid"` // ApplicationData (variable): Optional application data. The size of the application // data is determined by the AceSize field of the ACE_HEADER. ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
SystemAuditCallbackACE structure represents SYSTEM_AUDIT_CALLBACK_ACE RPC structure.
The SYSTEM_AUDIT_CALLBACK_ACE structure defines an ACE for the SACL that specifies what types of access cause system-level notifications. A system-audit ACE causes an audit message to be logged when a specified trustee attempts to gain access to an object. The trustee is identified by a SID.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ApplicationData (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*SystemAuditCallbackACE) MarshalNDR ¶ added in v1.0.3
func (*SystemAuditCallbackACE) UnmarshalNDR ¶ added in v1.0.3
type SystemAuditCallbackObjectACE ¶ added in v1.0.3
type SystemAuditCallbackObjectACE struct { Mask uint32 `idl:"name:Mask" json:"mask"` Flags uint32 `idl:"name:Flags" json:"flags"` ObjectType *ACEGUID `idl:"name:ObjectType;switch_is:(Flags 1 &)" json:"object_type"` InheritedObjectType *ACEGUID `idl:"name:InheritedObjectType;switch_is:(Flags 2 &)" json:"inherited_object_type"` SID *SID `idl:"name:Sid" json:"sid"` ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
SystemAuditCallbackObjectACE structure represents SYSTEM_AUDIT_CALLBACK_OBJECT_ACE RPC structure.
func (*SystemAuditCallbackObjectACE) MarshalNDR ¶ added in v1.0.3
func (*SystemAuditCallbackObjectACE) UnmarshalNDR ¶ added in v1.0.3
type SystemAuditObjectACE ¶ added in v1.0.3
type SystemAuditObjectACE struct { Mask uint32 `idl:"name:Mask" json:"mask"` Flags uint32 `idl:"name:Flags" json:"flags"` ObjectType *ACEGUID `idl:"name:ObjectType;switch_is:(Flags 1 &)" json:"object_type"` InheritedObjectType *ACEGUID `idl:"name:InheritedObjectType;switch_is:(Flags 2 &)" json:"inherited_object_type"` SID *SID `idl:"name:Sid" json:"sid"` ApplicationData []byte `idl:"name:ApplicationData" json:"application_data"` }
SystemAuditObjectACE structure represents SYSTEM_AUDIT_OBJECT_ACE RPC structure.
func (*SystemAuditObjectACE) MarshalNDR ¶ added in v1.0.3
func (*SystemAuditObjectACE) UnmarshalNDR ¶ added in v1.0.3
type SystemMandatoryLabelACE ¶
type SystemMandatoryLabelACE struct { // Mask (4 bytes): An ACCESS_MASK structure that specifies the access policy for principals // with a mandatory integrity level lower than the object associated with the SACL that // contains this ACE. // // +-------------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------------------------------------------------+----------------------------------------------------------------------------------+ // +-------------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_MANDATORY_LABEL_NO_WRITE_UP 0x00000001 | A principal with a lower mandatory level than the object cannot write to the | // | | object. | // +-------------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_MANDATORY_LABEL_NO_READ_UP 0x00000002 | A principal with a lower mandatory level than the object cannot read the object. | // +-------------------------------------------------+----------------------------------------------------------------------------------+ // | SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP 0x00000004 | A principal with a lower mandatory level than the object cannot execute the | // | | object. | // +-------------------------------------------------+----------------------------------------------------------------------------------+ // // Mask: An ACCESS_MASK as specified in section 2.4.4.13. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID of a trustee. The length of the SID MUST be a multiple of // 4. The identifier authority of the SID must be SECURITY_MANDATORY_LABEL_AUTHORITY. // The RID of the SID specifies the mandatory integrity level of the object associated // with the SACL that contains this ACE. The RID must be one of the following values. // // +------------+------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+------------------------------------+ // +------------+------------------------------------+ // | 0x00000000 | Untrusted integrity level. | // +------------+------------------------------------+ // | 0x00001000 | Low integrity level. | // +------------+------------------------------------+ // | 0x00002000 | Medium integrity level. | // +------------+------------------------------------+ // | 0x00003000 | High integrity level. | // +------------+------------------------------------+ // | 0x00004000 | System integrity level. | // +------------+------------------------------------+ // | 0x00005000 | Protected process integrity level. | // +------------+------------------------------------+ SID *SID `idl:"name:Sid" json:"sid"` }
SystemMandatoryLabelACE structure represents SYSTEM_MANDATORY_LABEL_ACE RPC structure.
The SYSTEM_MANDATORY_LABEL_ACE structure defines an ACE for the SACL that specifies the mandatory access level and policy for a securable object.<55>
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
The RPC representation of the SYSTEM_MANDATORY_LABEL_ACE type defines an access control entry (ACE) for the system access control list (SACL) that specifies the mandatory access level and policy for a securable object.
func (*SystemMandatoryLabelACE) MarshalNDR ¶
func (*SystemMandatoryLabelACE) UnmarshalNDR ¶
type SystemResourceAttributeACE ¶ added in v1.0.3
type SystemResourceAttributeACE struct { // Mask (4 bytes): An ACCESS_MASK that MUST be set to zero. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): The SID corresponding to the Everyone SID (S-1-1-0) in binary form. SID *SID `idl:"name:Sid" json:"sid"` AttributeData []byte `idl:"name:AttributeData" json:"attribute_data"` }
SystemResourceAttributeACE structure represents SYSTEM_RESOURCE_ATTRIBUTE_ACE RPC structure.
The SYSTEM_RESOURCE_ATTRIBUTE_ACE structure defines an ACE for the specification of a resource attribute associated with an object. A SYSTEM_RESOURCE_ATTRIBUTE_ACE is used in conditional ACEs in specifying access or audit policy for the resource.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Attribute Data (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*SystemResourceAttributeACE) MarshalNDR ¶ added in v1.0.3
func (*SystemResourceAttributeACE) UnmarshalNDR ¶ added in v1.0.3
type SystemScopedPolicyIDACE ¶ added in v1.0.3
type SystemScopedPolicyIDACE struct { // Mask (4 bytes): An ACCESS_MASK that MUST be set to zero. Mask uint32 `idl:"name:Mask" json:"mask"` // Sid (variable): A SID that identifies a central access policy. For a SYSTEM_SCOPED_POLICY_ID_ACE // to be applicable on a resource, this SID MUST match a CAPID of a CentralAccessPolicy // contained in the CentralAccessPoliciesList (as specified in [MS-GPCAP] section 3.2.1.1) // of the machine on which the access evaluation will be performed. SID *SID `idl:"name:Sid" json:"sid"` }
SystemScopedPolicyIDACE structure represents SYSTEM_SCOPED_POLICY_ID_ACE RPC structure.
The SYSTEM_SCOPED_POLICY_ID_ACE structure defines an ACE for the purpose of applying a central access policy to the resource.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Mask | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Sid (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*SystemScopedPolicyIDACE) MarshalNDR ¶ added in v1.0.3
func (*SystemScopedPolicyIDACE) UnmarshalNDR ¶ added in v1.0.3
type SystemTime ¶
type SystemTime struct { Year uint16 `idl:"name:wYear" json:"year"` Month uint16 `idl:"name:wMonth" json:"month"` DayOfWeek uint16 `idl:"name:wDayOfWeek" json:"day_of_week"` Day uint16 `idl:"name:wDay" json:"day"` Hour uint16 `idl:"name:wHour" json:"hour"` Minute uint16 `idl:"name:wMinute" json:"minute"` Second uint16 `idl:"name:wSecond" json:"second"` Milliseconds uint16 `idl:"name:wMilliseconds" json:"milliseconds"` }
SystemTime structure represents SYSTEMTIME RPC structure.
The SYSTEMTIME structure is a date and time, in Coordinated Universal Time (UTC), represented by using individual WORD-sized structure members for the month, day, year, day of week, hour, minute, second, and millisecond.
func (*SystemTime) AsTime ¶
func (s *SystemTime) AsTime() time.Time
func (*SystemTime) MarshalNDR ¶
func (*SystemTime) UnmarshalNDR ¶
type TokenMandatoryPolicy ¶
type TokenMandatoryPolicy struct { // Policy: The Policy member contains a value denoting the mandatory integrity policy // of the token; these values are mutually exclusive. // // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | TOKEN_MANDATORY_POLICY_OFF 0x00000000 | No mandatory integrity policy is enforced for the token. | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | TOKEN_MANDATORY_POLICY_NO_WRITE_UP 0x00000001 | A process associated with the token cannot write to objects that have a greater | // | | mandatory integrity level. | // +---------------------------------------------------+----------------------------------------------------------------------------------+ // | TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN 0x00000002 | A process created with the token has an integrity level that is the lesser of | // | | the parent-process integrity level and the executable-file integrity level. | // +---------------------------------------------------+----------------------------------------------------------------------------------+ Policy uint32 `idl:"name:Policy" json:"policy"` }
TokenMandatoryPolicy structure represents TOKEN_MANDATORY_POLICY RPC structure.
The TOKEN_MANDATORY_POLICY structure specifies the mandatory integrity policy for a token.
func (*TokenMandatoryPolicy) MarshalNDR ¶
func (*TokenMandatoryPolicy) UnmarshalNDR ¶
type UUID ¶
type UUID struct { Data1 uint32 `idl:"name:Data1" json:"data1"` Data2 uint16 `idl:"name:Data2" json:"data2"` Data3 uint16 `idl:"name:Data3" json:"data3"` Data4 []byte `idl:"name:Data4" json:"data4"` }
UUID structure represents UUID RPC structure.
type Uint128 ¶
type Uint128 struct { Lower uint64 `idl:"name:lower" json:"lower"` Upper uint64 `idl:"name:upper" json:"upper"` }
Uint128 structure represents UINT128 RPC structure.
The UINT128 structure is intended to hold 128-bit unsigned integers, such as an IPv6 destination address.
type UlargeInteger ¶
type UlargeInteger struct {
QuadPart uint64 `idl:"name:QuadPart" json:"quad_part"`
}
UlargeInteger structure represents ULARGE_INTEGER RPC structure.
The ULARGE_INTEGER structure is used to represent a 64-bit unsigned integer value.
func (*UlargeInteger) MarshalNDR ¶
func (*UlargeInteger) UnmarshalNDR ¶
type UnicodeString ¶
type UnicodeString struct { // Length: The length, in bytes, of the string pointed to by the Buffer member. The // length MUST be a multiple of 2. The length MUST equal the entire size of the buffer. Length uint16 `idl:"name:Length" json:"length"` // MaximumLength: The maximum size, in bytes, of the string pointed to by Buffer. The // size MUST be a multiple of 2. If not, the size MUST be decremented by 1 prior to // use. This value MUST not be less than Length. MaximumLength uint16 `idl:"name:MaximumLength" json:"maximum_length"` // Buffer: A pointer to a string buffer. The string pointed to by the buffer member // MUST NOT include a terminating null character. Buffer string `idl:"name:Buffer;size_is:((MaximumLength/2));length_is:((Length/2))" json:"buffer"` }
UnicodeString structure represents RPC_UNICODE_STRING RPC structure.
The RPC_UNICODE_STRING structure specifies a Unicode string. This structure is defined in IDL as follows: