dtyp

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2024 License: MIT Imports: 14 Imported by: 4

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

View Source
const ACEInheritedObjectTypePresent = 0x00000002

ACEInheritedObjectTypePresent represents the ACE_INHERITED_OBJECT_TYPE_PRESENT RPC constant

View Source
const ACEObjectTypePresent = 0x00000001

ACEObjectTypePresent represents the ACE_OBJECT_TYPE_PRESENT RPC constant

View Source
const AccessMaskAccessSystemSecurity = 0x01000000

AccessMaskAccessSystemSecurity represents the ACCESS_MASK_ACCESS_SYSTEM_SECURITY RPC constant

View Source
const AccessMaskDSControlAccess = 0x00000100

AccessMaskDSControlAccess represents the ACCESS_MASK_DS_CONTROL_ACCESS RPC constant

View Source
const AccessMaskDSCreateChild = 0x00000001

AccessMaskDSCreateChild represents the ACCESS_MASK_DS_CREATE_CHILD RPC constant

View Source
const AccessMaskDSDeleteChild = 0x00000002

AccessMaskDSDeleteChild represents the ACCESS_MASK_DS_DELETE_CHILD RPC constant

View Source
const AccessMaskDSReadProperty = 0x00000010

AccessMaskDSReadProperty represents the ACCESS_MASK_DS_READ_PROP RPC constant

View Source
const AccessMaskDSSelf = 0x00000008

AccessMaskDSSelf represents the ACCESS_MASK_DS_SELF RPC constant

View Source
const AccessMaskDSWriteProperty = 0x00000020

AccessMaskDSWriteProperty represents the ACCESS_MASK_DS_WRITE_PROP RPC constant

View Source
const AccessMaskDelete = 0x00010000

AccessMaskDelete represents the ACCESS_MASK_DELETE RPC constant

View Source
const AccessMaskGenericAll = 0x10000000

AccessMaskGenericAll represents the ACCESS_MASK_GENERIC_ALL RPC constant

View Source
const AccessMaskGenericExecute = 0x20000000

AccessMaskGenericExecute represents the ACCESS_MASK_GENERIC_EXECUTE RPC constant

View Source
const AccessMaskGenericRead = 0x80000000

AccessMaskGenericRead represents the ACCESS_MASK_GENERIC_READ RPC constant

View Source
const AccessMaskGenericWrite = 0x40000000

AccessMaskGenericWrite represents the ACCESS_MASK_GENERIC_WRITE RPC constant

View Source
const AccessMaskMaximumAllowed = 0x02000000

AccessMaskMaximumAllowed represents the ACCESS_MASK_MAXIMUM_ALLOWED RPC constant

View Source
const AccessMaskReadControl = 0x00020000

AccessMaskReadControl represents the ACCESS_MASK_READ_CONTROL RPC constant

View Source
const AccessMaskSynchronize = 0x00100000

AccessMaskSynchronize represents the ACCESS_MASK_SYNCHRONIZE RPC constant

View Source
const AccessMaskWriteDACL = 0x00040000

AccessMaskWriteDACL represents the ACCESS_MASK_WRITE_DACL RPC constant

View Source
const AccessMaskWriteOwner = 0x00080000

AccessMaskWriteOwner represents the ACCESS_MASK_WRITE_OWNER RPC constant

View Source
const DACLAutoInherited = 0x0400

DACLAutoInherited represents the DACL_AUTO_INHERITED RPC constant

View Source
const DACLComputedInheritanceRequired = 0x0100

DACLComputedInheritanceRequired represents the DACL_COMPUTED_INHERITANCE_REQUIRED RPC constant

View Source
const DACLDefaulted = 0x0008

DACLDefaulted represents the DACL_DEFAULTED RPC constant

View Source
const DACLPresent = 0x0004

DACLPresent represents the DACL_PRESENT RPC constant

View Source
const DACLProtected = 0x1000

DACLProtected represents the DACL_PROTECTED RPC constant

View Source
const DACLTrusted = 0x0040

DACLTrusted represents the DACL_TRUSTED RPC constant

View Source
const DomainAliasRIDAccessControlAssistanceOperations = 0x00000243

DomainAliasRIDAccessControlAssistanceOperations represents the DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS RPC constant

View Source
const DomainAliasRIDAccountOperations = 0x00000224

DomainAliasRIDAccountOperations represents the DOMAIN_ALIAS_RID_ACCOUNT_OPS RPC constant

View Source
const DomainAliasRIDAdmins = 0x00000220

DomainAliasRIDAdmins represents the DOMAIN_ALIAS_RID_ADMINS RPC constant

View Source
const DomainAliasRIDAuthorizationAccess = 0x00000230

DomainAliasRIDAuthorizationAccess represents the DOMAIN_ALIAS_RID_AUTHORIZATION_ACCESS RPC constant

View Source
const DomainAliasRIDBackupOperations = 0x00000227

DomainAliasRIDBackupOperations represents the DOMAIN_ALIAS_RID_BACKUP_OPS RPC constant

View Source
const DomainAliasRIDCacheablePrincipalsGroup = 0x0000023B

DomainAliasRIDCacheablePrincipalsGroup represents the DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP RPC constant

View Source
const DomainAliasRIDCertServiceDCOMAccessGroup = 0x0000023E

DomainAliasRIDCertServiceDCOMAccessGroup represents the DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP RPC constant

View Source
const DomainAliasRIDCryptoOperators = 0x00000239

DomainAliasRIDCryptoOperators represents the DOMAIN_ALIAS_RID_CRYPTO_OPERATORS RPC constant

View Source
const DomainAliasRIDDCOMUsers = 0x00000232

DomainAliasRIDDCOMUsers represents the DOMAIN_ALIAS_RID_DCOM_USERS RPC constant

View Source
const DomainAliasRIDDefaultAccount = 0x00000245

DomainAliasRIDDefaultAccount represents the DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT RPC constant

View Source
const DomainAliasRIDDeviceOwners = 0x00000247

DomainAliasRIDDeviceOwners represents the DOMAIN_ALIAS_RID_DEVICE_OWNERS RPC constant

View Source
const DomainAliasRIDEventLogReadersGroup = 0x0000023D

DomainAliasRIDEventLogReadersGroup represents the DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP RPC constant

View Source
const DomainAliasRIDGuests = 0x00000222

DomainAliasRIDGuests represents the DOMAIN_ALIAS_RID_GUESTS RPC constant

View Source
const DomainAliasRIDHyperVAdmins = 0x00000242

DomainAliasRIDHyperVAdmins represents the DOMAIN_ALIAS_RID_HYPER_V_ADMINS RPC constant

View Source
const DomainAliasRIDIncomingForestTrustBuilders = 0x0000022D

DomainAliasRIDIncomingForestTrustBuilders represents the DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS RPC constant

View Source
const DomainAliasRIDInternetUsers = 0x00000238

DomainAliasRIDInternetUsers represents the DOMAIN_ALIAS_RID_INTERNET_USERS RPC constant

View Source
const DomainAliasRIDLoggingUsers = 0x0000022F

DomainAliasRIDLoggingUsers represents the DOMAIN_ALIAS_RID_LOGGING_USERS RPC constant

View Source
const DomainAliasRIDMonitoringUsers = 0x0000022E

DomainAliasRIDMonitoringUsers represents the DOMAIN_ALIAS_RID_MONITORING_USERS RPC constant

View Source
const DomainAliasRIDNetworkConfigurationOperations = 0x0000022C

DomainAliasRIDNetworkConfigurationOperations represents the DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS RPC constant

View Source
const DomainAliasRIDNonCacheablePrincipalsGroup = 0x0000023C

DomainAliasRIDNonCacheablePrincipalsGroup represents the DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP RPC constant

View Source
const DomainAliasRIDPowerUsers = 0x00000223

DomainAliasRIDPowerUsers represents the DOMAIN_ALIAS_RID_POWER_USERS RPC constant

View Source
const DomainAliasRIDPreW2KCompAccess = 0x0000022A

DomainAliasRIDPreW2KCompAccess represents the DOMAIN_ALIAS_RID_PRE_W2K_COMP_ACCESS RPC constant

View Source
const DomainAliasRIDPrintOperations = 0x00000226

DomainAliasRIDPrintOperations represents the DOMAIN_ALIAS_RID_PRINT_OPS RPC constant

View Source
const DomainAliasRIDRASServers = 0x00000229

DomainAliasRIDRASServers represents the DOMAIN_ALIAS_RID_RAS_SERVERS RPC constant

View Source
const DomainAliasRIDRDSEndpointServers = 0x00000240

DomainAliasRIDRDSEndpointServers represents the DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS RPC constant

View Source
const DomainAliasRIDRDSManagementServers = 0x00000241

DomainAliasRIDRDSManagementServers represents the DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS RPC constant

View Source
const DomainAliasRIDRDSRemoteAccessServers = 0x0000023F

DomainAliasRIDRDSRemoteAccessServers represents the DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS RPC constant

View Source
const DomainAliasRIDRemoteDesktopUsers = 0x0000022B

DomainAliasRIDRemoteDesktopUsers represents the DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS RPC constant

View Source
const DomainAliasRIDRemoteManagementUsers = 0x00000244

DomainAliasRIDRemoteManagementUsers represents the DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS RPC constant

View Source
const DomainAliasRIDReplicator = 0x00000228

DomainAliasRIDReplicator represents the DOMAIN_ALIAS_RID_REPLICATOR RPC constant

View Source
const DomainAliasRIDStorageReplicaAdmins = 0x00000246

DomainAliasRIDStorageReplicaAdmins represents the DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS RPC constant

View Source
const DomainAliasRIDSystemOperations = 0x00000225

DomainAliasRIDSystemOperations represents the DOMAIN_ALIAS_RID_SYSTEM_OPS RPC constant

View Source
const DomainAliasRIDTSLicenseServers = 0x00000231

DomainAliasRIDTSLicenseServers represents the DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS RPC constant

View Source
const DomainAliasRIDUsers = 0x00000221

DomainAliasRIDUsers represents the DOMAIN_ALIAS_RID_USERS RPC constant

View Source
const DomainGroupRIDAdmins = 0x00000200

DomainGroupRIDAdmins represents the DOMAIN_GROUP_RID_ADMINS RPC constant

View Source
const DomainGroupRIDCDCReserved = 0x0000020C

DomainGroupRIDCDCReserved represents the DOMAIN_GROUP_RID_CDC_RESERVED RPC constant

View Source
const DomainGroupRIDCertAdmins = 0x00000205

DomainGroupRIDCertAdmins represents the DOMAIN_GROUP_RID_CERT_ADMINS RPC constant

View Source
const DomainGroupRIDCloneableControllers = 0x0000020A

DomainGroupRIDCloneableControllers represents the DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS RPC constant

View Source
const DomainGroupRIDComputers = 0x00000203

DomainGroupRIDComputers represents the DOMAIN_GROUP_RID_COMPUTERS RPC constant

View Source
const DomainGroupRIDControllers = 0x00000204

DomainGroupRIDControllers represents the DOMAIN_GROUP_RID_CONTROLLERS RPC constant

View Source
const DomainGroupRIDEnterpriseAdmins = 0x00000207

DomainGroupRIDEnterpriseAdmins represents the DOMAIN_GROUP_RID_ENTERPRISE_ADMINS RPC constant

View Source
const DomainGroupRIDEnterpriseKeyAdmins = 0x0000020F

DomainGroupRIDEnterpriseKeyAdmins represents the DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS RPC constant

View Source
const DomainGroupRIDEnterpriseReadonlyDomainControllers = 0x000001F2

DomainGroupRIDEnterpriseReadonlyDomainControllers represents the DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS RPC constant

View Source
const DomainGroupRIDGuests = 0x00000202

DomainGroupRIDGuests represents the DOMAIN_GROUP_RID_GUESTS RPC constant

View Source
const DomainGroupRIDKeyAdmins = 0x0000020E

DomainGroupRIDKeyAdmins represents the DOMAIN_GROUP_RID_KEY_ADMINS RPC constant

View Source
const DomainGroupRIDPolicyAdmins = 0x00000208

DomainGroupRIDPolicyAdmins represents the DOMAIN_GROUP_RID_POLICY_ADMINS RPC constant

View Source
const DomainGroupRIDProtectedUsers = 0x0000020D

DomainGroupRIDProtectedUsers represents the DOMAIN_GROUP_RID_PROTECTED_USERS RPC constant

View Source
const DomainGroupRIDReadonlyControllers = 0x00000209

DomainGroupRIDReadonlyControllers represents the DOMAIN_GROUP_RID_READONLY_CONTROLLERS RPC constant

View Source
const DomainGroupRIDSchemaAdmins = 0x00000206

DomainGroupRIDSchemaAdmins represents the DOMAIN_GROUP_RID_SCHEMA_ADMINS RPC constant

View Source
const DomainGroupRIDUsers = 0x00000201

DomainGroupRIDUsers represents the DOMAIN_GROUP_RID_USERS RPC constant

View Source
const DomainUserRIDAdmin = 0x000001F4

DomainUserRIDAdmin represents the DOMAIN_USER_RID_ADMIN RPC constant

View Source
const DomainUserRIDDefaultAccount = 0x000001F7

DomainUserRIDDefaultAccount represents the DOMAIN_USER_RID_DEFAULT_ACCOUNT RPC constant

View Source
const DomainUserRIDGuest = 0x000001F5

DomainUserRIDGuest represents the DOMAIN_USER_RID_GUEST RPC constant

View Source
const DomainUserRIDKRBTGT = 0x000001F6

DomainUserRIDKRBTGT represents the DOMAIN_USER_RID_KRBTGT RPC constant

View Source
const GroupDefaulted = 0x0002

GroupDefaulted represents the GROUP_DEFAULTED RPC constant

View Source
const OwnerDefaulted = 0x0001

OwnerDefaulted represents the OWNER_DEFAULTED RPC constant

View Source
const RIDHighIntegrityLevel = 0x00003000

RIDHighIntegrityLevel represents the RID_HIGH_INTEGRITY_LEVEL RPC constant

View Source
const RIDLowIntegrityLevel = 0x00001000

RIDLowIntegrityLevel represents the RID_LOW_INTEGRITY_LEVEL RPC constant

View Source
const RIDMediumIntegrityLevel = 0x00002000

RIDMediumIntegrityLevel represents the RID_MEDIUM_INTEGRITY_LEVEL RPC constant

View Source
const RIDProtectedProcessIntegrityLevel = 0x00005000

RIDProtectedProcessIntegrityLevel represents the RID_PROTECTED_PROCESS_INTEGRITY_LEVEL RPC constant

View Source
const RIDSystemIntegrityLevel = 0x00004000

RIDSystemIntegrityLevel represents the RID_SYSTEM_INTEGRITY_LEVEL RPC constant

View Source
const RMControlValid = 0x4000

RMControlValid represents the RM_CONTROL_VALID RPC constant

View Source
const SACLAutoInherited = 0x0800

SACLAutoInherited represents the SACL_AUTO_INHERITED RPC constant

View Source
const SACLComputedInheritanceRequired = 0x0200

SACLComputedInheritanceRequired represents the SACL_COMPUTED_INHERITANCE_REQUIRED RPC constant

View Source
const SACLDefaulted = 0x0020

SACLDefaulted represents the SACL_DEFAULTED RPC constant

View Source
const SACLPresent = 0x0010

SACLPresent represents the SACL_PRESENT RPC constant

View Source
const SACLProtected = 0x2000

SACLProtected represents the SACL_PROTECTED RPC constant

View Source
const SecurityCreatorGroupRID = 0x00000001

SecurityCreatorGroupRID represents the SECURITY_CREATOR_GROUP_RID RPC constant

View Source
const SecurityCreatorOwnerRID = 0x00000000

SecurityCreatorOwnerRID represents the SECURITY_CREATOR_OWNER_RID RPC constant

View Source
const SecurityCreatorSIDAuthority = 0x00000003

SecurityCreatorSIDAuthority represents the SECURITY_CREATOR_SID_AUTHORITY RPC constant

View Source
const SecurityLocalLogonRID = 0x00000001

SecurityLocalLogonRID represents the SECURITY_LOCAL_LOGON_RID RPC constant

View Source
const SecurityLocalRID = 0x00000000

SecurityLocalRID represents the SECURITY_LOCAL_RID RPC constant

View Source
const SecurityLocalSIDAuthority = 0x00000002

SecurityLocalSIDAuthority represents the SECURITY_LOCAL_SID_AUTHORITY RPC constant

View Source
const SecurityMandatoryHighRID = 0x00003000

SecurityMandatoryHighRID represents the SECURITY_MANDATORY_HIGH_RID RPC constant

View Source
const SecurityMandatoryLowRID = 0x00001000

SecurityMandatoryLowRID represents the SECURITY_MANDATORY_LOW_RID RPC constant

View Source
const SecurityMandatoryMediumPlusRID = 0x00002100

SecurityMandatoryMediumPlusRID represents the SECURITY_MANDATORY_MEDIUM_PLUS_RID RPC constant

View Source
const SecurityMandatoryMediumRID = 0x00002000

SecurityMandatoryMediumRID represents the SECURITY_MANDATORY_MEDIUM_RID RPC constant

View Source
const SecurityMandatoryProtectedProcessRID = 0x00005000

SecurityMandatoryProtectedProcessRID represents the SECURITY_MANDATORY_PROTECTED_PROCESS_RID RPC constant

View Source
const SecurityMandatorySystemRID = 0x00004000

SecurityMandatorySystemRID represents the SECURITY_MANDATORY_SYSTEM_RID RPC constant

View Source
const SecurityMandatoryUntrustedRID = 0x00000000

SecurityMandatoryUntrustedRID represents the SECURITY_MANDATORY_UNTRUSTED_RID RPC constant

View Source
const SecurityNTAuthority = 0x00000005

SecurityNTAuthority represents the SECURITY_NT_AUTHORITY RPC constant

View Source
const SecurityNullRID = 0x00000000

SecurityNullRID represents the SECURITY_NULL_RID RPC constant

View Source
const SecurityNullSIDAuthority = 0x00000000

SecurityNullSIDAuthority represents the SECURITY_NULL_SID_AUTHORITY RPC constant

View Source
const SecurityWorldRID = 0x00000000

SecurityWorldRID represents the SECURITY_WORLD_RID RPC constant

View Source
const SecurityWorldSIDAuthority = 0x00000001

SecurityWorldSIDAuthority represents the SECURITY_WORLD_SID_AUTHORITY RPC constant

View Source
const SelfRelative = 0x8000

SelfRelative represents the SELF_RELATIVE RPC constant

View Source
const ServerSecurity = 0x0080

ServerSecurity represents the SERVER_SECURITY RPC constant

View Source
const SystemMandatoryLabelNoExecuteUp = 0x00000004

SystemMandatoryLabelNoExecuteUp represents the SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP RPC constant

View Source
const SystemMandatoryLabelNoReadUp = 0x00000002

SystemMandatoryLabelNoReadUp represents the SYSTEM_MANDATORY_LABEL_NO_READ_UP RPC constant

View Source
const SystemMandatoryLabelNoWriteUp = 0x00000001

SystemMandatoryLabelNoWriteUp represents the SYSTEM_MANDATORY_LABEL_NO_WRITE_UP RPC constant

Variables

View Source
var ACEFlagContainerInheritACE = 2

ACEFlagContainerInheritACE represents the ACE_FLAG_CONTAINER_INHERIT_ACE RPC constant

View Source
var ACEFlagFailedAccessACEFlag = 128

ACEFlagFailedAccessACEFlag represents the ACE_FLAG_FAILED_ACCESS_ACE_FLAG RPC constant

View Source
var ACEFlagInheritOnlyACE = 8

ACEFlagInheritOnlyACE represents the ACE_FLAG_INHERIT_ONLY_ACE RPC constant

View Source
var ACEFlagInheritedACE = 16

ACEFlagInheritedACE represents the ACE_FLAG_INHERITED_ACE RPC constant

View Source
var ACEFlagNoPropagateInheritACE = 4

ACEFlagNoPropagateInheritACE represents the ACE_FLAG_NO_PROPAGATE_INHERIT_ACE RPC constant

View Source
var ACEFlagObjectInheritACE = 1

ACEFlagObjectInheritACE represents the ACE_FLAG_OBJECT_INHERIT_ACE RPC constant

View Source
var ACEFlagSuccessfulAccessACEFlag = 64

ACEFlagSuccessfulAccessACEFlag represents the ACE_FLAG_SUCCESSFUL_ACCESS_ACE_FLAG RPC constant

View Source
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

func (o *ACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACE) UnmarshalNDR added in v1.0.3

func (o *ACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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) GetValue added in v1.0.3

func (o *ACEData) GetValue() any

func (*ACEData) MarshalUnionNDR added in v1.0.3

func (o *ACEData) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint8) error

func (*ACEData) NDRSwitchValue added in v1.0.3

func (o *ACEData) NDRSwitchValue(sw uint8) uint8

func (*ACEData) UnmarshalUnionNDR added in v1.0.3

func (o *ACEData) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint8) error

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 (o *ACEData_AccessAllowedACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACEData_AccessAllowedACE) UnmarshalNDR added in v1.0.3

func (o *ACEData_AccessAllowedACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ACEData_AccessDeniedACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACEData_AccessDeniedACE) UnmarshalNDR added in v1.0.3

func (o *ACEData_AccessDeniedACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *ACEData_AccessDeniedObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ACEData_RawACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACEData_RawACE) UnmarshalNDR added in v1.0.3

func (o *ACEData_RawACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ACEData_SystemAuditACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACEData_SystemAuditACE) UnmarshalNDR added in v1.0.3

func (o *ACEData_SystemAuditACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *ACEData_SystemAuditObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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) GetValue added in v1.0.3

func (o *ACEGUID) GetValue() any

func (*ACEGUID) MarshalJSON added in v1.0.3

func (o *ACEGUID) MarshalJSON() ([]byte, error)

func (*ACEGUID) MarshalUnionNDR added in v1.0.3

func (o *ACEGUID) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ACEGUID) NDRSwitchValue added in v1.0.3

func (o *ACEGUID) NDRSwitchValue(sw uint32) uint32

func (*ACEGUID) UnmarshalUnionNDR added in v1.0.3

func (o *ACEGUID) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

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 (o *ACEGUID_GUID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACEGUID_GUID) UnmarshalNDR added in v1.0.3

func (o *ACEGUID_GUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *ACEHeader) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACEHeader) UnmarshalNDR

func (o *ACEHeader) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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
)

func (ACEType) String added in v1.0.3

func (o ACEType) String() string

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) MarshalNDR

func (o *ACL) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ACL) NDRSizeInfo added in v1.0.3

func (o *ACL) NDRSizeInfo() []uint64

func (*ACL) UnmarshalNDR

func (o *ACL) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *AccessAllowedACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AccessAllowedACE) UnmarshalNDR added in v1.0.3

func (o *AccessAllowedACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *AccessAllowedCallbackACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AccessAllowedCallbackACE) UnmarshalNDR added in v1.0.3

func (o *AccessAllowedCallbackACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *AccessAllowedObjectACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AccessAllowedObjectACE) UnmarshalNDR added in v1.0.3

func (o *AccessAllowedObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *AccessDeniedACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AccessDeniedACE) UnmarshalNDR added in v1.0.3

func (o *AccessDeniedACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *AccessDeniedCallbackACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AccessDeniedCallbackACE) UnmarshalNDR added in v1.0.3

func (o *AccessDeniedCallbackACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *AccessDeniedCallbackObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *AccessDeniedObjectACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AccessDeniedObjectACE) UnmarshalNDR added in v1.0.3

func (o *AccessDeniedObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (*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 ClassID

type ClassID GUID

ClassID structure represents CLSID RPC structure.

func (*ClassID) GUID

func (o *ClassID) GUID() *GUID

func (*ClassID) MarshalNDR

func (o *ClassID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClassID) UnmarshalNDR

func (o *ClassID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *EventDescriptor) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EventDescriptor) UnmarshalNDR

func (o *EventDescriptor) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *EventHeader) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EventHeader) UnmarshalNDR

func (o *EventHeader) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *EventHeader_Field10_Field1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EventHeader_Field10_Field1) UnmarshalNDR

func (o *EventHeader_Field10_Field1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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) AsTime

func (ft *Filetime) AsTime() time.Time

AsTime function returns the time.Time.

func (*Filetime) DecodeBinary

func (ft *Filetime) DecodeBinary(b []byte) error

func (*Filetime) IsNever added in v1.0.3

func (ft *Filetime) IsNever() bool

func (*Filetime) MarshalJSON

func (ft *Filetime) MarshalJSON() ([]byte, error)

func (*Filetime) MarshalNDR

func (o *Filetime) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Filetime) UnmarshalNDR

func (o *Filetime) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 GUIDFromBytes(b []byte) (*GUID, error)

func GUIDFromUUID

func GUIDFromUUID(u *uuid.UUID) *GUID

func (*GUID) IsZero added in v1.0.3

func (o *GUID) IsZero() bool

func (*GUID) MarshalJSON

func (g *GUID) MarshalJSON() ([]byte, error)

func (*GUID) MarshalNDR

func (o *GUID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GUID) String

func (g *GUID) String() string

func (*GUID) UUID

func (o *GUID) UUID() *uuid.UUID

func (*GUID) UnmarshalNDR

func (o *GUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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.

func (*LUID) MarshalNDR

func (o *LUID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*LUID) UnmarshalNDR

func (o *LUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *LargeInteger) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*LargeInteger) UnmarshalNDR

func (o *LargeInteger) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *MandatoryInformation) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MandatoryInformation) UnmarshalNDR

func (o *MandatoryInformation) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *Multistring) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Multistring) UnmarshalNDR

func (o *Multistring) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ObjectTypeList) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ObjectTypeList) UnmarshalNDR

func (o *ObjectTypeList) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *RawACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RawACE) UnmarshalNDR added in v1.0.3

func (o *RawACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 ParseSID added in v1.0.2

func ParseSID(s string) (*SID, error)

func (*SID) Bytes added in v1.0.2

func (o *SID) Bytes() ([]byte, error)

func (*SID) DecodeBinary

func (o *SID) DecodeBinary(b []byte) error

func (*SID) MarshalJSON

func (o *SID) MarshalJSON() ([]byte, error)

func (*SID) MarshalNDR

func (o *SID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SID) NDRSizeInfo

func (o *SID) NDRSizeInfo() []uint64

func (*SID) Parse added in v1.0.2

func (o *SID) Parse(s string) error

func (*SID) String

func (o *SID) String() string

String ...

func (*SID) UnmarshalNDR

func (o *SID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SIDIDAuthority) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SIDIDAuthority) UnmarshalNDR

func (o *SIDIDAuthority) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SecurityDescriptor) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SecurityDescriptor) Parse added in v1.0.3

func (o *SecurityDescriptor) Parse(b []byte) error

func (*SecurityDescriptor) UnmarshalNDR

func (o *SecurityDescriptor) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ServerInfo100) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServerInfo100) UnmarshalNDR

func (o *ServerInfo100) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ServerInfo101) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServerInfo101) UnmarshalNDR

func (o *ServerInfo101) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemAuditACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemAuditACE) UnmarshalNDR added in v1.0.3

func (o *SystemAuditACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemAuditCallbackACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemAuditCallbackACE) UnmarshalNDR added in v1.0.3

func (o *SystemAuditCallbackACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *SystemAuditCallbackObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemAuditObjectACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemAuditObjectACE) UnmarshalNDR added in v1.0.3

func (o *SystemAuditObjectACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemMandatoryLabelACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemMandatoryLabelACE) UnmarshalNDR

func (o *SystemMandatoryLabelACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemResourceAttributeACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemResourceAttributeACE) UnmarshalNDR added in v1.0.3

func (o *SystemResourceAttributeACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemScopedPolicyIDACE) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemScopedPolicyIDACE) UnmarshalNDR added in v1.0.3

func (o *SystemScopedPolicyIDACE) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *SystemTime) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemTime) UnmarshalNDR

func (o *SystemTime) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *TokenMandatoryPolicy) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*TokenMandatoryPolicy) UnmarshalNDR

func (o *TokenMandatoryPolicy) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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.

func (*UUID) MarshalNDR

func (o *UUID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*UUID) UnmarshalNDR

func (o *UUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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.

func (*Uint128) MarshalNDR

func (o *Uint128) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Uint128) UnmarshalNDR

func (o *Uint128) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *UlargeInteger) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*UlargeInteger) UnmarshalNDR

func (o *UlargeInteger) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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:

func (*UnicodeString) MarshalNDR

func (o *UnicodeString) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*UnicodeString) UnmarshalNDR

func (o *UnicodeString) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL