logon

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	LogonSyntaxUUID = &uuid.UUID{TimeLow: 0x12345678, TimeMid: 0x1234, TimeHiAndVersion: 0xabcd, ClockSeqHiAndReserved: 0xef, ClockSeqLow: 0x0, Node: [6]uint8{0x1, 0x23, 0x45, 0x67, 0xcf, 0xfb}}
	// Syntax ID
	LogonSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: LogonSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "nrpc"
)
View Source
var SecureChannel_T = &xxx_SecureChannelClient{}

Functions

func LogonServerHandle

func LogonServerHandle(ctx context.Context, o LogonServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func NewLogonServerHandle

func NewLogonServerHandle(o LogonServer) dcerpc.ServerHandle

func RegisterLogonServer

func RegisterLogonServer(conn dcerpc.Conn, o LogonServer, opts ...dcerpc.Option)

Types

type AccountDeltasRequest

type AccountDeltasRequest struct {
	PrimaryName         string         `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	ComputerName        string         `idl:"name:ComputerName;string" json:"computer_name"`
	Authenticator       *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	RecordID            *UASInfo0      `idl:"name:RecordId" json:"record_id"`
	Count               uint32         `idl:"name:Count" json:"count"`
	Level               uint32         `idl:"name:Level" json:"level"`
	BufferSize          uint32         `idl:"name:BufferSize" json:"buffer_size"`
}

AccountDeltasRequest structure represents the NetrAccountDeltas operation request

func (*AccountDeltasRequest) MarshalNDR

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

func (*AccountDeltasRequest) UnmarshalNDR

func (o *AccountDeltasRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AccountDeltasResponse

type AccountDeltasResponse struct {
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	Buffer              []byte         `idl:"name:Buffer;size_is:(BufferSize)" json:"buffer"`
	CountReturned       uint32         `idl:"name:CountReturned" json:"count_returned"`
	TotalEntries        uint32         `idl:"name:TotalEntries" json:"total_entries"`
	NextRecordID        *UASInfo0      `idl:"name:NextRecordId" json:"next_record_id"`
	// Return: The NetrAccountDeltas return value.
	Return int32 `idl:"name:Return" json:"return"`
}

AccountDeltasResponse structure represents the NetrAccountDeltas operation response

func (*AccountDeltasResponse) MarshalNDR

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

func (*AccountDeltasResponse) UnmarshalNDR

func (o *AccountDeltasResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AccountSyncRequest

type AccountSyncRequest struct {
	PrimaryName         string         `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	ComputerName        string         `idl:"name:ComputerName;string" json:"computer_name"`
	Authenticator       *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	Reference           uint32         `idl:"name:Reference" json:"reference"`
	Level               uint32         `idl:"name:Level" json:"level"`
	BufferSize          uint32         `idl:"name:BufferSize" json:"buffer_size"`
}

AccountSyncRequest structure represents the NetrAccountSync operation request

func (*AccountSyncRequest) MarshalNDR

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

func (*AccountSyncRequest) UnmarshalNDR

func (o *AccountSyncRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AccountSyncResponse

type AccountSyncResponse struct {
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	Buffer              []byte         `idl:"name:Buffer;size_is:(BufferSize)" json:"buffer"`
	CountReturned       uint32         `idl:"name:CountReturned" json:"count_returned"`
	TotalEntries        uint32         `idl:"name:TotalEntries" json:"total_entries"`
	NextReference       uint32         `idl:"name:NextReference" json:"next_reference"`
	LastRecordID        *UASInfo0      `idl:"name:LastRecordId" json:"last_record_id"`
	// Return: The NetrAccountSync return value.
	Return int32 `idl:"name:Return" json:"return"`
}

AccountSyncResponse structure represents the NetrAccountSync operation response

func (*AccountSyncResponse) MarshalNDR

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

func (*AccountSyncResponse) UnmarshalNDR

func (o *AccountSyncResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddressToSiteNamesExWRequest

type AddressToSiteNamesExWRequest struct {
	// ComputerName: The custom binding handle (defined in section 3.5.4.1) that represents
	// the connection to a domain controller.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// EntryCount: The number of socket addresses specified in SocketAddresses. The maximum
	// value for EntryCount is 32000. To avoid large memory allocations, this number was
	// chosen as a reasonable limit for the maximum number of socket addresses that this
	// method accepts.
	EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"`
	// SocketAddresses: An array of NL_SOCKET_ADDRESS structures (section 2.2.1.2.4) that
	// contains socket addresses to translate. The number of addresses specified MUST be
	// equal to EntryCount.
	SocketAddresses []*SocketAddress `idl:"name:SocketAddresses;size_is:(EntryCount)" json:"socket_addresses"`
}

AddressToSiteNamesExWRequest structure represents the DsrAddressToSiteNamesExW operation request

func (*AddressToSiteNamesExWRequest) MarshalNDR

func (*AddressToSiteNamesExWRequest) UnmarshalNDR

func (o *AddressToSiteNamesExWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddressToSiteNamesExWResponse

type AddressToSiteNamesExWResponse struct {
	// SiteNames: A pointer to an NL_SITE_NAME_EX_ARRAY structure (section 2.2.1.2.3) that
	// contains an array of site names and an array of subnet names that correspond to socket
	// addresses in SocketAddresses. The number of entries returned is equal to EntryCount.
	// The fields of an entry are set to zero if the corresponding socket address does not
	// map to any site, or if the address family of the socket address is not IPV4 or IPV6.
	// The mapping of IP addresses to sites is specified in [MS-ADTS] section 6.1.1.2.2.1.
	SiteNames *SiteNameExArray `idl:"name:SiteNames" json:"site_names"`
	// Return: The DsrAddressToSiteNamesExW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddressToSiteNamesExWResponse structure represents the DsrAddressToSiteNamesExW operation response

func (*AddressToSiteNamesExWResponse) MarshalNDR

func (*AddressToSiteNamesExWResponse) UnmarshalNDR

func (o *AddressToSiteNamesExWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddressToSiteNamesWRequest

type AddressToSiteNamesWRequest struct {
	// ComputerName: The custom binding handle (section 3.5.4.1) that represents the connection
	// to a domain controller.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// EntryCount: The number of socket addresses specified in SocketAddresses. The maximum
	// value for EntryCount is 32000. The limit was chosen to prevent clients from being
	// able to force large memory allocations on servers.
	EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"`
	// SocketAddresses: An array of NL_SOCKET_ADDRESS structures (section 2.2.1.2.4) that
	// contains socket addresses to translate. The number of addresses specified MUST be
	// equal to EntryCount.
	SocketAddresses []*SocketAddress `idl:"name:SocketAddresses;size_is:(EntryCount)" json:"socket_addresses"`
}

AddressToSiteNamesWRequest structure represents the DsrAddressToSiteNamesW operation request

func (*AddressToSiteNamesWRequest) MarshalNDR

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

func (*AddressToSiteNamesWRequest) UnmarshalNDR

func (o *AddressToSiteNamesWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddressToSiteNamesWResponse

type AddressToSiteNamesWResponse struct {
	// SiteNames: A pointer to an NL_SITE_NAME_ARRAY structure (section 2.2.1.2.2) that
	// contains a corresponding array of site names. The number of entries returned is equal
	// to EntryCount. The fields of an entry are set to zero if the corresponding socket
	// address does not map to any site, or if the address family of the socket address
	// is not IPV4 or IPV6. The mapping of IP addresses to sites is specified in [MS-ADTS]
	// section 6.1.1.2.2.1.
	SiteNames *SiteNameArray `idl:"name:SiteNames" json:"site_names"`
	// Return: The DsrAddressToSiteNamesW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddressToSiteNamesWResponse structure represents the DsrAddressToSiteNamesW operation response

func (*AddressToSiteNamesWResponse) MarshalNDR

func (*AddressToSiteNamesWResponse) UnmarshalNDR

func (o *AddressToSiteNamesWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Authenticate2Request

type Authenticate2Request struct {
	PrimaryName       string            `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	AccountName       string            `idl:"name:AccountName;string" json:"account_name"`
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	ComputerName      string            `idl:"name:ComputerName;string" json:"computer_name"`
	ClientCredential  *Credential       `idl:"name:ClientCredential" json:"client_credential"`
	NegotiateFlags    uint32            `idl:"name:NegotiateFlags" json:"negotiate_flags"`
}

Authenticate2Request structure represents the NetrServerAuthenticate2 operation request

func (*Authenticate2Request) MarshalNDR

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

func (*Authenticate2Request) UnmarshalNDR

func (o *Authenticate2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Authenticate2Response

type Authenticate2Response struct {
	ServerCredential *Credential `idl:"name:ServerCredential" json:"server_credential"`
	NegotiateFlags   uint32      `idl:"name:NegotiateFlags" json:"negotiate_flags"`
	// Return: The NetrServerAuthenticate2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

Authenticate2Response structure represents the NetrServerAuthenticate2 operation response

func (*Authenticate2Response) MarshalNDR

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

func (*Authenticate2Response) UnmarshalNDR

func (o *Authenticate2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Authenticate3Request

type Authenticate3Request struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// AccountName: A null-terminated Unicode string that identifies the name of the account
	// that contains the secret key (password) that is shared between the client and the
	// server.<174>
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// SecureChannelType: A NETLOGON_SECURE_CHANNEL_TYPE enumerated value, as specified
	// in section 2.2.1.3.13, that indicates the type of the secure channel being established
	// by this call.
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	// ComputerName: A null-terminated Unicode string that contains the NetBIOS name of
	// the client computer calling this method.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// ClientCredential: A pointer to a NETLOGON_CREDENTIAL structure, as specified in section
	// 2.2.1.3.4, that contains the supplied client credentials, as specified in section
	// 3.1.4.4.
	ClientCredential *Credential `idl:"name:ClientCredential" json:"client_credential"`
	// NegotiateFlags: A pointer to a 32-bit set of bit flags in little-endian format that
	// indicate features supported. As input, the flags are those requested by the client
	// and are the same as ClientCapabilities. As output, they are the bit-wise AND of the
	// client's requested capabilities and the server's ServerCapabilities. For more details,
	// see section 3.1.4.2.
	NegotiateFlags uint32 `idl:"name:NegotiateFlags" json:"negotiate_flags"`
}

Authenticate3Request structure represents the NetrServerAuthenticate3 operation request

func (*Authenticate3Request) MarshalNDR

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

func (*Authenticate3Request) UnmarshalNDR

func (o *Authenticate3Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Authenticate3Response

type Authenticate3Response struct {
	// ServerCredential: A pointer to a NETLOGON_CREDENTIAL structure, as specified in section
	// 2.2.1.3.4, that contains the returned server credentials.
	ServerCredential *Credential `idl:"name:ServerCredential" json:"server_credential"`
	// NegotiateFlags: A pointer to a 32-bit set of bit flags in little-endian format that
	// indicate features supported. As input, the flags are those requested by the client
	// and are the same as ClientCapabilities. As output, they are the bit-wise AND of the
	// client's requested capabilities and the server's ServerCapabilities. For more details,
	// see section 3.1.4.2.
	NegotiateFlags uint32 `idl:"name:NegotiateFlags" json:"negotiate_flags"`
	// AccountRid: A pointer that receives the RID of the account specified by the AccountName
	// parameter. ([MS-ADTS] section 3.1.1.5.2.4 specifies how this RID is assigned at account
	// creation time.) This value is stored in the AccountRid ADM element within the ClientSessionInfo
	// table.
	AccountRID uint32 `idl:"name:AccountRid" json:"account_rid"`
	// Return: The NetrServerAuthenticate3 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

Authenticate3Response structure represents the NetrServerAuthenticate3 operation response

func (*Authenticate3Response) MarshalNDR

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

func (*Authenticate3Response) UnmarshalNDR

func (o *Authenticate3Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AuthenticateRequest

type AuthenticateRequest struct {
	PrimaryName       string            `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	AccountName       string            `idl:"name:AccountName;string" json:"account_name"`
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	ComputerName      string            `idl:"name:ComputerName;string" json:"computer_name"`
	ClientCredential  *Credential       `idl:"name:ClientCredential" json:"client_credential"`
}

AuthenticateRequest structure represents the NetrServerAuthenticate operation request

func (*AuthenticateRequest) MarshalNDR

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

func (*AuthenticateRequest) UnmarshalNDR

func (o *AuthenticateRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AuthenticateResponse

type AuthenticateResponse struct {
	ServerCredential *Credential `idl:"name:ServerCredential" json:"server_credential"`
	// Return: The NetrServerAuthenticate return value.
	Return int32 `idl:"name:Return" json:"return"`
}

AuthenticateResponse structure represents the NetrServerAuthenticate operation response

func (*AuthenticateResponse) MarshalNDR

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

func (*AuthenticateResponse) UnmarshalNDR

func (o *AuthenticateResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Authenticator

type Authenticator struct {
	// Credential: A NETLOGON_CREDENTIAL (section 2.2.1.3.4) structure that contains the
	// encrypted portion of the authenticator.
	Credential *Credential `idl:"name:Credential" json:"credential"`
	// Timestamp: An integer value that contains the time of day at which the client constructed
	// this authentication credential, represented as the number of elapsed seconds since
	// 00:00:00 of January 1, 1970. The authenticator is constructed just before making
	// a call to a method that requires its usage.
	Timestamp uint32 `idl:"name:Timestamp" json:"timestamp"`
}

Authenticator structure represents NETLOGON_AUTHENTICATOR RPC structure.

The NETLOGON_AUTHENTICATOR structure defines an authentication credential.

func (*Authenticator) MarshalNDR

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

func (*Authenticator) UnmarshalNDR

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

type CRCipherValue

type CRCipherValue struct {
	// Length: The length, in bytes, of the used portion of the buffer.
	Length uint32 `idl:"name:Length" json:"length"`
	// MaximumLength: The maximum length, in bytes, of the buffer.
	MaximumLength uint32 `idl:"name:MaximumLength" json:"maximum_length"`
	// Buffer: A pointer to a buffer that contains the secret data encrypted with the session
	// key used on the secure channel between the client and the server exchanging this
	// data structure. The encryption algorithm is RC4 if the flag C is set in the negotiated
	// flags between the client and the server as detailed in section 3.1.4.2; otherwise
	// the encryption algorithm is DES.
	Buffer []byte `idl:"name:Buffer;size_is:(MaximumLength);length_is:(Length)" json:"buffer"`
}

CRCipherValue structure represents NLPR_CR_CIPHER_VALUE RPC structure.

The NLPR_CR_CIPHER_VALUE structure defines an encrypted string buffer that contains the value of an LSA Secret Object as specified in [MS-LSAD].

func (*CRCipherValue) MarshalNDR

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

func (*CRCipherValue) UnmarshalNDR

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

type Capabilities

type Capabilities struct {
	// Types that are assignable to Value
	//
	// *Capabilities_Server
	Value is_Capabilities `json:"value"`
}

Capabilities structure represents NETLOGON_CAPABILITIES RPC union.

func (*Capabilities) GetValue

func (o *Capabilities) GetValue() any

func (*Capabilities) MarshalUnionNDR

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

func (*Capabilities) NDRSwitchValue

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

func (*Capabilities) UnmarshalUnionNDR

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

type Capabilities_Server

type Capabilities_Server struct {
	ServerCapabilities uint32 `idl:"name:ServerCapabilities" json:"server_capabilities"`
}

Capabilities_Server structure represents NETLOGON_CAPABILITIES RPC union arm.

It has following labels: 1

func (*Capabilities_Server) MarshalNDR

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

func (*Capabilities_Server) UnmarshalNDR

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

type ChainSetClientAttributesRequest

type ChainSetClientAttributesRequest struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:ref" json:"primary_name"`
	// ChainedFromServerName: The null-terminated Unicode string that contains the name
	// of the read-only DC that issues the request.
	ChainedFromServerName string `idl:"name:ChainedFromServerName;string;pointer:ref" json:"chained_from_server_name"`
	// ChainedForClientName: The null-terminated Unicode string that contains the name of
	// the client computer that called NetrServerAuthenticate3 or NetrLogonGetDomainInfo
	// on the RODC.
	ChainedForClientName string `idl:"name:ChainedForClientName;string;pointer:ref" json:"chained_for_client_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains the
	// client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator;pointer:ref" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator;pointer:ref" json:"return_authenticator"`
	// dwInVersion: One of the NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES union types selected based
	// on the value of the pmsgIn field. The value MUST be 1.
	InVersion uint32 `idl:"name:dwInVersion" json:"in_version"`
	// pmsgIn: A pointer to an NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 structure that contains
	// the values to update on the client's computer account object in Active Directory
	// on the normal (writable) DC.
	In *InChainSetClientAttributes `idl:"name:pmsgIn;switch_is:dwInVersion;pointer:ref" json:"in"`
	// pdwOutVersion: A pointer to one of the NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES union types
	// selected based on the value of the pmsgIn field. The value MUST be 1.
	OutVersion uint32 `idl:"name:pdwOutVersion;pointer:ref" json:"out_version"`
	// pmsgOut: A pointer to an NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 structure that contains
	// information on the client workstation and the writable domain controller. For how
	// it is populated by the server, see below.
	Out *OutChainSetClientAttributes `idl:"name:pmsgOut;switch_is:*pdwOutVersion;pointer:ref" json:"out"`
}

ChainSetClientAttributesRequest structure represents the NetrChainSetClientAttributes operation request

func (*ChainSetClientAttributesRequest) MarshalNDR

func (*ChainSetClientAttributesRequest) UnmarshalNDR

type ChainSetClientAttributesResponse

type ChainSetClientAttributesResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator;pointer:ref" json:"return_authenticator"`
	// pdwOutVersion: A pointer to one of the NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES union types
	// selected based on the value of the pmsgIn field. The value MUST be 1.
	OutVersion uint32 `idl:"name:pdwOutVersion;pointer:ref" json:"out_version"`
	// pmsgOut: A pointer to an NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 structure that contains
	// information on the client workstation and the writable domain controller. For how
	// it is populated by the server, see below.
	Out *OutChainSetClientAttributes `idl:"name:pmsgOut;switch_is:*pdwOutVersion;pointer:ref" json:"out"`
	// Return: The NetrChainSetClientAttributes return value.
	Return int32 `idl:"name:Return" json:"return"`
}

ChainSetClientAttributesResponse structure represents the NetrChainSetClientAttributes operation response

func (*ChainSetClientAttributesResponse) MarshalNDR

func (*ChainSetClientAttributesResponse) UnmarshalNDR

type ComputeClientDigestRequest

type ComputeClientDigestRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// DomainName: A pointer to a null-terminated Unicode string that contains the DNS or
	// NetBIOS name of the trusted domain. If this parameter is NULL, the domain of which
	// the client computer is a member is used.
	DomainName string `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
	// Message: A pointer to a buffer that contains the message for which the digest is
	// to be computed.
	Message []byte `idl:"name:Message;size_is:(MessageSize)" json:"message"`
	// MessageSize: The length, in bytes, of the Message parameter.
	MessageSize uint32 `idl:"name:MessageSize" json:"message_size"`
}

ComputeClientDigestRequest structure represents the NetrLogonComputeClientDigest operation request

func (*ComputeClientDigestRequest) MarshalNDR

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

func (*ComputeClientDigestRequest) UnmarshalNDR

func (o *ComputeClientDigestRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ComputeClientDigestResponse

type ComputeClientDigestResponse struct {
	// NewMessageDigest: A 128-bit MD5 digest of the current computer account password and
	// the message in the Message buffer.
	NewMessageDigest []byte `idl:"name:NewMessageDigest" json:"new_message_digest"`
	// OldMessageDigest: A 128-bit MD5 digest of the previous machine account password and
	// the message in the Message buffer. If no previous computer account password exists,
	// the current password is used.
	OldMessageDigest []byte `idl:"name:OldMessageDigest" json:"old_message_digest"`
	// Return: The NetrLogonComputeClientDigest return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ComputeClientDigestResponse structure represents the NetrLogonComputeClientDigest operation response

func (*ComputeClientDigestResponse) MarshalNDR

func (*ComputeClientDigestResponse) UnmarshalNDR

func (o *ComputeClientDigestResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ComputeServerDigestRequest

type ComputeServerDigestRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// Rid: The RID of the machine account for which the digest is to be computed. The NetrLogonGetTrustRid
	// method, as specified in section 3.5.4.8.1, is used to obtain the RID.
	RID uint32 `idl:"name:Rid" json:"rid"`
	// Message: A pointer to buffer that contains the message to compute the digest.
	Message []byte `idl:"name:Message;size_is:(MessageSize)" json:"message"`
	// MessageSize: The length of the data referenced by the Message parameter, in bytes.
	MessageSize uint32 `idl:"name:MessageSize" json:"message_size"`
}

ComputeServerDigestRequest structure represents the NetrLogonComputeServerDigest operation request

func (*ComputeServerDigestRequest) MarshalNDR

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

func (*ComputeServerDigestRequest) UnmarshalNDR

func (o *ComputeServerDigestRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ComputeServerDigestResponse

type ComputeServerDigestResponse struct {
	// NewMessageDigest: A 128-bit MD5 digest of the current machine account password and
	// the message in the Message buffer. The machine account is identified by the Rid parameter.
	NewMessageDigest []byte `idl:"name:NewMessageDigest" json:"new_message_digest"`
	// OldMessageDigest: A 128-bit MD5 digest of the previous machine account password,
	// if present, and the message in the Message buffer. If no previous machine account
	// password exists, then the current password is used. The machine account is identified
	// by the Rid parameter.
	OldMessageDigest []byte `idl:"name:OldMessageDigest" json:"old_message_digest"`
	// Return: The NetrLogonComputeServerDigest return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ComputeServerDigestResponse structure represents the NetrLogonComputeServerDigest operation response

func (*ComputeServerDigestResponse) MarshalNDR

func (*ComputeServerDigestResponse) UnmarshalNDR

func (o *ComputeServerDigestResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Control2ExRequest

type Control2ExRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// FunctionCode: The control operation to be performed; it SHOULD<244> be one of the
	// following values:
	//
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                               |                                                                                  |
	//	|                     VALUE                     |                                     MEANING                                      |
	//	|                                               |                                                                                  |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_QUERY 0x00000001             | No operation, only the requested information is returned.                        |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_REPLICATE 0x00000002         | Forces a backup domain controller (BDC) to perform an immediate partial          |
	//	|                                               | synchronization of all databases, as detailed in section 3.6.5.2.2.<245>         |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_SYNCHRONIZE 0x00000003       | Forces a BDC to perform an immediate full synchronization of all databases.<246> |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_PDC_REPLICATE 0x00000004     | Forces a PDC to immediately send announcement messages to ask each BDC to        |
	//	|                                               | replicate the database for details (see section 3.6).                            |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_REDISCOVER 0x00000005        | Forces the server to rediscover a domain controller in the specified domain and  |
	//	|                                               | to set up a secure channel to the discovered DC.                                 |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_TC_QUERY 0x00000006          | Queries the status of the last usage of the secure channel to the DC.            |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_TRANSPORT_NOTIFY 0x00000007  | Notifies the Netlogon server that a new network connection has been added and    |
	//	|                                               | causes the server to flush any DC cache.                                         |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_FIND_USER 0x00000008         | Queries the name of a trusted domain that contains an account for a user.        |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_CHANGE_PASSWORD 0x00000009   | Causes the server to generate a new shared secret and to set it on the account   |
	//	|                                               | used by the DC for setting up the secure channel from the server.                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_TC_VERIFY 0x0000000A         | Verifies the current status of the server's secure channel to a DC in the        |
	//	|                                               | specified domain.                                                                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_FORCE_DNS_REG 0x0000000B     | Triggers the non-timer event, Force Register DNS Records, defined in [MS-ADTS]   |
	//	|                                               | section 6.3.2.2.1.                                                               |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_QUERY_DNS_REG 0x0000000C     | SHOULD<247> query the status of DNS updates performed by the Netlogon server, as |
	//	|                                               | specified in [MS-ADTS] section 6.3.2.                                            |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_BACKUP_CHANGE_LOG 0x0000FFFC | Used for debugging purposes and does not affect the Netlogon protocol            |
	//	|                                               | behavior.<248>                                                                   |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_TRUNCATE_LOG 0x0000FFFD      | Used for debugging purposes and does not affect the Netlogon protocol            |
	//	|                                               | behavior.<249>                                                                   |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_SET_DBFLAG 0x0000FFFE        | Used for debugging purposes and does not affect the Netlogon protocol            |
	//	|                                               | behavior.<250>                                                                   |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETLOGON_CONTROL_BREAKPOINT 0x0000FFFF        | Used for debugging purposes and SHOULD<251> be used only with checked builds.    |
	//	|                                               | Calling NetrLogonControl2Ex with this function code does not affect the Netlogon |
	//	|                                               | protocol behavior.<252>                                                          |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	FunctionCode uint32 `idl:"name:FunctionCode" json:"function_code"`
	// QueryLevel: Information query level requested by the client. The buffer returned
	// in the Buffer parameter contains one of the following structures, based on the value
	// of this field.
	//
	//	+------------+-----------------------------------------------+
	//	|            |                    BUFFER                     |
	//	|   VALUE    |                   CONTENTS                    |
	//	|            |                                               |
	//	+------------+-----------------------------------------------+
	//	+------------+-----------------------------------------------+
	//	| 0x00000001 | A NETLOGON_INFO_1 structure is returned.      |
	//	+------------+-----------------------------------------------+
	//	| 0x00000002 | A NETLOGON_INFO_2 structure is returned.      |
	//	+------------+-----------------------------------------------+
	//	| 0x00000003 | A NETLOGON_INFO_3 structure is returned.      |
	//	+------------+-----------------------------------------------+
	//	| 0x00000004 | A NETLOGON_INFO_4 structure is returned.<253> |
	//	+------------+-----------------------------------------------+
	QueryLevel uint32 `idl:"name:QueryLevel" json:"query_level"`
	// Data: A NETLOGON_CONTROL_DATA_INFORMATION structure, as specified in section 2.2.1.7.1,
	// that contains specific data required by the query.
	Data *ControlDataInformation `idl:"name:Data;switch_is:FunctionCode" json:"data"`
}

Control2ExRequest structure represents the NetrLogonControl2Ex operation request

func (*Control2ExRequest) MarshalNDR

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

func (*Control2ExRequest) UnmarshalNDR

func (o *Control2ExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Control2ExResponse

type Control2ExResponse struct {
	// Buffer: A NETLOGON_CONTROL_QUERY_INFORMATION structure, as specified in section 2.2.1.7.6,
	// that contains the specific query results, with a level of verbosity as specified
	// in QueryLevel.
	Buffer *ControlQueryInformation `idl:"name:Buffer;switch_is:QueryLevel" json:"buffer"`
	// Return: The NetrLogonControl2Ex return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

Control2ExResponse structure represents the NetrLogonControl2Ex operation response

func (*Control2ExResponse) MarshalNDR

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

func (*Control2ExResponse) UnmarshalNDR

func (o *Control2ExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Control2Request

type Control2Request struct {
	ServerName   string                  `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	FunctionCode uint32                  `idl:"name:FunctionCode" json:"function_code"`
	QueryLevel   uint32                  `idl:"name:QueryLevel" json:"query_level"`
	Data         *ControlDataInformation `idl:"name:Data;switch_is:FunctionCode" json:"data"`
}

Control2Request structure represents the NetrLogonControl2 operation request

func (*Control2Request) MarshalNDR

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

func (*Control2Request) UnmarshalNDR

func (o *Control2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Control2Response

type Control2Response struct {
	Buffer *ControlQueryInformation `idl:"name:Buffer;switch_is:QueryLevel" json:"buffer"`
	// Return: The NetrLogonControl2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

Control2Response structure represents the NetrLogonControl2 operation response

func (*Control2Response) MarshalNDR

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

func (*Control2Response) UnmarshalNDR

func (o *Control2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlDataInformation

type ControlDataInformation struct {
	// Types that are assignable to Value
	//
	// *ControlDataInformation_TrustedDomainName
	// *ControlDataInformation_DebugFlag
	// *ControlDataInformation_UserName
	// *ControlDataInformation_DefaultControlDataInformation
	Value is_ControlDataInformation `json:"value"`
}

ControlDataInformation structure represents NETLOGON_CONTROL_DATA_INFORMATION RPC union.

The NETLOGON_CONTROL_DATA_INFORMATION union is used as input to the NetrLogonControl2 method, as specified in section 3.5.4.9.2, and the NetrLogonControl2Ex method, as specified in section 3.5.4.9.1. This union selects a data type, based on the FunctionCode parameter passed to the method. For details about FunctionCode values, see NetrLogonControl2Ex, section 3.5.4.9.1.

func (*ControlDataInformation) GetValue

func (o *ControlDataInformation) GetValue() any

func (*ControlDataInformation) MarshalUnionNDR

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

func (*ControlDataInformation) NDRSwitchValue

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

func (*ControlDataInformation) UnmarshalUnionNDR

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

type ControlDataInformation_DebugFlag

type ControlDataInformation_DebugFlag struct {
	// DebugFlag: A DWORD that contains an implementation-specific debug flag. Switched
	// on the value 0x0000FFFE.
	DebugFlag uint32 `idl:"name:DebugFlag" json:"debug_flag"`
}

ControlDataInformation_DebugFlag structure represents NETLOGON_CONTROL_DATA_INFORMATION RPC union arm.

It has following labels: 65534

func (*ControlDataInformation_DebugFlag) MarshalNDR

func (*ControlDataInformation_DebugFlag) UnmarshalNDR

type ControlDataInformation_DefaultControlDataInformation

type ControlDataInformation_DefaultControlDataInformation struct {
}

ControlDataInformation_DefaultControlDataInformation structure represents NETLOGON_CONTROL_DATA_INFORMATION RPC default union arm.

func (*ControlDataInformation_DefaultControlDataInformation) MarshalNDR

func (*ControlDataInformation_DefaultControlDataInformation) UnmarshalNDR

type ControlDataInformation_TrustedDomainName

type ControlDataInformation_TrustedDomainName struct {
	// TrustedDomainName: A pointer to a null-terminated Unicode string that contains a
	// trusted domain name. Switched on the DWORD ([MS-DTYP] section 2.2.9) values 0x00000005,
	// 0x00000006, 0x00000009, and 0x0000000A. The DWORD values are equivalent to FunctionCode
	// values. For a complete list of the Netlogon function codes and their associated meanings,
	// see the NetrLogonControl2Ex method (section 3.5.4.9.1).
	TrustedDomainName string `idl:"name:TrustedDomainName;string" json:"trusted_domain_name"`
}

ControlDataInformation_TrustedDomainName structure represents NETLOGON_CONTROL_DATA_INFORMATION RPC union arm.

It has following labels: 5, 6, 9, 10

func (*ControlDataInformation_TrustedDomainName) MarshalNDR

func (*ControlDataInformation_TrustedDomainName) UnmarshalNDR

type ControlDataInformation_UserName

type ControlDataInformation_UserName struct {
	// UserName: A pointer to null-terminated Unicode string that contains a username. Switched
	// on the DWORD value 0x00000008.
	UserName string `idl:"name:UserName;string" json:"user_name"`
}

ControlDataInformation_UserName structure represents NETLOGON_CONTROL_DATA_INFORMATION RPC union arm.

It has following labels: 8

func (*ControlDataInformation_UserName) MarshalNDR

func (*ControlDataInformation_UserName) UnmarshalNDR

type ControlQueryInformation

type ControlQueryInformation struct {
	// Types that are assignable to Value
	//
	// *ControlQueryInformation_Info1
	// *ControlQueryInformation_Info2
	// *ControlQueryInformation_Info3
	// *ControlQueryInformation_Info4
	// *ControlQueryInformation_DefaultControlQueryInformation
	Value is_ControlQueryInformation `json:"value"`
}

ControlQueryInformation structure represents NETLOGON_CONTROL_QUERY_INFORMATION RPC union.

The NETLOGON_CONTROL_QUERY_INFORMATION union selects an appropriate NETLOGON_INFO data type, based on the value of the QueryLevel parameter to the NetrLogonControl2Ex method described in section 3.5.4.9.1.

func (*ControlQueryInformation) GetValue

func (o *ControlQueryInformation) GetValue() any

func (*ControlQueryInformation) MarshalUnionNDR

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

func (*ControlQueryInformation) NDRSwitchValue

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

func (*ControlQueryInformation) UnmarshalUnionNDR

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

type ControlQueryInformation_DefaultControlQueryInformation

type ControlQueryInformation_DefaultControlQueryInformation struct {
}

ControlQueryInformation_DefaultControlQueryInformation structure represents NETLOGON_CONTROL_QUERY_INFORMATION RPC default union arm.

func (*ControlQueryInformation_DefaultControlQueryInformation) MarshalNDR

func (*ControlQueryInformation_DefaultControlQueryInformation) UnmarshalNDR

type ControlQueryInformation_Info1

type ControlQueryInformation_Info1 struct {
	// NetlogonInfo1: This field is selected when the switched DWORD ([MS-DTYP] section
	// 2.2.9) value is 1. For more details about NETLOGON_INFO_1 structure, see section
	// 2.2.1.7.2.
	Info1 *Info1 `idl:"name:NetlogonInfo1" json:"info1"`
}

ControlQueryInformation_Info1 structure represents NETLOGON_CONTROL_QUERY_INFORMATION RPC union arm.

It has following labels: 1

func (*ControlQueryInformation_Info1) MarshalNDR

func (*ControlQueryInformation_Info1) UnmarshalNDR

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

type ControlQueryInformation_Info2

type ControlQueryInformation_Info2 struct {
	// NetlogonInfo2: This field is selected when the switched DWORD value is 2. For more
	// details about NETLOGON_INFO_2 structure, see section 2.2.1.7.3.
	Info2 *Info2 `idl:"name:NetlogonInfo2" json:"info2"`
}

ControlQueryInformation_Info2 structure represents NETLOGON_CONTROL_QUERY_INFORMATION RPC union arm.

It has following labels: 2

func (*ControlQueryInformation_Info2) MarshalNDR

func (*ControlQueryInformation_Info2) UnmarshalNDR

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

type ControlQueryInformation_Info3

type ControlQueryInformation_Info3 struct {
	// NetlogonInfo3: This field is selected when the switched DWORD value is 3. For more
	// details about NETLOGON_INFO_3 structure, see section 2.2.1.7.4.
	Info3 *Info3 `idl:"name:NetlogonInfo3" json:"info3"`
}

ControlQueryInformation_Info3 structure represents NETLOGON_CONTROL_QUERY_INFORMATION RPC union arm.

It has following labels: 3

func (*ControlQueryInformation_Info3) MarshalNDR

func (*ControlQueryInformation_Info3) UnmarshalNDR

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

type ControlQueryInformation_Info4

type ControlQueryInformation_Info4 struct {
	// NetlogonInfo4: This field is selected when the switched DWORD value is 4. For more
	// details about NETLOGON_INFO_4 structure, see section 2.2.1.7.5.
	Info4 *Info4 `idl:"name:NetlogonInfo4" json:"info4"`
}

ControlQueryInformation_Info4 structure represents NETLOGON_CONTROL_QUERY_INFORMATION RPC union arm.

It has following labels: 4

func (*ControlQueryInformation_Info4) MarshalNDR

func (*ControlQueryInformation_Info4) UnmarshalNDR

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

type ControlRequest

type ControlRequest struct {
	ServerName   string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	FunctionCode uint32 `idl:"name:FunctionCode" json:"function_code"`
	QueryLevel   uint32 `idl:"name:QueryLevel" json:"query_level"`
}

ControlRequest structure represents the NetrLogonControl operation request

func (*ControlRequest) MarshalNDR

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

func (*ControlRequest) UnmarshalNDR

func (o *ControlRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ControlResponse

type ControlResponse struct {
	Buffer *ControlQueryInformation `idl:"name:Buffer;switch_is:QueryLevel" json:"buffer"`
	// Return: The NetrLogonControl return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ControlResponse structure represents the NetrLogonControl operation response

func (*ControlResponse) MarshalNDR

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

func (*ControlResponse) UnmarshalNDR

func (o *ControlResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Credential

type Credential struct {
	// data: The meaning of the 8 bytes of data contained in this structure is determined
	// by the following:
	//
	// * When session-key negotiation is performed, the data field carries an 8-byte challenge.
	// Also see section 3.1.4.1 ( 7b9e31d1-670e-4fc5-ad54-9ffff50755f9 ).
	//
	// * When the *NETLOGON_CREDENTIAL* is used as part of a *NETLOGON_AUTHENTICATOR* structure
	// (section 2.2.1.1.5 ( 76c93227-942a-4687-ab9d-9d972ffabdab ) ), the data field carries
	// 8 bytes of encrypted data, as specified in the *Netlogon Credential Computation*
	// (section 3.1.4.4 ( 594909fd-725f-45ac-9799-62e4aefe0585 ) ) ** and *Netlogon Authenticator
	// Computation and Verification* (section 3.1.4.5 ( da7acaa3-030b-481e-979b-f58f89389806
	// ) ) sections.
	Data []byte `idl:"name:data" json:"data"`
}

Credential structure represents NETLOGON_CREDENTIAL RPC structure.

The NETLOGON_CREDENTIAL structure contains 8 bytes of data that have two distinct uses: for session-key negotiation and for building a Netlogon authenticator.

func (*Credential) MarshalNDR

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

func (*Credential) UnmarshalNDR

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

type CypherBlock

type CypherBlock struct {
	// data: An encrypted eight-character string.
	Data []byte `idl:"name:data" json:"data"`
}

CypherBlock structure represents CYPHER_BLOCK RPC structure.

The CYPHER_BLOCK structure defines an encrypted eight-character string. The type of encryption used is application dependent.

func (*CypherBlock) MarshalNDR

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

func (*CypherBlock) UnmarshalNDR

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

type DNSNameInfo

type DNSNameInfo struct {
	// Type: The type of DNS name, which MUST be one, and only one, of the following.
	//
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	|                          |                                                                                  |
	//	|          VALUE           |                                     MEANING                                      |
	//	|                          |                                                                                  |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsLdapAtSite 22       | _ldap._tcp.<SiteName>._sites.<DnsDomainName>. Allows a client to find an LDAP    |
	//	|                          | server in the domain named by <DnsDomainName> and is in the site named by        |
	//	|                          | <SiteName>.                                                                      |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsGcAtSite 25         | _ldap._tcp.<SiteName>._sites.gc._msdcs.<DnsForestName>. Allows a client to find  |
	//	|                          | a DC serving a global catalog (GC) in the forest named by <DnsForestName> and is |
	//	|                          | in the site named by <SiteName>.                                                 |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsDsaCname 28         | <DsaGuid>._msdcs.<DnsForestName>. Allows a client to find a DC in the forest     |
	//	|                          | named by <DnsForestName> based on the DSA GUID. For a definition of DSA GUID,    |
	//	|                          | see [MS-ADTS] section 1.1.                                                       |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsKdcAtSite 30        | _kerberos._tcp.<SiteName>._sites.dc._msdcs.<DnsDomainName>. Allows a client to   |
	//	|                          | find a DC running a Kerberos KDC in the domain named by <DnsDomainName> and is   |
	//	|                          | in the site named by <SiteName>.                                                 |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsDcAtSite 32         | _ldap._tcp.<SiteName>._sites.dc._msdcs.<DnsDomainName>. Allows a client to       |
	//	|                          | find a DC in the domain named by <DnsDomainName> and is in the site named by     |
	//	|                          | <SiteName>.                                                                      |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsRfc1510KdcAtSite 34 | _kerberos._tcp.<SiteName>._sites.<DnsDomainName>. Allows a client to find an     |
	//	|                          | RFC-1510 compliant Kerberos KDC in the domain named by <DnsDomainName> and is in |
	//	|                          | the site named by <SiteName>.                                                    |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsGenericGcAtSite 36  | _gc._tcp.<SiteName>._sites.<DnsForestName>. Allows a client to find a global     |
	//	|                          | catalog (GC) server in the forest named by <DnsForestName> and is in the site    |
	//	|                          | named by <SiteName>.                                                             |
	//	+--------------------------+----------------------------------------------------------------------------------+
	Type uint32 `idl:"name:Type" json:"type"`
	// DnsDomainInfo: The string that will be based on the DnsDomainInfoType field defined
	// below.
	DNSDomainInfo string `idl:"name:DnsDomainInfo;string" json:"dns_domain_info"`
	// DnsDomainInfoType: The type of DnsDomainInfo member, which MUST be one, and only
	// one, of the following:
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|                        |                                                                                  |
	//	|         VALUE          |                                     MEANING                                      |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsDomainName 1      | The DnsDomainInfo member is a DNS domain name.                                   |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsDomainNameAlias 2 | The DnsDomainInfo member is a DNS domain name alias.                             |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsForestName 3      | The DnsDomainInfo member is a DNS forest name.                                   |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsForestNameAlias 4 | The DnsDomainInfo member is a DNS forest name alias.                             |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsNdncDomainName 5  | The DnsDomainInfo member is a non-domain NC (application NC) name. For a         |
	//	|                        | definition of application NC, see [MS-ADTS] section 1.1.                         |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| NlDnsRecordName 6      | The DnsDomainInfo member is a DNS record name that is required to be             |
	//	|                        | deregistered. This is valid only for deregistration in which the Register value  |
	//	|                        | is set to FALSE. For the types of DNS record name, see [MS-ADTS] section 6.3.2.  |
	//	+------------------------+----------------------------------------------------------------------------------+
	DNSDomainInfoType uint32 `idl:"name:DnsDomainInfoType" json:"dns_domain_info_type"`
	// Priority: The priority for DNS SRV records.
	Priority uint32 `idl:"name:Priority" json:"priority"`
	// Weight: The weight for DNS SRV records.
	Weight uint32 `idl:"name:Weight" json:"weight"`
	// Port: The port for the DNS SRV record.
	Port uint32 `idl:"name:Port" json:"port"`
	// Register: Zero indicates to deregister the DNS name; other values indicate to register
	// the DNS name.
	Register uint8 `idl:"name:Register" json:"register"`
	// Status: The update status of the DNS name. Status SHOULD<16> be set to 0x00000000
	// on success; otherwise, it contains a nonzero error code.
	Status uint32 `idl:"name:Status" json:"status"`
}

DNSNameInfo structure represents NL_DNS_NAME_INFO RPC structure.

The NL_DNS_NAME_INFO structure provides the information on a DNS name (record) (as specified in [RFC2782]) to be updated by the DsrUpdateReadOnlyServerDnsRecords method (section 3.5.4.3.11). DsrUpdateReadOnlyServerDnsRecords method will update DNS as requested by the Register field's value in this structure.

func (*DNSNameInfo) MarshalNDR

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

func (*DNSNameInfo) UnmarshalNDR

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

type DNSNameInfoArray

type DNSNameInfoArray struct {
	// EntryCount: The number of entries in the DnsNamesInfo field.
	EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"`
	// DnsNamesInfo: A pointer to an array of the NL_DNS_NAME_INFO (section 2.2.1.2.5) structure,
	// which SHOULD<17> contain DNS name information.
	DNSNamesInfo []*DNSNameInfo `idl:"name:DnsNamesInfo;size_is:(EntryCount)" json:"dns_names_info"`
}

DNSNameInfoArray structure represents NL_DNS_NAME_INFO_ARRAY RPC structure.

The NL_DNS_NAME_INFO_ARRAY structure provides the information on DNS names (records) to be updated by the DsrUpdateReadOnlyServerDnsRecords (section 3.5.4.3.11) method.

func (*DNSNameInfoArray) MarshalNDR

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

func (*DNSNameInfoArray) UnmarshalNDR

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

type DSDomainTrustsw

type DSDomainTrustsw struct {
	// NetbiosDomainName: A pointer to a null-terminated Unicode string that contains the
	// NetBIOS name of the trusted domain.
	NetBIOSDomainName string `idl:"name:NetbiosDomainName;string" json:"netbios_domain_name"`
	// DnsDomainName: A pointer to a null-terminated Unicode string that contains the FQDN
	// of the trusted domain.
	DNSDomainName string `idl:"name:DnsDomainName;string" json:"dns_domain_name"`
	// Flags: A set of bit flags that defines the domain trust attributes. A flag is TRUE
	// (or set) if its value is equal to 1. The value is constructed from zero or more bit
	// flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | F | E | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+-----------------------------------------------------+
	//	|       |                                                     |
	//	| VALUE |                     DESCRIPTION                     |
	//	|       |                                                     |
	//	+-------+-----------------------------------------------------+
	//	+-------+-----------------------------------------------------+
	//	| A     | Domain is a member of a forest.                     |
	//	+-------+-----------------------------------------------------+
	//	| B     | Domain is directly trusted by the current domain.   |
	//	+-------+-----------------------------------------------------+
	//	| C     | Domain is the root of a forests.                    |
	//	+-------+-----------------------------------------------------+
	//	| D     | Domain is the primary domain of the queried server. |
	//	+-------+-----------------------------------------------------+
	//	| E     | Primary domain is running in native mode.           |
	//	+-------+-----------------------------------------------------+
	//	| F     | Domain directly trusts the current domain.          |
	//	+-------+-----------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// ParentIndex: An integer value that contains the index in the NETLOGON_TRUSTED_DOMAIN_ARRAY
	// array (returned by DsrEnumerateDomainTrusts method) that corresponds to the parent
	// domain of the domain represented by this structure. This field is set if all of the
	// following conditions are met:
	//
	// * The A flag is specified in the Flags parameter of the *DsrEnumerateDomainTrusts*
	// method.
	//
	// * The *Flags* field of *DS_DOMAIN_TRUSTSW* structure does not contain the C flag.
	ParentIndex uint32 `idl:"name:ParentIndex" json:"parent_index"`
	// TrustType: An integer value that describes the type of domain with which the trust
	// is associated. TrustType is one of the following values.
	//
	//	+------------+----------------------------------------------------------------+
	//	|            |                                                                |
	//	|   VALUE    |                            MEANING                             |
	//	|            |                                                                |
	//	+------------+----------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000001 | Trust is with a domain.<55>                                    |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000002 | Trust is with an Active Directory domain.<56>                  |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000003 | Trust is with an MIT Kerberos realm.                           |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000004 | Trust is with a Distributed Computing Environment (DCE) realm. |
	//	+------------+----------------------------------------------------------------+
	TrustType uint32 `idl:"name:TrustType" json:"trust_type"`
	// TrustAttributes: A set of bit flags describing trust link attributes. A flag is true
	// (or set) if its value is equal to 1. The value is constructed from zero or more bit
	// flags from the following table, with the exception that bit F cannot be combined
	// with E or D.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | I | H | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | G | F | E | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Trust link MUST NOT allow transitivity.                                          |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Trust link MAY<57>  be valid.                                                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Trust link MUST be set for SID filtering of the client domain. For details about |
	//	|       | SID filtering, see [MS-PAC].                                                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Trust link can contain forest trust information.                                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| E     | Trust link is to either a domain or a forest that is not part of the enterprise  |
	//	|       | network.                                                                         |
	//	+-------+----------------------------------------------------------------------------------+
	//	| F     | Trust link is internal to the forest.                                            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| G     | Trust is to be treated as external for trust boundary purposes.                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| H     | Domain is parent domain.                                                         |
	//	+-------+----------------------------------------------------------------------------------+
	//	| I     | Domain is root of another forest.                                                |
	//	+-------+----------------------------------------------------------------------------------+
	TrustAttributes uint32 `idl:"name:TrustAttributes" json:"trust_attributes"`
	// DomainSid: A pointer to a SID structure ([MS-DTYP] section 2.4.2.3) that identifies
	// the current domain. If the TrustAttributes field is set to C or D, the value is 0.
	DomainSID *dtyp.SID `idl:"name:DomainSid" json:"domain_sid"`
	// DomainGuid: A GUID structure ([MS-DTYP] section 2.3.4.1) that identifies the current
	// domain.
	DomainGUID *dtyp.GUID `idl:"name:DomainGuid" json:"domain_guid"`
}

DSDomainTrustsw structure represents DS_DOMAIN_TRUSTSW RPC structure.

The DS_DOMAIN_TRUSTSW structure defines information about a domain trust. It is part of the NETLOGON_TRUSTED_DOMAIN_ARRAY structure, as specified in section 2.2.1.6.3, returned by the DsrEnumerateDomainTrusts method, as specified in section 3.5.4.7.1. This structure SHOULD<54> contain naming information and trust-related information for a specific trusted domain.

func (*DSDomainTrustsw) MarshalNDR

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

func (*DSDomainTrustsw) UnmarshalNDR

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

type DatabaseDeltasRequest

type DatabaseDeltasRequest struct {
	// PrimaryName: The custom binding handle (as defined in section 3.5.4.1) that represents
	// the connection to the PDC.
	PrimaryName string `idl:"name:PrimaryName;string" json:"primary_name"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the BDC calling this method.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains the
	// client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// DatabaseID: The identifier for a specific account database set as follows:
	//
	//	+------------+--------------------------------------+
	//	|            |                                      |
	//	|   VALUE    |               MEANING                |
	//	|            |                                      |
	//	+------------+--------------------------------------+
	//	+------------+--------------------------------------+
	//	| 0x00000000 | Indicates the SAM database.          |
	//	+------------+--------------------------------------+
	//	| 0x00000001 | Indicates the SAM built-in database. |
	//	+------------+--------------------------------------+
	//	| 0x00000002 | Indicates the LSA database.          |
	//	+------------+--------------------------------------+
	DatabaseID uint32 `idl:"name:DatabaseID" json:"database_id"`
	// DomainModifiedCount: A pointer to an NLPR_MODIFIED_COUNT structure, as specified
	// in section 2.2.1.5.26, that contains the database serial number. On input, this is
	// the value of the database serial number on the client. On output, this is the value
	// of the database serial number corresponding to the last element (delta) returned
	// in the DeltaArray parameter.
	DomainModifiedCount *ModifiedCount `idl:"name:DomainModifiedCount" json:"domain_modified_count"`
	// PreferredMaximumLength: The value that specifies the preferred maximum size, in bytes,
	// of data to return in the DeltaArray parameter. This is not a hard upper limit but
	// serves as a guide to the server. The server SHOULD<218> stop including elements in
	// the returned DeltaArray after the size of the returned data equals or exceeds the
	// value of the PreferredMaximumLength parameter. It is up to the client implementation
	// to choose the value for this parameter.
	PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"`
}

DatabaseDeltasRequest structure represents the NetrDatabaseDeltas operation request

func (*DatabaseDeltasRequest) MarshalNDR

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

func (*DatabaseDeltasRequest) UnmarshalNDR

func (o *DatabaseDeltasRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseDeltasResponse

type DatabaseDeltasResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// DomainModifiedCount: A pointer to an NLPR_MODIFIED_COUNT structure, as specified
	// in section 2.2.1.5.26, that contains the database serial number. On input, this is
	// the value of the database serial number on the client. On output, this is the value
	// of the database serial number corresponding to the last element (delta) returned
	// in the DeltaArray parameter.
	DomainModifiedCount *ModifiedCount `idl:"name:DomainModifiedCount" json:"domain_modified_count"`
	// DeltaArray: A pointer to a NETLOGON_DELTA_ENUM_ARRAY structure that contains an array
	// of enumerated changes (deltas) to the specified database with database serial numbers
	// larger than the database serial number value specified in the input value of the
	// DomainModifiedCount parameter.
	DeltaArray *DeltaEnumArray `idl:"name:DeltaArray" json:"delta_array"`
	// Return: The NetrDatabaseDeltas return value.
	Return int32 `idl:"name:Return" json:"return"`
}

DatabaseDeltasResponse structure represents the NetrDatabaseDeltas operation response

func (*DatabaseDeltasResponse) MarshalNDR

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

func (*DatabaseDeltasResponse) UnmarshalNDR

func (o *DatabaseDeltasResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseRedoRequest

type DatabaseRedoRequest struct {
	// PrimaryName: The custom binding handle, defined in section 3.5.4.1, representing
	// the connection to the PDC.
	PrimaryName string `idl:"name:PrimaryName;string" json:"primary_name"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the BDC calling this method.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// ChangeLogEntry: A pointer to a buffer that contains a CHANGELOG_ENTRY structure,
	// specified as follows, for the account being queried.
	ChangeLogEntry []byte `idl:"name:ChangeLogEntry;size_is:(ChangeLogEntrySize)" json:"change_log_entry"`
	// ChangeLogEntrySize: The size, in bytes, of the buffer pointed to by the ChangeLogEntry
	// parameter.
	ChangeLogEntrySize uint32 `idl:"name:ChangeLogEntrySize" json:"change_log_entry_size"`
}

DatabaseRedoRequest structure represents the NetrDatabaseRedo operation request

func (*DatabaseRedoRequest) MarshalNDR

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

func (*DatabaseRedoRequest) UnmarshalNDR

func (o *DatabaseRedoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseRedoResponse

type DatabaseRedoResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// DeltaArray: A pointer to a NETLOGON_DELTA_ENUM_ARRAY structure, as specified in section
	// 2.2.1.5.12, that contains an array of enumerated database changes for the account
	// being queried.
	DeltaArray *DeltaEnumArray `idl:"name:DeltaArray" json:"delta_array"`
	// Return: The NetrDatabaseRedo return value.
	Return int32 `idl:"name:Return" json:"return"`
}

DatabaseRedoResponse structure represents the NetrDatabaseRedo operation response

func (*DatabaseRedoResponse) MarshalNDR

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

func (*DatabaseRedoResponse) UnmarshalNDR

func (o *DatabaseRedoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseSync2Request

type DatabaseSync2Request struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1, that represents
	// the connection to the PDC.
	PrimaryName string `idl:"name:PrimaryName;string" json:"primary_name"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the BDC calling this method.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// DatabaseID: The identifier for a specific database for which the changes are requested.
	// It MUST be one of the following values.
	//
	//	+------------+--------------------------------------+
	//	|            |                                      |
	//	|   VALUE    |               MEANING                |
	//	|            |                                      |
	//	+------------+--------------------------------------+
	//	+------------+--------------------------------------+
	//	| 0x00000000 | Indicates the SAM database.          |
	//	+------------+--------------------------------------+
	//	| 0x00000001 | Indicates the SAM built-in database. |
	//	+------------+--------------------------------------+
	//	| 0x00000002 | Indicates the LSA database.          |
	//	+------------+--------------------------------------+
	DatabaseID uint32 `idl:"name:DatabaseID" json:"database_id"`
	// RestartState: Specifies whether this is a restart of the series of the synchronization
	// calls and how to interpret SyncContext. This value MUST be NormalState unless this
	// is the restart, in which case the value MUST be set as specified in the description
	// of the SyncContext parameter.
	RestartState SyncState `idl:"name:RestartState" json:"restart_state"`
	// SyncContext: Specifies context needed to continue the operation. The value MUST be
	// set to zero on the first call. The caller MUST treat this as an opaque value, unless
	// this call is a restart of the series of synchronization calls. The value returned
	// is to be used on input for the next call in the series of synchronization calls.
	//
	// If this call is the restart of the series, the values of the RestartState and the
	// SyncContext parameters are dependent on the DeltaType value received on the last
	// call before the restart and MUST be set as follows. Find the last NETLOGON_DELTA_ENUM
	// structure in the DeltaArray parameter of the call. The DeltaType field of this NETLOGON_DELTA_ENUM
	// structure, as specified in section 2.2.1.5.11, is the DeltaType needed for the restart.
	// The values of RestartState and SyncContext are then determined from the following
	// table.
	//
	//	+---------------------------------------+------------------+------------------------------------------+
	//	|                                       |                  |                                          |
	//	|               DELTATYPE               |   RESTARTSTATE   |               SYNCCONTEXT                |
	//	|                                       |                  |                                          |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| AddOrChangeGroup                      | GroupState       | The value of the RID of the last element |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| AddOrChangeUser                       | UserState        | The value of the RID of the last element |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| ChangeGroupMembership                 | GroupMemberState | The value of the RID of the last element |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| AddOrChangeAlias                      | AliasState       | 0x00000000                               |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| ChangeAliasMembership                 | AliasMemberState | 0x00000000                               |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| Any other value not previously listed | NormalState      | 0x00000000                               |
	//	+---------------------------------------+------------------+------------------------------------------+
	SyncContext uint32 `idl:"name:SyncContext" json:"sync_context"`
	// PreferredMaximumLength: The value that specifies the preferred maximum size, in bytes,
	// of data referenced in the DeltaArray parameter. This is not a hard upper limit but
	// serves as a guide to the server. The server SHOULD<221> stop including elements in
	// the returned DeltaArray once the size of the returned data equals or exceeds the
	// value of the PreferredMaximumLength parameter. It is up to the client implementation
	// to choose the value for this parameter.
	PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"`
}

DatabaseSync2Request structure represents the NetrDatabaseSync2 operation request

func (*DatabaseSync2Request) MarshalNDR

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

func (*DatabaseSync2Request) UnmarshalNDR

func (o *DatabaseSync2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseSync2Response

type DatabaseSync2Response struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// SyncContext: Specifies context needed to continue the operation. The value MUST be
	// set to zero on the first call. The caller MUST treat this as an opaque value, unless
	// this call is a restart of the series of synchronization calls. The value returned
	// is to be used on input for the next call in the series of synchronization calls.
	//
	// If this call is the restart of the series, the values of the RestartState and the
	// SyncContext parameters are dependent on the DeltaType value received on the last
	// call before the restart and MUST be set as follows. Find the last NETLOGON_DELTA_ENUM
	// structure in the DeltaArray parameter of the call. The DeltaType field of this NETLOGON_DELTA_ENUM
	// structure, as specified in section 2.2.1.5.11, is the DeltaType needed for the restart.
	// The values of RestartState and SyncContext are then determined from the following
	// table.
	//
	//	+---------------------------------------+------------------+------------------------------------------+
	//	|                                       |                  |                                          |
	//	|               DELTATYPE               |   RESTARTSTATE   |               SYNCCONTEXT                |
	//	|                                       |                  |                                          |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| AddOrChangeGroup                      | GroupState       | The value of the RID of the last element |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| AddOrChangeUser                       | UserState        | The value of the RID of the last element |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| ChangeGroupMembership                 | GroupMemberState | The value of the RID of the last element |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| AddOrChangeAlias                      | AliasState       | 0x00000000                               |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| ChangeAliasMembership                 | AliasMemberState | 0x00000000                               |
	//	+---------------------------------------+------------------+------------------------------------------+
	//	| Any other value not previously listed | NormalState      | 0x00000000                               |
	//	+---------------------------------------+------------------+------------------------------------------+
	SyncContext uint32 `idl:"name:SyncContext" json:"sync_context"`
	// DeltaArray: A pointer to a NETLOGON_DELTA_ENUM_ARRAY structure, as specified in section
	// 2.2.1.5.12, that contains an array of enumerated changes (deltas) to the specified
	// database.
	DeltaArray *DeltaEnumArray `idl:"name:DeltaArray" json:"delta_array"`
	// Return: The NetrDatabaseSync2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

DatabaseSync2Response structure represents the NetrDatabaseSync2 operation response

func (*DatabaseSync2Response) MarshalNDR

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

func (*DatabaseSync2Response) UnmarshalNDR

func (o *DatabaseSync2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseSyncRequest

type DatabaseSyncRequest struct {
	PrimaryName            string         `idl:"name:PrimaryName;string" json:"primary_name"`
	ComputerName           string         `idl:"name:ComputerName;string" json:"computer_name"`
	Authenticator          *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	ReturnAuthenticator    *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	DatabaseID             uint32         `idl:"name:DatabaseID" json:"database_id"`
	SyncContext            uint32         `idl:"name:SyncContext" json:"sync_context"`
	PreferredMaximumLength uint32         `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"`
}

DatabaseSyncRequest structure represents the NetrDatabaseSync operation request

func (*DatabaseSyncRequest) MarshalNDR

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

func (*DatabaseSyncRequest) UnmarshalNDR

func (o *DatabaseSyncRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DatabaseSyncResponse

type DatabaseSyncResponse struct {
	ReturnAuthenticator *Authenticator  `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	SyncContext         uint32          `idl:"name:SyncContext" json:"sync_context"`
	DeltaArray          *DeltaEnumArray `idl:"name:DeltaArray" json:"delta_array"`
	// Return: The NetrDatabaseSync return value.
	Return int32 `idl:"name:Return" json:"return"`
}

DatabaseSyncResponse structure represents the NetrDatabaseSync operation response

func (*DatabaseSyncResponse) MarshalNDR

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

func (*DatabaseSyncResponse) UnmarshalNDR

func (o *DatabaseSyncResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeltaAccounts

type DeltaAccounts struct {
	// PrivilegeEntries: The number of privileges associated with the LSA account.
	PrivilegeEntries uint32 `idl:"name:PrivilegeEntries" json:"privilege_entries"`
	// PrivilegeControl: A bit flag describing the properties of the account privileges.
	// A flag is TRUE (or set) if its value is equal to 1. The PrivilegeControl value is
	// as follows.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | All of the specified privileges MUST be held by the process that is requesting   |
	//	|       | access.                                                                          |
	//	+-------+----------------------------------------------------------------------------------+
	PrivilegeControl uint32 `idl:"name:PrivilegeControl" json:"privilege_control"`
	// PrivilegeAttributes: Pointer to an array of unsigned 32-bit values that contain a
	// set of bit flags describing each privilege's attributes. An attribute is TRUE (or
	// set) if its value is equal to 1. The value is constructed from zero or more bit flags
	// from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------+
	//	|       |                                  |
	//	| VALUE |           DESCRIPTION            |
	//	|       |                                  |
	//	+-------+----------------------------------+
	//	+-------+----------------------------------+
	//	| A     | Privilege is enabled by default. |
	//	+-------+----------------------------------+
	//	| B     | Privilege is enabled.            |
	//	+-------+----------------------------------+
	PrivilegeAttributes []uint32 `idl:"name:PrivilegeAttributes;size_is:(PrivilegeEntries)" json:"privilege_attributes"`
	// PrivilegeNames: A pointer to an array of privilege names represented as RPC_UNICODE_STRING
	// structures. See [MS-DTYP] section 2.3.10 for a specification of the RPC_UNICODE_STRING
	// structure. The names of the privileges are implementation specific.
	PrivilegeNames []*dtyp.UnicodeString `idl:"name:PrivilegeNames;size_is:(PrivilegeEntries)" json:"privilege_names"`
	// QuotaLimits: An NLPR_QUOTA_LIMITS structure (section 2.2.1.5.2) that describes the
	// account's current quota settings.
	QuotaLimits *QuotaLimits `idl:"name:QuotaLimits" json:"quota_limits"`
	// SystemAccessFlags: A set of the following bit flags that specify the ways in which
	// the account is permitted to access the system as detailed in POLICY_MODE_INTERACTIVE,
	// POLICY_MODE_NETWORK, POLICY_MODE_BATCH, POLICY_MODE_SERVICE, and POLICY_MODE_PROXY
	// of [MS-LSAD]. See [MS-LSAD] for the specification of these bit values and allowed
	// combinations.
	SystemAccessFlags uint32 `idl:"name:SystemAccessFlags" json:"system_access_flags"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that specifies portions of a security descriptor about the trusted
	// domain.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of the SecurityDescriptor field.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6, that describes the security settings for the account object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	// contains filtered or unexported fields
}

DeltaAccounts structure represents NETLOGON_DELTA_ACCOUNTS RPC structure.

The NETLOGON_DELTA_ACCOUNTS structure contains the settings and privileges for a Local Security Authority (LSA) account. This structure is used for replicating the LSA account data from the primary domain controller (PDC) to a backup domain controller (BDC).

func (*DeltaAccounts) MarshalNDR

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

func (*DeltaAccounts) UnmarshalNDR

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

type DeltaAlias

type DeltaAlias struct {
	// Name: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the alias name.
	Name *dtyp.UnicodeString `idl:"name:Name" json:"name"`
	// RelativeId: The RID for the alias.
	RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that contains security settings for the alias.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of the SecurityDescriptor field.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6, that describes the security information for the alias object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	// Comment: An RPC_UNICODE_STRING that contains the administrative comment string for
	// the alias.
	Comment *dtyp.UnicodeString `idl:"name:Comment" json:"comment"`
	// contains filtered or unexported fields
}

DeltaAlias structure represents NETLOGON_DELTA_ALIAS RPC structure.

The NETLOGON_DELTA_ALIAS structure contains information about a SAM alias. This structure is used to replicate the SAM alias data from the PDC to a BDC.

func (*DeltaAlias) MarshalNDR

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

func (*DeltaAlias) UnmarshalNDR

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

type DeltaAliasMember

type DeltaAliasMember struct {
	// Members: An NLPR_SID_ARRAY structure, as specified in section 2.2.1.5.6, that contains
	// an array of SIDs for each member of the alias.
	Members *SIDArray `idl:"name:Members" json:"members"`
	// contains filtered or unexported fields
}

DeltaAliasMember structure represents NETLOGON_DELTA_ALIAS_MEMBER RPC structure.

The NETLOGON_DELTA_ALIAS_MEMBER structure contains all the members of a SAM alias. This structure is used for replicating the SAM alias data from the PDC to a BDC, as detailed in section 3.6.

func (*DeltaAliasMember) MarshalNDR

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

func (*DeltaAliasMember) UnmarshalNDR

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

type DeltaDeleteGroup

type DeltaDeleteGroup struct {
	// AccountName: A null-terminated Unicode string that contains the name of the group
	// to delete.
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// contains filtered or unexported fields
}

DeltaDeleteGroup structure represents NETLOGON_DELTA_DELETE_GROUP RPC structure.

The NETLOGON_DELTA_DELETE_GROUP structure contains information about a group to be deleted in the database. This structure is used for replicating the SAM group data from the PDC to a BDC, as detailed in section 3.6.

func (*DeltaDeleteGroup) MarshalNDR

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

func (*DeltaDeleteGroup) UnmarshalNDR

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

type DeltaDeleteUser

type DeltaDeleteUser struct {
	// AccountName: A null-terminated Unicode string that contains the name of the user
	// to delete.
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// contains filtered or unexported fields
}

DeltaDeleteUser structure represents NETLOGON_DELTA_DELETE_USER RPC structure.

The NETLOGON_DELTA_DELETE_USER structure contains information about a user account to be deleted in the database.

func (*DeltaDeleteUser) MarshalNDR

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

func (*DeltaDeleteUser) UnmarshalNDR

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

type DeltaDomain

type DeltaDomain struct {
	DomainName            *dtyp.UnicodeString `idl:"name:DomainName" json:"domain_name"`
	OEMInformation        *dtyp.UnicodeString `idl:"name:OemInformation" json:"oem_information"`
	ForceLogoff           *OldLargeInteger    `idl:"name:ForceLogoff" json:"force_logoff"`
	MinPasswordLength     uint16              `idl:"name:MinPasswordLength" json:"min_password_length"`
	PasswordHistoryLength uint16              `idl:"name:PasswordHistoryLength" json:"password_history_length"`
	MaxPasswordAge        *OldLargeInteger    `idl:"name:MaxPasswordAge" json:"max_password_age"`
	MinPasswordAge        *OldLargeInteger    `idl:"name:MinPasswordAge" json:"min_password_age"`
	DomainModifiedCount   *OldLargeInteger    `idl:"name:DomainModifiedCount" json:"domain_modified_count"`
	DomainCreationTime    *OldLargeInteger    `idl:"name:DomainCreationTime" json:"domain_creation_time"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that specifies portions of a security descriptor about the domain.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of the SecurityDescriptor field.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6, that contains the security settings for the domain object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	// DomainLockoutInformation: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP]
	// section 2.3.10, that contains the domain lockout information detailed in [MS-SAMR].
	// The Buffer field points to the SAMPR_DOMAIN_LOCKOUT_INFORMATION structure, as specified
	// in [MS-SAMR] section 2.2.3.15, and the Length and MaximumLength fields are set to
	// the size in bytes of the SAMPR_DOMAIN_LOCKOUT_INFORMATION structure pointed to by
	// the Buffer field.
	DomainLockoutInformation *dtyp.UnicodeString `idl:"name:DomainLockoutInformation" json:"domain_lockout_information"`

	PasswordProperties uint32 `idl:"name:PasswordProperties" json:"password_properties"`
	// contains filtered or unexported fields
}

DeltaDomain structure represents NETLOGON_DELTA_DOMAIN RPC structure.

The NETLOGON_DELTA_DOMAIN structure contains information about a domain. Most of the fields in this structure are obtained by querying the database. This structure is used to replicate the domain data from the PDC to a BDC, as detailed in Netlogon NT Replicaton Details (section 3.6).

All fields of this structure, except the fields detailed following the structure definition, have the same meaning as the identically named fields in the Domain Fields section in [MS-SAMR] section 2.2.3.1.

func (*DeltaDomain) MarshalNDR

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

func (*DeltaDomain) UnmarshalNDR

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

type DeltaEnum

type DeltaEnum struct {
	// DeltaType: One of the values from the NETLOGON_DELTA_TYPE enumeration, as specified
	// in section 2.2.1.5.28.
	DeltaType DeltaType `idl:"name:DeltaType" json:"delta_type"`
	// DeltaID: One of the NETLOGON_DELTA_ID_UNION union (section 2.2.1.5.18) types selected
	// based on the value of the DeltaType field.
	DeltaID *DeltaIDUnion `idl:"name:DeltaID;switch_is:DeltaType" json:"delta_id"`
	// DeltaUnion: One of the NETLOGON_DELTA_UNION union (section 2.2.1.5.27) types selected
	// based on the value of the DeltaType.
	DeltaUnion *DeltaUnion `idl:"name:DeltaUnion;switch_is:DeltaType" json:"delta_union"`
}

DeltaEnum structure represents NETLOGON_DELTA_ENUM RPC structure.

The NETLOGON_DELTA_ENUM structure defines a common structure that encapsulates all possible types of database changes. Database changes, in the context of Netlogon, are called deltas.

func (*DeltaEnum) MarshalNDR

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

func (*DeltaEnum) UnmarshalNDR

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

type DeltaEnumArray

type DeltaEnumArray struct {
	// CountReturned: The number of elements in the Deltas field.
	CountReturned uint32 `idl:"name:CountReturned" json:"count_returned"`
	// Deltas: An array of NETLOGON_DELTA_ENUM structures, as specified in section 2.2.1.5.11.
	Deltas []*DeltaEnum `idl:"name:Deltas;size_is:(CountReturned)" json:"deltas"`
}

DeltaEnumArray structure represents NETLOGON_DELTA_ENUM_ARRAY RPC structure.

The NETLOGON_DELTA_ENUM_ARRAY structure defines an array of delta objects.

func (*DeltaEnumArray) MarshalNDR

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

func (*DeltaEnumArray) UnmarshalNDR

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

type DeltaGroup

type DeltaGroup struct {
	// Name: A RPC_UNICODE_STRING structure that contains the group name.
	Name *dtyp.UnicodeString `idl:"name:Name" json:"name"`
	// RelativeId: The RID for the group.
	RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"`
	// Attributes: A set of bit flags that describe attributes of the SID. An attribute
	// is true (or set) if its value is equal to 1. The value is constructed from one or
	// more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | The SID cannot have the SE_GROUP_ENABLED attribute removed. Corresponds to       |
	//	|       | the SID attribute SE_GROUP_MANDATORY. This attribute prevents the user from      |
	//	|       | disabling the group. Disabling a group causes the group to be ignored by access  |
	//	|       | validation routines.                                                             |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | The SID is enabled by default (as opposed to being enabled by an application).   |
	//	|       | Corresponds to the SID attribute SE_GROUP_ENABLED_BY_DEFAULT.                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | The SID is enabled for access checks. Corresponds to the SID attribute           |
	//	|       | SE_GROUP_ENABLED.                                                                |
	//	+-------+----------------------------------------------------------------------------------+
	Attributes uint32 `idl:"name:Attributes" json:"attributes"`
	// AdminComment: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section
	// 2.3.10, that contains an administrative comment for the group.
	AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that specifies portions of a security descriptor about the group.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of the SecurityDescriptor field.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6, that contains the security settings of the group object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	// contains filtered or unexported fields
}

DeltaGroup structure represents NETLOGON_DELTA_GROUP RPC structure.

The NETLOGON_DELTA_GROUP structure contains information about a SAM group account. This structure is used for replicating the group data from the PDC to a BDC, as detailed in section 3.6.

func (*DeltaGroup) MarshalNDR

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

func (*DeltaGroup) UnmarshalNDR

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

type DeltaGroupMember

type DeltaGroupMember struct {
	Members     []uint32 `idl:"name:Members;size_is:(MemberCount)" json:"members"`
	Attributes  []uint32 `idl:"name:Attributes;size_is:(MemberCount)" json:"attributes"`
	MemberCount uint32   `idl:"name:MemberCount" json:"member_count"`
	// contains filtered or unexported fields
}

DeltaGroupMember structure represents NETLOGON_DELTA_GROUP_MEMBER RPC structure.

The NETLOGON_DELTA_GROUP_MEMBER structure contains information about members of a group by providing pointers to a list of group members and their respective attributes. This structure is used to replicate the group membership data from the PDC to a BDC, as detailed in section 3.6.

All fields of this structure, except the fields detailed following the structure definition, have the same meanings as the identically named fields of the SAMPR_GET_MEMBERS_BUFFER structure, as specified in [MS-SAMR] section 2.2.7.14. The last four fields of the structure (DummyLong1, DummyLong2, DummyLong3, and DummyLong4) are not found in [MS-SAMR].

func (*DeltaGroupMember) MarshalNDR

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

func (*DeltaGroupMember) UnmarshalNDR

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

type DeltaIDUnion

type DeltaIDUnion struct {
	// Types that are assignable to Value
	//
	// *DeltaIDUnion_RID
	// *DeltaIDUnion_SID
	// *DeltaIDUnion_Name
	// *DeltaIDUnion_DefaultDeltaIDUnion
	Value is_DeltaIDUnion `json:"value"`
}

DeltaIDUnion structure represents NETLOGON_DELTA_ID_UNION RPC union.

The NETLOGON_DELTA_ID_UNION union defines an account identifier type that is selected based on the requested database change.

func (*DeltaIDUnion) GetValue

func (o *DeltaIDUnion) GetValue() any

func (*DeltaIDUnion) MarshalUnionNDR

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

func (*DeltaIDUnion) NDRSwitchValue

func (o *DeltaIDUnion) NDRSwitchValue(sw uint16) uint16

func (*DeltaIDUnion) UnmarshalUnionNDR

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

type DeltaIDUnion_DefaultDeltaIDUnion

type DeltaIDUnion_DefaultDeltaIDUnion struct {
}

DeltaIDUnion_DefaultDeltaIDUnion structure represents NETLOGON_DELTA_ID_UNION RPC default union arm.

func (*DeltaIDUnion_DefaultDeltaIDUnion) MarshalNDR

func (*DeltaIDUnion_DefaultDeltaIDUnion) UnmarshalNDR

type DeltaIDUnion_Name

type DeltaIDUnion_Name struct {
	// Name: A null-terminated Unicode string that contains an identifier name. This identifier
	// type is selected when the following delta types are switched: AddOrChangeLsaSecret(18)
	// and DeleteLsaSecret(19).
	Name string `idl:"name:Name;string" json:"name"`
}

DeltaIDUnion_Name structure represents NETLOGON_DELTA_ID_UNION RPC union arm.

It has following labels: 18, 19

func (*DeltaIDUnion_Name) MarshalNDR

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

func (*DeltaIDUnion_Name) UnmarshalNDR

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

type DeltaIDUnion_RID

type DeltaIDUnion_RID struct {
	// Rid: A 32-bit RID whose type is selected when the following delta types are switched:
	// AddOrChangeDomain(1), AddOrChangeGroup(2), RenameGroup(4), DeleteGroup(3), AddOrChangeUser(5),
	// DeleteUser(6), RenameUser(7), ChangeGroupMembership(8), AddOrChangeAlias(9), DeleteAlias(10),
	// RenameAlias(11), ChangeAliasMembership(12), DeleteGroupByName(20), and DeleteUserByName(21).
	RID uint32 `idl:"name:Rid" json:"rid"`
}

DeltaIDUnion_RID structure represents NETLOGON_DELTA_ID_UNION RPC union arm.

It has following labels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 20, 21

func (*DeltaIDUnion_RID) MarshalNDR

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

func (*DeltaIDUnion_RID) UnmarshalNDR

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

type DeltaIDUnion_SID

type DeltaIDUnion_SID struct {
	// Sid: A pointer to a SID whose type is selected when the following delta types are
	// switched: AddOrChangeLsaPolicy(13), AddOrChangeLsaDomain(14), DeleteLsaTDomain(15),
	// AddOrChangeLsaAccount(16), and DeleteLsaAccount(17).
	SID *dtyp.SID `idl:"name:Sid" json:"sid"`
}

DeltaIDUnion_SID structure represents NETLOGON_DELTA_ID_UNION RPC union arm.

It has following labels: 13, 14, 15, 16, 17

func (*DeltaIDUnion_SID) MarshalNDR

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

func (*DeltaIDUnion_SID) UnmarshalNDR

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

type DeltaPolicy

type DeltaPolicy struct {
	// MaximumLogSize: This field has the same meaning as the identically named field of
	// the POLICY_AUDIT_LOG_INFO structure, as specified in [MS-LSAD] section 2.2.4.3.
	MaximumLogSize uint32 `idl:"name:MaximumLogSize" json:"maximum_log_size"`
	// AuditRetentionPeriod: This field has the same meaning as the identically named field
	// of the POLICY_AUDIT_LOG_INFO structure, as specified in [MS-LSAD] section 2.2.4.3.
	AuditRetentionPeriod *OldLargeInteger `idl:"name:AuditRetentionPeriod" json:"audit_retention_period"`
	// AuditingMode: This field has the same meaning as the identically named field of the
	// LSAPR_POLICY_AUDIT_EVENTS_INFO structure, as specified in [MS-LSAD] section 2.2.4.4.
	AuditingMode uint8 `idl:"name:AuditingMode" json:"auditing_mode"`
	// MaximumAuditEventCount: This field has the same meaning as the identically named
	// field of the LSAPR_POLICY_AUDIT_EVENTS_INFO structure, as specified in [MS-LSAD]
	// section 2.2.4.4.
	MaximumAuditEventCount uint32 `idl:"name:MaximumAuditEventCount" json:"maximum_audit_event_count"`
	// EventAuditingOptions: This field has the same meaning as the identically named field
	// of the LSAPR_POLICY_AUDIT_EVENTS_INFO structure, as specified in [MS-LSAD] section
	// 2.2.4.4.
	EventAuditingOptions []uint32 `idl:"name:EventAuditingOptions;size_is:((MaximumAuditEventCount+1))" json:"event_auditing_options"`
	// PrimaryDomainName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section
	// 2.3.10, that contains the NetBIOS name of the primary domain.
	PrimaryDomainName *dtyp.UnicodeString `idl:"name:PrimaryDomainName" json:"primary_domain_name"`
	// PrimaryDomainSid:A pointer to the SID for the primary domain.
	PrimaryDomainSID *dtyp.SID `idl:"name:PrimaryDomainSid" json:"primary_domain_sid"`
	// QuotaLimits: An NLPR_QUOTA_LIMITS structure, as specified in section 2.2.1.5.2, that
	// contains information about system resource quotas imposed on an account.
	QuotaLimits *QuotaLimits `idl:"name:QuotaLimits" json:"quota_limits"`
	// ModifiedId: An OLD_LARGE_INTEGER structure, as specified in [MS-SAMR] section 2.2.2.2,
	// that contains the count that is incremented each time the database is modified. This
	// count is the database serial number for the database.
	ModifiedID *OldLargeInteger `idl:"name:ModifiedId" json:"modified_id"`
	// DatabaseCreationTime: A 64-bit time stamp, equivalent to a FILETIME, specifying when
	// the database was created.
	DatabaseCreationTime *OldLargeInteger `idl:"name:DatabaseCreationTime" json:"database_creation_time"`
	// SecurityInformation: A SECURITY_INFORMATION bit flag that contains security information
	// about the policy. For details about SECURITY_INFORMATION structure, see [MS-DTYP]
	// section 2.4.7.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of the SecurityDescriptor field.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6, that describes the security settings for the LSA policy
	// object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	// contains filtered or unexported fields
}

DeltaPolicy structure represents NETLOGON_DELTA_POLICY RPC structure.

The NETLOGON_DELTA_POLICY structure contains information about the LSA policy. This structure is used for replicating the LSA policy data from the PDC to a BDC, as detailed in section 3.6.

func (*DeltaPolicy) MarshalNDR

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

func (*DeltaPolicy) UnmarshalNDR

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

type DeltaSecret

type DeltaSecret struct {
	// CurrentValue: An NLPR_CR_CIPHER_VALUE structure, as specified in section 2.2.1.5.20,
	// that contains the encrypted current value of the LSA secret.
	CurrentValue *CRCipherValue `idl:"name:CurrentValue" json:"current_value"`
	// CurrentValueSetTime: A 64-bit time stamp, equivalent to a FILETIME, at which the
	// current value of the LSA secret object was set.
	CurrentValueSetTime *OldLargeInteger `idl:"name:CurrentValueSetTime" json:"current_value_set_time"`
	// OldValue: An NLPR_CR_CIPHER_VALUE structure, as specified in section 2.2.1.5.20,
	// that contains the encrypted previous (old) value of the LSA secret.
	OldValue *CRCipherValue `idl:"name:OldValue" json:"old_value"`
	// OldValueSetTime: A 64-bit time stamp, equivalent to a FILETIME, at which the previous
	// value of the LSA secret object was set.
	OldValueSetTime *OldLargeInteger `idl:"name:OldValueSetTime" json:"old_value_set_time"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that specifies portions of a security descriptor about the secret
	// object.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of the SecurityDescriptor member.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6 that describes the security settings for the LSA secret object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	// contains filtered or unexported fields
}

DeltaSecret structure represents NETLOGON_DELTA_SECRET RPC structure.

The NETLOGON_DELTA_SECRET structure contains information about the LSA secret object, as specified in [MS-LSAD]. This structure is used to replicate the LSA secret object data from the PDC to a BDC, as detailed in section 3.6.

func (*DeltaSecret) MarshalNDR

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

func (*DeltaSecret) UnmarshalNDR

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

type DeltaTrustedDomains

type DeltaTrustedDomains struct {
	// DomainName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the NetBIOS name of the trusted domain.
	DomainName *dtyp.UnicodeString `idl:"name:DomainName" json:"domain_name"`
	// NumControllerEntries: Number of domain controller (DC) names listed in the ControllerNames
	// field.<51>
	ControllerEntriesLength uint32 `idl:"name:NumControllerEntries" json:"controller_entries_length"`
	// ControllerNames: Pointer to an array of RPC_UNICODE_STRING structures, as specified
	// in [MS-DTYP] section 2.3.10, that contain the NetBIOS names of the DCs in the trusted
	// domain. The only restriction is the maximum value of the 32-bit unsigned integer
	// enforced by RPC.<52>
	ControllerNames []*dtyp.UnicodeString `idl:"name:ControllerNames;size_is:(NumControllerEntries)" json:"controller_names"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that specifies portions of a security descriptor about the trusted
	// domain.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: Size, in bytes, of the SecurityDescriptor field.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: Pointer to a SECURITY_DESCRIPTOR structure, as specified in [MS-DTYP]
	// section 2.4.6 that describes the security settings for the trusted domain object.
	SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`

	// TrustedPosixOffset: The value that contains the POSIX offset for the trusted domain,
	// as specified in [MS-ADTS] section 6.1.6.
	TrustedPOSIXOffset uint32 `idl:"name:TrustedPosixOffset" json:"trusted_posix_offset"`
	// contains filtered or unexported fields
}

DeltaTrustedDomains structure represents NETLOGON_DELTA_TRUSTED_DOMAINS RPC structure.

The NETLOGON_DELTA_TRUSTED_DOMAINS structure contains information about a trusted domain. This structure is used for replicating the trusted domain data from the PDC to a BDC.

func (*DeltaTrustedDomains) MarshalNDR

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

func (*DeltaTrustedDomains) UnmarshalNDR

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

type DeltaType

type DeltaType uint16

DeltaType type represents NETLOGON_DELTA_TYPE RPC enumeration.

The NETLOGON_DELTA_TYPE enumeration defines an enumerated set of possible database changes.

var (
	// AddOrChangeDomain: Adds or changes a domain Security Account Manager (SAM) account.
	DeltaTypeAddOrChangeDomain DeltaType = 1
	// AddOrChangeGroup: Adds or changes a group SAM account.
	DeltaTypeAddOrChangeGroup DeltaType = 2
	// DeleteGroup: Deletes a group SAM account.
	DeltaTypeDeleteGroup DeltaType = 3
	// RenameGroup: Renames a group SAM account.
	DeltaTypeRenameGroup DeltaType = 4
	// AddOrChangeUser: Adds or changes a user SAM account.
	DeltaTypeAddOrChangeUser DeltaType = 5
	// DeleteUser: Deletes a user SAM account.
	DeltaTypeDeleteUser DeltaType = 6
	// RenameUser: Renames a user SAM account.
	DeltaTypeRenameUser DeltaType = 7
	// ChangeGroupMembership: Changes a group membership record.
	DeltaTypeChangeGroupMembership DeltaType = 8
	// AddOrChangeAlias: Adds or changes an alias.
	DeltaTypeAddOrChangeAlias DeltaType = 9
	// DeleteAlias: Deletes an alias.
	DeltaTypeDeleteAlias DeltaType = 10
	// RenameAlias: Renames an alias.
	DeltaTypeRenameAlias DeltaType = 11
	// ChangeAliasMembership: Changes the membership record for an alias.
	DeltaTypeChangeAliasMembership DeltaType = 12
	// AddOrChangeLsaPolicy: Adds or changes an LSA policy.
	DeltaTypeAddOrChangeLSAPolicy DeltaType = 13
	// AddOrChangeLsaTDomain: Adds or changes a trusted domain account.
	DeltaTypeAddOrChangeLSADomain DeltaType = 14
	// DeleteLsaTDomain: Deletes a trusted domain account.
	DeltaTypeDeleteLSADomain DeltaType = 15
	// AddOrChangeLsaAccount: Adds or changes an LSA user or machine account.
	DeltaTypeAddOrChangeLSAAccount DeltaType = 16
	// DeleteLsaAccount: Deletes an LSA user or machine account.
	DeltaTypeDeleteLSAAccount DeltaType = 17
	// AddOrChangeLsaSecret: Adds or changes an LSA encrypted data block.
	DeltaTypeAddOrChangeLSASecret DeltaType = 18
	// DeleteLsaSecret: Deletes an LSA encrypted data block.
	//
	// The following three types MAY<53> have an additional requirement.
	DeltaTypeDeleteLSASecret DeltaType = 19
	// DeleteGroupByName: Deletes a group account based on a string name.
	DeltaTypeDeleteGroupByName DeltaType = 20
	// DeleteUserByName: Deletes a user account based on a string name.
	DeltaTypeDeleteUserByName DeltaType = 21
	// SerialNumberSkip: Updates the database serial number.
	DeltaTypeSerialNumberSkip DeltaType = 22
)

func (DeltaType) String

func (o DeltaType) String() string

type DeltaUnion

type DeltaUnion struct {
	// Types that are assignable to Value
	//
	// *DeltaUnion_DeltaDomain
	// *DeltaUnion_DeltaGroup
	// *DeltaUnion_DeltaRenameGroup
	// *DeltaUnion_DeltaUser
	// *DeltaUnion_DeltaRenameUser
	// *DeltaUnion_DeltaGroupMember
	// *DeltaUnion_DeltaAlias
	// *DeltaUnion_DeltaRenameAlias
	// *DeltaUnion_DeltaAliasMember
	// *DeltaUnion_DeltaPolicy
	// *DeltaUnion_DeltaDomains
	// *DeltaUnion_DeltaAccounts
	// *DeltaUnion_DeltaSecret
	// *DeltaUnion_DeltaDeleteGroup
	// *DeltaUnion_DeltaDeleteUser
	// *DeltaUnion_DeltaSerialNumberSkip
	// *DeltaUnion_DefaultDeltaUnion
	Value is_DeltaUnion `json:"value"`
}

DeltaUnion structure represents NETLOGON_DELTA_UNION RPC union.

The NETLOGON_DELTA_UNION union defines a union of all types of database changes (deltas).

func (*DeltaUnion) GetValue

func (o *DeltaUnion) GetValue() any

func (*DeltaUnion) MarshalUnionNDR

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

func (*DeltaUnion) NDRSwitchValue

func (o *DeltaUnion) NDRSwitchValue(sw uint16) uint16

func (*DeltaUnion) UnmarshalUnionNDR

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

type DeltaUnion_DefaultDeltaUnion

type DeltaUnion_DefaultDeltaUnion struct {
}

DeltaUnion_DefaultDeltaUnion structure represents NETLOGON_DELTA_UNION RPC default union arm.

func (*DeltaUnion_DefaultDeltaUnion) MarshalNDR

func (*DeltaUnion_DefaultDeltaUnion) UnmarshalNDR

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

type DeltaUnion_DeltaAccounts

type DeltaUnion_DeltaAccounts struct {
	// DeltaAccounts: A pointer to a NETLOGON_DELTA_ACCOUNTS structure, as specified in
	// section 2.2.1.5.3, that describes an LSA account. This structure is selected when
	// the delta type is AddOrChangeLsaAccount.
	DeltaAccounts *DeltaAccounts `idl:"name:DeltaAccounts" json:"delta_accounts"`
}

DeltaUnion_DeltaAccounts structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 16

func (*DeltaUnion_DeltaAccounts) MarshalNDR

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

func (*DeltaUnion_DeltaAccounts) UnmarshalNDR

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

type DeltaUnion_DeltaAlias

type DeltaUnion_DeltaAlias struct {
	// DeltaAlias: A pointer to a NETLOGON_DELTA_ALIAS structure, as specified in section
	// 2.2.1.5.4, that describes an alias. This structure is selected when the delta type
	// is AddOrChangeAlias.
	DeltaAlias *DeltaAlias `idl:"name:DeltaAlias" json:"delta_alias"`
}

DeltaUnion_DeltaAlias structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 9

func (*DeltaUnion_DeltaAlias) MarshalNDR

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

func (*DeltaUnion_DeltaAlias) UnmarshalNDR

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

type DeltaUnion_DeltaAliasMember

type DeltaUnion_DeltaAliasMember struct {
	// DeltaAliasMember: A pointer to a NETLOGON_DELTA_ALIAS_MEMBER structure, as specified
	// in section 2.2.1.5.7, that describes an alias membership. This structure is selected
	// when the delta type is ChangeAliasMembership.
	DeltaAliasMember *DeltaAliasMember `idl:"name:DeltaAliasMember" json:"delta_alias_member"`
}

DeltaUnion_DeltaAliasMember structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 12

func (*DeltaUnion_DeltaAliasMember) MarshalNDR

func (*DeltaUnion_DeltaAliasMember) UnmarshalNDR

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

type DeltaUnion_DeltaDeleteGroup

type DeltaUnion_DeltaDeleteGroup struct {
	// DeltaDeleteGroup: A pointer to a NETLOGON_DELTA_DELETE_GROUP structure, as specified
	// in section 2.2.1.5.8, that describes a group account deletion. This structure is
	// selected when the delta type is DeleteGroupByName.
	DeltaDeleteGroup *DeltaDeleteGroup `idl:"name:DeltaDeleteGroup" json:"delta_delete_group"`
}

DeltaUnion_DeltaDeleteGroup structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 20

func (*DeltaUnion_DeltaDeleteGroup) MarshalNDR

func (*DeltaUnion_DeltaDeleteGroup) UnmarshalNDR

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

type DeltaUnion_DeltaDeleteUser

type DeltaUnion_DeltaDeleteUser struct {
	// DeltaDeleteUser: A pointer to a NETLOGON_DELTA_DELETE_USER structure, as specified
	// in section 2.2.1.5.9, that describes a user account deletion. This structure is selected
	// when the delta type is DeleteUserByName.
	DeltaDeleteUser *DeltaDeleteUser `idl:"name:DeltaDeleteUser" json:"delta_delete_user"`
}

DeltaUnion_DeltaDeleteUser structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 21

func (*DeltaUnion_DeltaDeleteUser) MarshalNDR

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

func (*DeltaUnion_DeltaDeleteUser) UnmarshalNDR

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

type DeltaUnion_DeltaDomain

type DeltaUnion_DeltaDomain struct {
	// DeltaDomain: A pointer to a NETLOGON_DELTA_DOMAIN structure, as specified in section
	// 2.2.1.5.10, that describes a domain. This structure is selected when the delta type
	// is AddOrChangeDomain.
	DeltaDomain *DeltaDomain `idl:"name:DeltaDomain" json:"delta_domain"`
}

DeltaUnion_DeltaDomain structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 1

func (*DeltaUnion_DeltaDomain) MarshalNDR

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

func (*DeltaUnion_DeltaDomain) UnmarshalNDR

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

type DeltaUnion_DeltaDomains

type DeltaUnion_DeltaDomains struct {
	// DeltaTDomains: A pointer to a NETLOGON_DELTA_TRUSTED_DOMAINS structure, as specified
	// in section 2.2.1.5.22, that describes a trusted domain. This structure is selected
	// when the delta type is AddOrChangeLsaTDomain.
	DeltaDomains *DeltaTrustedDomains `idl:"name:DeltaTDomains" json:"delta_domains"`
}

DeltaUnion_DeltaDomains structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 14

func (*DeltaUnion_DeltaDomains) MarshalNDR

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

func (*DeltaUnion_DeltaDomains) UnmarshalNDR

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

type DeltaUnion_DeltaGroup

type DeltaUnion_DeltaGroup struct {
	// DeltaGroup: A pointer to a NETLOGON_DELTA_GROUP structure, as specified in section
	// 2.2.1.5.13, that describes a group account. This structure is selected when the delta
	// type is AddOrChangeGroup.
	DeltaGroup *DeltaGroup `idl:"name:DeltaGroup" json:"delta_group"`
}

DeltaUnion_DeltaGroup structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 2

func (*DeltaUnion_DeltaGroup) MarshalNDR

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

func (*DeltaUnion_DeltaGroup) UnmarshalNDR

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

type DeltaUnion_DeltaGroupMember

type DeltaUnion_DeltaGroupMember struct {
	// DeltaGroupMember: A pointer to a NETLOGON_DELTA_GROUP_MEMBER structure, as specified
	// in section 2.2.1.5.17, that describes a group membership. This structure is selected
	// when the delta type is ChangeGroupMembership.
	DeltaGroupMember *DeltaGroupMember `idl:"name:DeltaGroupMember" json:"delta_group_member"`
}

DeltaUnion_DeltaGroupMember structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 8

func (*DeltaUnion_DeltaGroupMember) MarshalNDR

func (*DeltaUnion_DeltaGroupMember) UnmarshalNDR

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

type DeltaUnion_DeltaPolicy

type DeltaUnion_DeltaPolicy struct {
	// DeltaPolicy: A pointer to a NETLOGON_DELTA_POLICY structure, as specified in section
	// 2.2.1.5.19, that describes an LSA policy. This structure is selected when the delta
	// type is AddOrChangeLsaPolicy.
	DeltaPolicy *DeltaPolicy `idl:"name:DeltaPolicy" json:"delta_policy"`
}

DeltaUnion_DeltaPolicy structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 13

func (*DeltaUnion_DeltaPolicy) MarshalNDR

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

func (*DeltaUnion_DeltaPolicy) UnmarshalNDR

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

type DeltaUnion_DeltaRenameAlias

type DeltaUnion_DeltaRenameAlias struct {
	// DeltaRenameAlias: A pointer to a NETLOGON_RENAME_ALIAS structure, as specified in
	// section 2.2.1.5.23, that describes a rename of an alias. This structure is selected
	// when the delta type is RenameAlias.
	DeltaRenameAlias *RenameAlias `idl:"name:DeltaRenameAlias" json:"delta_rename_alias"`
}

DeltaUnion_DeltaRenameAlias structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 11

func (*DeltaUnion_DeltaRenameAlias) MarshalNDR

func (*DeltaUnion_DeltaRenameAlias) UnmarshalNDR

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

type DeltaUnion_DeltaRenameGroup

type DeltaUnion_DeltaRenameGroup struct {
	// DeltaRenameGroup: A pointer to a NETLOGON_RENAME_GROUP structure, as specified in
	// section 2.2.1.5.24, that describes a rename of a group account. This structure is
	// selected when the delta type is RenameGroup.
	DeltaRenameGroup *RenameGroup `idl:"name:DeltaRenameGroup" json:"delta_rename_group"`
}

DeltaUnion_DeltaRenameGroup structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 4

func (*DeltaUnion_DeltaRenameGroup) MarshalNDR

func (*DeltaUnion_DeltaRenameGroup) UnmarshalNDR

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

type DeltaUnion_DeltaRenameUser

type DeltaUnion_DeltaRenameUser struct {
	// DeltaRenameUser: A pointer to a NETLOGON_RENAME_USER structure, as specified in section
	// 2.2.1.5.25, that describes a rename of a user account. This structure is selected
	// when the delta type is RenameUser.
	DeltaRenameUser *RenameUser `idl:"name:DeltaRenameUser" json:"delta_rename_user"`
}

DeltaUnion_DeltaRenameUser structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 7

func (*DeltaUnion_DeltaRenameUser) MarshalNDR

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

func (*DeltaUnion_DeltaRenameUser) UnmarshalNDR

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

type DeltaUnion_DeltaSecret

type DeltaUnion_DeltaSecret struct {
	// DeltaSecret: A pointer to a NETLOGON_DELTA_SECRET structure, as specified in section
	// 2.2.1.5.21, that describes a LSA secret object as detailed in [MS-LSAD]. This structure
	// is selected when the delta type is AddOrChangeLsaSecret.
	DeltaSecret *DeltaSecret `idl:"name:DeltaSecret" json:"delta_secret"`
}

DeltaUnion_DeltaSecret structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 18

func (*DeltaUnion_DeltaSecret) MarshalNDR

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

func (*DeltaUnion_DeltaSecret) UnmarshalNDR

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

type DeltaUnion_DeltaSerialNumberSkip

type DeltaUnion_DeltaSerialNumberSkip struct {
	// DeltaSerialNumberSkip: A pointer to an NLPR_MODIFIED_COUNT structure, as specified
	// in section 2.2.1.5.26, that holds the database serial number. This structure is selected
	// when the delta type is SerialNumberSkip.
	DeltaSerialNumberSkip *ModifiedCount `idl:"name:DeltaSerialNumberSkip" json:"delta_serial_number_skip"`
}

DeltaUnion_DeltaSerialNumberSkip structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 22

func (*DeltaUnion_DeltaSerialNumberSkip) MarshalNDR

func (*DeltaUnion_DeltaSerialNumberSkip) UnmarshalNDR

type DeltaUnion_DeltaUser

type DeltaUnion_DeltaUser struct {
	// DeltaUser: A pointer to a NETLOGON_DELTA_USER structure, as specified in section
	// 2.2.1.5.16, that describes a domain user account. This structure is selected when
	// the delta type is AddOrChangeUser.
	DeltaUser *DeltaUser `idl:"name:DeltaUser" json:"delta_user"`
}

DeltaUnion_DeltaUser structure represents NETLOGON_DELTA_UNION RPC union arm.

It has following labels: 5

func (*DeltaUnion_DeltaUser) MarshalNDR

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

func (*DeltaUnion_DeltaUser) UnmarshalNDR

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

type DeltaUser

type DeltaUser struct {
	UserName               *dtyp.UnicodeString     `idl:"name:UserName" json:"user_name"`
	FullName               *dtyp.UnicodeString     `idl:"name:FullName" json:"full_name"`
	UserID                 uint32                  `idl:"name:UserId" json:"user_id"`
	PrimaryGroupID         uint32                  `idl:"name:PrimaryGroupId" json:"primary_group_id"`
	HomeDirectory          *dtyp.UnicodeString     `idl:"name:HomeDirectory" json:"home_directory"`
	HomeDirectoryDrive     *dtyp.UnicodeString     `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"`
	ScriptPath             *dtyp.UnicodeString     `idl:"name:ScriptPath" json:"script_path"`
	AdminComment           *dtyp.UnicodeString     `idl:"name:AdminComment" json:"admin_comment"`
	WorkStations           *dtyp.UnicodeString     `idl:"name:WorkStations" json:"work_stations"`
	LastLogon              *OldLargeInteger        `idl:"name:LastLogon" json:"last_logon"`
	LastLogoff             *OldLargeInteger        `idl:"name:LastLogoff" json:"last_logoff"`
	LogonHours             *LogonHours             `idl:"name:LogonHours" json:"logon_hours"`
	BadPasswordCount       uint16                  `idl:"name:BadPasswordCount" json:"bad_password_count"`
	LogonCount             uint16                  `idl:"name:LogonCount" json:"logon_count"`
	PasswordLastSet        *OldLargeInteger        `idl:"name:PasswordLastSet" json:"password_last_set"`
	AccountExpires         *OldLargeInteger        `idl:"name:AccountExpires" json:"account_expires"`
	UserAccountControl     uint32                  `idl:"name:UserAccountControl" json:"user_account_control"`
	EncryptedNTOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedNtOwfPassword" json:"encrypted_nt_owf_password"`
	EncryptedLMOWFPassword *EncryptedLMOWFPassword `idl:"name:EncryptedLmOwfPassword" json:"encrypted_lm_owf_password"`
	NTPasswordPresent      uint8                   `idl:"name:NtPasswordPresent" json:"nt_password_present"`
	LMPasswordPresent      uint8                   `idl:"name:LmPasswordPresent" json:"lm_password_present"`
	PasswordExpired        uint8                   `idl:"name:PasswordExpired" json:"password_expired"`
	UserComment            *dtyp.UnicodeString     `idl:"name:UserComment" json:"user_comment"`
	Parameters             *dtyp.UnicodeString     `idl:"name:Parameters" json:"parameters"`
	CountryCode            uint16                  `idl:"name:CountryCode" json:"country_code"`
	CodePage               uint16                  `idl:"name:CodePage" json:"code_page"`
	// PrivateData: An NLPR_USER_PRIVATE_INFO structure, as specified in section 2.2.1.5.15,
	// containing the PrivateData field of the SAMPR_USER_INFORMATION structure, as specified
	// in [MS-SAMR] section 2.2.6.6.
	PrivateData *UserPrivateInfo `idl:"name:PrivateData" json:"private_data"`
	// SecurityInformation: A SECURITY_INFORMATION structure, as specified in [MS-DTYP]
	// section 2.4.7, that specifies portions of a security descriptor about the user account.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SecuritySize: The size, in bytes, of SecurityDescriptor.
	SecuritySize uint32 `idl:"name:SecuritySize" json:"security_size"`
	// SecurityDescriptor: A pointer to a SECURITY_DESCRIPTOR structure, as specified in
	// [MS-DTYP] section 2.4.6, that specifies the security settings for the user account
	// object.
	SecurityDescriptor []byte              `idl:"name:SecurityDescriptor;size_is:(SecuritySize)" json:"security_descriptor"`
	ProfilePath        *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"`
	// contains filtered or unexported fields
}

DeltaUser structure represents NETLOGON_DELTA_USER RPC structure.

The NETLOGON_DELTA_USER structure contains information about a SAM user account. This structure is used for replicating the user account data from the PDC to a BDC, as detailed in section 3.6.

All fields of this structure, except the fields detailed following the structure definition, have the same meanings as the identically named fields in the Common User Fields, as specified in [MS-SAMR] section 2.2.6.1 and the SAMPR_USER_INTERNAL1_INFORMATION structure fields, as specified in [MS-SAMR] section 2.2.6.23.

func (*DeltaUser) MarshalNDR

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

func (*DeltaUser) UnmarshalNDR

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

type DeregisterDNSHostRecordsRequest

type DeregisterDNSHostRecordsRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1, that represents
	// the connection to the DC.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// DnsDomainName: A null-terminated Unicode string that specifies the FQDN.
	DNSDomainName string `idl:"name:DnsDomainName;string;pointer:unique" json:"dns_domain_name"`
	// DomainGuid: A pointer to the domain GUID. If the value is not NULL, the DNS SRV record
	// of type _ldap._tcp.DomainGuid.domains._msdcs.DnsDomainName is also deregistered.
	DomainGUID *dtyp.GUID `idl:"name:DomainGuid;pointer:unique" json:"domain_guid"`
	// DsaGuid: A pointer to the objectGUID of the DC's NTDSDSA object. For details about
	// the NTDSDSA object, see [MS-ADTS] section 6.1.1.2.2.1.2.1.1. If the value is not
	// NULL, the CNAME [RFC1035] record of the domain in the form of DsaGuid._msdcs.DnsDomainName
	// is also deregistered.
	DSAGUID *dtyp.GUID `idl:"name:DsaGuid;pointer:unique" json:"dsa_guid"`
	// DnsHostName: A null-terminated Unicode string that specifies the FQDN of the DC whose
	// records are being deregistered.
	DNSHostName string `idl:"name:DnsHostName;string" json:"dns_host_name"`
}

DeregisterDNSHostRecordsRequest structure represents the DsrDeregisterDnsHostRecords operation request

func (*DeregisterDNSHostRecordsRequest) MarshalNDR

func (*DeregisterDNSHostRecordsRequest) UnmarshalNDR

type DeregisterDNSHostRecordsResponse

type DeregisterDNSHostRecordsResponse struct {
	// Return: The DsrDeregisterDnsHostRecords return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeregisterDNSHostRecordsResponse structure represents the DsrDeregisterDnsHostRecords operation response

func (*DeregisterDNSHostRecordsResponse) MarshalNDR

func (*DeregisterDNSHostRecordsResponse) UnmarshalNDR

type DomainControllerInfoW

type DomainControllerInfoW struct {
	// DomainControllerName: A pointer to a null-terminated UTF-16 string that contains
	// a NetBIOS or fully qualified domain name (FQDN) of the DC, prefixed with "\\".
	DomainControllerName string `idl:"name:DomainControllerName;string;pointer:unique" json:"domain_controller_name"`
	// DomainControllerAddress: A pointer to a null-terminated Unicode string that contains
	// the DC address, prefixed with "\\". The string SHOULD<9> be either a textual representation
	// of an IPv4/IPv6 address or the NetBIOS name of the DC, determined by the DomainControllerAddressType
	// field.
	DomainControllerAddress string `idl:"name:DomainControllerAddress;string;pointer:unique" json:"domain_controller_address"`
	// DomainControllerAddressType: A 32-bit value indicating the DC address type, which
	// MUST be one, and only one, of the following.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | The address is a string that contains an IPv4 address in dotted-decimal notation |
	//	|            | (for example, 192.168.0.1), or an IPv6 address in colon-separated notation.<10>  |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | The address is a NetBIOS name.                                                   |
	//	+------------+----------------------------------------------------------------------------------+
	DomainControllerAddressType uint32 `idl:"name:DomainControllerAddressType" json:"domain_controller_address_type"`
	// DomainGuid: A globally unique identifier (GUID) structure ([MS-DTYP] section 2.3.4.1)
	// that contains an identifier for the domain. When there is no domain GUID, this field
	// MUST be set to zero. A GUID SHOULD<11> be used across all computers and networks
	// wherever a unique identifier is required.
	DomainGUID *dtyp.GUID `idl:"name:DomainGuid" json:"domain_guid"`
	// DomainName: A pointer to a Unicode string that contains the NetBIOS or FQDN of the
	// domain.
	DomainName string `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
	// DnsForestName: A pointer to a null-terminated Unicode string that contains the FQDN
	// of the forest.
	DNSForestName string `idl:"name:DnsForestName;string;pointer:unique" json:"dns_forest_name"`
	// Flags: A set of bit flags in little-endian format that describe the features and
	// roles of the DC. A flag is TRUE (or set) if its value is equal to 1. The value is
	// constructed from zero or more bit flags from the following table, with the exceptions
	// that bit J cannot be combined with A, B, D, E, or P; bit F cannot be combined with
	// I; and bit K cannot be combined with L.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| O | N | M | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | T | S | R | Q | P | L | K | J | I | H | G | F | E | D | C | B | 0 | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | The DC is the domain's primary domain controller (PDC).                          |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | The DC contains the global catalog (GC) for the forest Active Directory.         |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | The DC supports the Lightweight Directory Access Protocol (LDAP).                |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | The DC supports a directory service.                                             |
	//	+-------+----------------------------------------------------------------------------------+
	//	| E     | The DC is a Kerberos Key Distribution Center (KDC).                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| F     | The DC has a network time service available but no clock hardware.               |
	//	+-------+----------------------------------------------------------------------------------+
	//	| G     | The DC is in the closest site to the client.                                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| H     | The DC has a writable directory service available.                               |
	//	+-------+----------------------------------------------------------------------------------+
	//	| I     | The DC has clock hardware and a network time service available.                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| J     | The DC is an LDAP server servicing an Application naming context (NC) ([MS-ADTS] |
	//	|       | section 3.1.1.1.5).                                                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| K     | The DC is a read-only domain controller (RODC).<12>                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| L     | The server is a writable domain controller.<13>                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| M     | The DC's name is a DNS name.                                                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| N     | The DC's domain name is a DNS name.                                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| O     | The DC's forest name is a DNS name.                                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| P     | The DC has an Active Directory Web Service available.<14>                        |
	//	+-------+----------------------------------------------------------------------------------+
	//	| Q     | The DC has a functional level of DS_BEHAVIOR_WIN2012 or later.                   |
	//	+-------+----------------------------------------------------------------------------------+
	//	| R     | The DC has a functional level of DS_BEHAVIOR_WIN2012R2 or later.                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| S     | The DC has a functional level of DS_BEHAVIOR_WIN2016 or later.                   |
	//	+-------+----------------------------------------------------------------------------------+
	//	| T     | The DC supports key list requests, as specified in [MS-KILE] section 2.2.11. If  |
	//	|       | this bit is set, bit S and bit E MUST also be set.                               |
	//	+-------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// DcSiteName: A pointer to a null-terminated Unicode string that SHOULD<15> contain
	// the site name that is associated with the DC. When there is no associated site, this
	// field MUST be NULL.
	DCSiteName string `idl:"name:DcSiteName;string;pointer:unique" json:"dc_site_name"`
	// ClientSiteName: A pointer to a null-terminated Unicode string that contains the client's
	// site name. When there is no client site name, this field MUST be NULL.
	ClientSiteName string `idl:"name:ClientSiteName;string;pointer:unique" json:"client_site_name"`
}

DomainControllerInfoW structure represents DOMAIN_CONTROLLER_INFOW RPC structure.

The DOMAIN_CONTROLLER_INFOW structure SHOULD<8> define information returned by the following methods: DsrGetDcName (section 3.5.4.3.3), DsrGetDcNameEx (section 3.5.4.3.2), and DsrGetDcNameEx2 (section 3.5.4.3.1). This structure is used to describe naming and addressing information about a DC.

func (*DomainControllerInfoW) MarshalNDR

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

func (*DomainControllerInfoW) UnmarshalNDR

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

type DomainInfo

type DomainInfo struct {
	// PrimaryDomain: A NETLOGON_ONE_DOMAIN_INFO structure, as specified in section 2.2.1.3.10,
	// that contains information about the domain of which the server is a member.
	PrimaryDomain *OneDomainInfo `idl:"name:PrimaryDomain" json:"primary_domain"`
	// TrustedDomainCount: The number of trusted domains listed in TrustedDomains.
	TrustedDomainCount uint32 `idl:"name:TrustedDomainCount" json:"trusted_domain_count"`
	// TrustedDomains: A pointer to an array of NETLOGON_ONE_DOMAIN_INFO structures, as
	// specified in section 2.2.1.3.10, which contain information about domains with which
	// the current domain has a trust relationship.
	TrustedDomains []*OneDomainInfo `idl:"name:TrustedDomains;size_is:(TrustedDomainCount)" json:"trusted_domains"`
	// LsaPolicy: A NETLOGON_LSA_POLICY_INFO data structure that contains the LSA policy
	// for this domain. This field is not used. For details, see section 2.2.1.3.5.
	LSAPolicy *LSAPolicyInfo `idl:"name:LsaPolicy" json:"lsa_policy"`
	// DnsHostNameInDs: A null-terminated Unicode string that contains the Active Directory
	// DNS host name for the client.
	DNSHostNameInDS *dtyp.UnicodeString `idl:"name:DnsHostNameInDs" json:"dns_host_name_in_ds"`

	// WorkstationFlags: A set of bit flags that specify workstation behavior. A flag is
	// TRUE (or set) if its value is equal to 1. The value is constructed from zero or more
	// bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Client receives inbound trusts.                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Client handles the update of the service principal name (SPN). See [SPNNAMES]    |
	//	|       | for details.                                                                     |
	//	+-------+----------------------------------------------------------------------------------+
	WorkstationFlags uint32 `idl:"name:WorkstationFlags" json:"workstation_flags"`
	// SupportedEncTypes: A set of bit flags that SHOULD<29> specify the encryption types
	// supported, as specified in [MS-LSAD] section 2.2.7.18. See [MS-LSAD] for a specification
	// of these bit values and their allowed combinations.
	SupportedEncTypes uint32 `idl:"name:SupportedEncTypes" json:"supported_enc_types"`
	// contains filtered or unexported fields
}

DomainInfo structure represents NETLOGON_DOMAIN_INFO RPC structure.

The NETLOGON_DOMAIN_INFO structure SHOULD<28> define information returned as output from the NetrLogonGetDomainInfo method, as specified in section 3.5.4.4.9. It contains information about a domain, including naming information and a list of trusted domains.

func (*DomainInfo) MarshalNDR

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

func (*DomainInfo) UnmarshalNDR

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

type DomainInformation

type DomainInformation struct {
	// Types that are assignable to Value
	//
	// *DomainInformation_DomainInfo
	// *DomainInformation_LSAPolicyInfo
	Value is_DomainInformation `json:"value"`
}

DomainInformation structure represents NETLOGON_DOMAIN_INFORMATION RPC union.

The NETLOGON_DOMAIN_INFO structure SHOULD<28> define information returned as output from the NetrLogonGetDomainInfo method, as specified in section 3.5.4.4.9. It contains information about a domain, including naming information and a list of trusted domains.

func (*DomainInformation) GetValue

func (o *DomainInformation) GetValue() any

func (*DomainInformation) MarshalUnionNDR

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

func (*DomainInformation) NDRSwitchValue

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

func (*DomainInformation) UnmarshalUnionNDR

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

type DomainInformation_DomainInfo

type DomainInformation_DomainInfo struct {
	DomainInfo *DomainInfo `idl:"name:DomainInfo" json:"domain_info"`
}

DomainInformation_DomainInfo structure represents NETLOGON_DOMAIN_INFORMATION RPC union arm.

It has following labels: 1

func (*DomainInformation_DomainInfo) MarshalNDR

func (*DomainInformation_DomainInfo) UnmarshalNDR

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

type DomainInformation_LSAPolicyInfo

type DomainInformation_LSAPolicyInfo struct {
	LSAPolicyInfo *LSAPolicyInfo `idl:"name:LsaPolicyInfo" json:"lsa_policy_info"`
}

DomainInformation_LSAPolicyInfo structure represents NETLOGON_DOMAIN_INFORMATION RPC union arm.

It has following labels: 2

func (*DomainInformation_LSAPolicyInfo) MarshalNDR

func (*DomainInformation_LSAPolicyInfo) UnmarshalNDR

type DomainNameBuffer

type DomainNameBuffer struct {
	// DomainNameByteCount: The size, in bytes, of the buffer pointed to by the DomainNames
	// field, including all UTF-16 null characters.
	DomainNameByteCount uint32 `idl:"name:DomainNameByteCount" json:"domain_name_byte_count"`
	// DomainNames: The Unicode string buffer that contains the list of trusted domains.
	// The list format is a UTF-16 string composed of one or more substrings. Each substring
	// is separated from adjacent substrings by the UTF-16 null character, 0x0000. After
	// the final substring, the string is terminated by two UTF-16 null characters.
	//
	// For example, if there are three trusted domains, DOMAIN1, DOMAIN2, and DOMAIN3, the
	// DomainNames string buffer would have the following form:
	//
	// DOMAIN1<null>DOMAIN2<null>DOMAIN3<null><null>
	DomainNames []byte `idl:"name:DomainNames;size_is:(DomainNameByteCount);pointer:unique" json:"domain_names"`
}

DomainNameBuffer structure represents DOMAIN_NAME_BUFFER RPC structure.

The DOMAIN_NAME_BUFFER structure defines information returned by the NetrEnumerateTrustedDomains method, as specified in section 3.5.4.7.3. The structure is used to describe a set of trusted domain names.

func (*DomainNameBuffer) MarshalNDR

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

func (*DomainNameBuffer) UnmarshalNDR

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

type EncryptedLMOWFPassword

type EncryptedLMOWFPassword struct {
	Data []*CypherBlock `idl:"name:data" json:"data"`
}

EncryptedLMOWFPassword structure represents ENCRYPTED_LM_OWF_PASSWORD RPC structure.

func (*EncryptedLMOWFPassword) MarshalNDR

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

func (*EncryptedLMOWFPassword) UnmarshalNDR

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

type EncryptedNTOWFPassword

type EncryptedNTOWFPassword struct {
	Data []*CypherBlock `idl:"name:data" json:"data"`
}

EncryptedNTOWFPassword structure represents ENCRYPTED_NT_OWF_PASSWORD RPC structure.

func (*EncryptedNTOWFPassword) MarshalNDR

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

func (*EncryptedNTOWFPassword) UnmarshalNDR

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

type EnumerateDomainTrustsRequest

type EnumerateDomainTrustsRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// Flags: A set of bit flags that specify properties that MUST be true for a domain
	// trust to be part of the returned domain name list. A flag is TRUE (or set) if its
	// value is equal to 1. Flags MUST contain one or more of the following bits.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | F | E | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+-----------------------------------------------------+
	//	|       |                                                     |
	//	| VALUE |                     DESCRIPTION                     |
	//	|       |                                                     |
	//	+-------+-----------------------------------------------------+
	//	+-------+-----------------------------------------------------+
	//	| A     | Domain is a member of the forest.                   |
	//	+-------+-----------------------------------------------------+
	//	| B     | Domain is directly trusted by this domain.          |
	//	+-------+-----------------------------------------------------+
	//	| C     | Domain is the root of a domain tree in the forest.  |
	//	+-------+-----------------------------------------------------+
	//	| D     | Domain is the primary domain of the queried server. |
	//	+-------+-----------------------------------------------------+
	//	| E     | Primary domain is running in native mode.           |
	//	+-------+-----------------------------------------------------+
	//	| F     | Domain directly trusts this domain.                 |
	//	+-------+-----------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

EnumerateDomainTrustsRequest structure represents the DsrEnumerateDomainTrusts operation request

func (*EnumerateDomainTrustsRequest) MarshalNDR

func (*EnumerateDomainTrustsRequest) UnmarshalNDR

func (o *EnumerateDomainTrustsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumerateDomainTrustsResponse

type EnumerateDomainTrustsResponse struct {
	// Domains: A pointer to a NETLOGON_TRUSTED_DOMAIN_ARRAY structure, as specified in
	// section 2.2.1.6.3, that contains a list of trusted domains.
	Domains *TrustedDomainArray `idl:"name:Domains" json:"domains"`
	// Return: The DsrEnumerateDomainTrusts return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumerateDomainTrustsResponse structure represents the DsrEnumerateDomainTrusts operation response

func (*EnumerateDomainTrustsResponse) MarshalNDR

func (*EnumerateDomainTrustsResponse) UnmarshalNDR

func (o *EnumerateDomainTrustsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumerateTrustedDomainsExRequest

type EnumerateTrustedDomainsExRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
}

EnumerateTrustedDomainsExRequest structure represents the NetrEnumerateTrustedDomainsEx operation request

func (*EnumerateTrustedDomainsExRequest) MarshalNDR

func (*EnumerateTrustedDomainsExRequest) UnmarshalNDR

type EnumerateTrustedDomainsExResponse

type EnumerateTrustedDomainsExResponse struct {
	// Domains: A pointer to a NETLOGON_TRUSTED_DOMAIN_ARRAY structure, as specified in
	// section 2.2.1.6.3, that contains an array of DS_DOMAIN_TRUSTSW structures, as specified
	// in section 2.2.1.6.2, one for each trusted domain.
	Domains *TrustedDomainArray `idl:"name:Domains" json:"domains"`
	// Return: The NetrEnumerateTrustedDomainsEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumerateTrustedDomainsExResponse structure represents the NetrEnumerateTrustedDomainsEx operation response

func (*EnumerateTrustedDomainsExResponse) MarshalNDR

func (*EnumerateTrustedDomainsExResponse) UnmarshalNDR

type EnumerateTrustedDomainsRequest

type EnumerateTrustedDomainsRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
}

EnumerateTrustedDomainsRequest structure represents the NetrEnumerateTrustedDomains operation request

func (*EnumerateTrustedDomainsRequest) MarshalNDR

func (*EnumerateTrustedDomainsRequest) UnmarshalNDR

type EnumerateTrustedDomainsResponse

type EnumerateTrustedDomainsResponse struct {
	// DomainNameBuffer: A pointer to a DOMAIN_NAME_BUFFER structure, as specified in section
	// 2.2.1.6.1, that contains a list of trusted domain names. The format of domain names
	// contained in the buffer is specified in section 2.2.1.6.1.
	DomainNameBuffer *DomainNameBuffer `idl:"name:DomainNameBuffer" json:"domain_name_buffer"`
	// Return: The NetrEnumerateTrustedDomains return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EnumerateTrustedDomainsResponse structure represents the NetrEnumerateTrustedDomains operation response

func (*EnumerateTrustedDomainsResponse) MarshalNDR

func (*EnumerateTrustedDomainsResponse) UnmarshalNDR

type ForestTrustBinaryData

type ForestTrustBinaryData struct {
	Length uint32 `idl:"name:Length" json:"length"`
	Buffer []byte `idl:"name:Buffer;size_is:(Length)" json:"buffer"`
}

ForestTrustBinaryData structure represents LSA_FOREST_TRUST_BINARY_DATA RPC structure.

func (*ForestTrustBinaryData) MarshalNDR

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

func (*ForestTrustBinaryData) UnmarshalNDR

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

type ForestTrustData_Data

type ForestTrustData_Data struct {
	Data *ForestTrustBinaryData `idl:"name:Data" json:"data"`
}

ForestTrustData_Data structure represents ForestTrustRecord_ForestTrustData RPC default union arm.

func (*ForestTrustData_Data) MarshalNDR

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

func (*ForestTrustData_Data) UnmarshalNDR

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

type ForestTrustData_DomainInfo

type ForestTrustData_DomainInfo struct {
	DomainInfo *ForestTrustDomainInfo `idl:"name:DomainInfo" json:"domain_info"`
}

ForestTrustData_DomainInfo structure represents ForestTrustRecord_ForestTrustData RPC union arm.

It has following labels: 2

func (*ForestTrustData_DomainInfo) MarshalNDR

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

func (*ForestTrustData_DomainInfo) UnmarshalNDR

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

type ForestTrustData_TopLevelName

type ForestTrustData_TopLevelName struct {
	TopLevelName *UnicodeString `idl:"name:TopLevelName" json:"top_level_name"`
}

ForestTrustData_TopLevelName structure represents ForestTrustRecord_ForestTrustData RPC union arm.

It has following labels: 0, 1

func (*ForestTrustData_TopLevelName) MarshalNDR

func (*ForestTrustData_TopLevelName) UnmarshalNDR

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

type ForestTrustDomainInfo

type ForestTrustDomainInfo struct {
	SID         *dtyp.SID      `idl:"name:Sid" json:"sid"`
	DNSName     *UnicodeString `idl:"name:DnsName" json:"dns_name"`
	NetBIOSName *UnicodeString `idl:"name:NetbiosName" json:"netbios_name"`
}

ForestTrustDomainInfo structure represents LSA_FOREST_TRUST_DOMAIN_INFO RPC structure.

func (*ForestTrustDomainInfo) MarshalNDR

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

func (*ForestTrustDomainInfo) UnmarshalNDR

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

type ForestTrustInformation

type ForestTrustInformation struct {
	RecordCount uint32               `idl:"name:RecordCount" json:"record_count"`
	Entries     []*ForestTrustRecord `idl:"name:Entries;size_is:(RecordCount)" json:"entries"`
}

ForestTrustInformation structure represents LSA_FOREST_TRUST_INFORMATION RPC structure.

func (*ForestTrustInformation) MarshalNDR

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

func (*ForestTrustInformation) UnmarshalNDR

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

type ForestTrustRecord

type ForestTrustRecord struct {
	Flags           uint32                             `idl:"name:Flags" json:"flags"`
	ForestTrustType ForestTrustRecordType              `idl:"name:ForestTrustType" json:"forest_trust_type"`
	Time            *dtyp.LargeInteger                 `idl:"name:Time" json:"time"`
	ForestTrustData *ForestTrustRecord_ForestTrustData `idl:"name:ForestTrustData;switch_is:ForestTrustType" json:"forest_trust_data"`
}

ForestTrustRecord structure represents LSA_FOREST_TRUST_RECORD RPC structure.

func (*ForestTrustRecord) MarshalNDR

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

func (*ForestTrustRecord) UnmarshalNDR

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

type ForestTrustRecordType

type ForestTrustRecordType uint16

ForestTrustRecordType type represents LSA_FOREST_TRUST_RECORD_TYPE RPC enumeration.

var (
	ForestTrustRecordTypeTopLevelName   ForestTrustRecordType = 0
	ForestTrustRecordTypeTopLevelNameEx ForestTrustRecordType = 1
	ForestTrustRecordTypeDomainInfo     ForestTrustRecordType = 2
	ForestTrustRecordTypeLast           ForestTrustRecordType = 2
)

func (ForestTrustRecordType) String

func (o ForestTrustRecordType) String() string

type ForestTrustRecord_ForestTrustData

type ForestTrustRecord_ForestTrustData struct {
	// Types that are assignable to Value
	//
	// *ForestTrustData_TopLevelName
	// *ForestTrustData_DomainInfo
	// *ForestTrustData_Data
	Value is_ForestTrustRecord_ForestTrustData `json:"value"`
}

ForestTrustRecord_ForestTrustData structure represents LSA_FOREST_TRUST_RECORD union anonymous member.

func (*ForestTrustRecord_ForestTrustData) GetValue

func (o *ForestTrustRecord_ForestTrustData) GetValue() any

func (*ForestTrustRecord_ForestTrustData) MarshalUnionNDR

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

func (*ForestTrustRecord_ForestTrustData) NDRSwitchValue

func (o *ForestTrustRecord_ForestTrustData) NDRSwitchValue(sw uint16) uint16

func (*ForestTrustRecord_ForestTrustData) UnmarshalUnionNDR

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

type GenericInfo

type GenericInfo struct {
	// Identity: The NETLOGON_LOGON_IDENTITY_INFO structure, as specified in section 2.2.1.4.15,
	// contains information about the logon identity. The LogonDomainName field of the NETLOGON_LOGON_IDENTITY_INFO
	// structure indicates the target domain that contains the user account.
	Identity *LogonIdentityInfo `idl:"name:Identity" json:"identity"`
	// PackageName: Contains the name of the security provider, such as Kerberos, to which
	// the data will be delivered on the domain controller in the target domain that was
	// specified in the Identity field. This name MUST match the name of an existing security
	// provider; otherwise, the Security Support Provider Interface (SSPI) ([SSPI]) returns
	// a package not found error.
	PackageName *dtyp.UnicodeString `idl:"name:PackageName" json:"package_name"`
	// DataLength: The length, in bytes, of LogonData.
	DataLength uint32 `idl:"name:DataLength" json:"data_length"`
	// LogonData: A pointer to a block of binary data that contains the information to be
	// sent to the security package referenced in PackageName. This data is opaque to Netlogon.
	LogonData []byte `idl:"name:LogonData;size_is:(DataLength)" json:"logon_data"`
}

GenericInfo structure represents NETLOGON_GENERIC_INFO RPC structure.

The NETLOGON_GENERIC_INFO structure defines a structure that contains logon information in binary format. Authentication protocols make use of this structure for passing generic logon data through the Netlogon secure channel to a DC in the domain that contains the user account to use the domain's database. For an example of using the NETLOGON_GENERIC_INFO structure, see any of the examples documented in [MS-APDS].

func (*GenericInfo) MarshalNDR

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

func (*GenericInfo) UnmarshalNDR

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

type GenericRPCData

type GenericRPCData struct {
	// UlongEntryCount: The number of entries in the UlongData field.
	EntryCount uint32 `idl:"name:UlongEntryCount" json:"entry_count"`
	// UlongData: A pointer to an array of unsigned 32-bit integer values.
	Data []uint32 `idl:"name:UlongData;size_is:(UlongEntryCount)" json:"data"`
	// UnicodeStringEntryCount: The number of entries in UnicodeStringData field.
	UnicodeStringEntryCount uint32 `idl:"name:UnicodeStringEntryCount" json:"unicode_string_entry_count"`
	// UnicodeStringData: A pointer to an array of Unicode STRING structures (section 2.2.1.1.2).
	UnicodeStringData []*dtyp.UnicodeString `idl:"name:UnicodeStringData;size_is:(UnicodeStringEntryCount)" json:"unicode_string_data"`
}

GenericRPCData structure represents NL_GENERIC_RPC_DATA RPC structure.

The NL_GENERIC_RPC_DATA structure SHOULD<59> define a format for marshaling arrays of unsigned long values and Unicode strings, by value, over RPC. This structure can be used to transmit generic data over RPC from the server to a client.

func (*GenericRPCData) MarshalNDR

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

func (*GenericRPCData) UnmarshalNDR

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

type GetAnyDCNameRequest

type GetAnyDCNameRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// DomainName: A null-terminated Unicode string that contains the name of the primary
	// or directly trusted domain. If the string is NULL or empty (that is, the first character
	// in the string is the null-terminator character), the primary domain name is assumed.
	DomainName string `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
}

GetAnyDCNameRequest structure represents the NetrGetAnyDCName operation request

func (*GetAnyDCNameRequest) MarshalNDR

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

func (*GetAnyDCNameRequest) UnmarshalNDR

func (o *GetAnyDCNameRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetAnyDCNameResponse

type GetAnyDCNameResponse struct {
	// Buffer: A pointer to an allocated buffer that contains the null-terminated Unicode
	// string containing the NetBIOS name of a DC in the specified domain. The DC name is
	// prefixed by two backslashes (\\).
	Buffer string `idl:"name:Buffer;string" json:"buffer"`
	// Return: The NetrGetAnyDCName return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetAnyDCNameResponse structure represents the NetrGetAnyDCName operation response

func (*GetAnyDCNameResponse) MarshalNDR

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

func (*GetAnyDCNameResponse) UnmarshalNDR

func (o *GetAnyDCNameResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetCapabilitiesRequest

type GetCapabilitiesRequest struct {
	// ServerName: A LOGONSRV_HANDLE Unicode string handle of the server that is handling
	// the request.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// ComputerName: A string that contains the name of the computer.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains the
	// client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// QueryLevel: Specifies the level of information to return from the domain controller
	// being queried. A value of 0x00000001 causes return of a NETLOGON_CAPABILITIES structure
	// that contains server capabilities.
	QueryLevel uint32 `idl:"name:QueryLevel" json:"query_level"`
}

GetCapabilitiesRequest structure represents the NetrLogonGetCapabilities operation request

func (*GetCapabilitiesRequest) MarshalNDR

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

func (*GetCapabilitiesRequest) UnmarshalNDR

func (o *GetCapabilitiesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetCapabilitiesResponse

type GetCapabilitiesResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	ServerCapabilities  *Capabilities  `idl:"name:ServerCapabilities;switch_is:QueryLevel" json:"server_capabilities"`
	// Return: The NetrLogonGetCapabilities return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetCapabilitiesResponse structure represents the NetrLogonGetCapabilities operation response

func (*GetCapabilitiesResponse) MarshalNDR

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

func (*GetCapabilitiesResponse) UnmarshalNDR

func (o *GetCapabilitiesResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCNameEx2Request

type GetDCNameEx2Request struct {
	// ComputerName: The custom binding handle defined in section 3.5.4.1.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// AccountName: A null-terminated Unicode string that contains the name of the account
	// that MUST exist and be enabled on the DC.
	AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
	// AllowableAccountControlBits: A set of bit flags that list properties of the AccountName
	// account. A flag is TRUE (or set) if its value is equal to 1. If the flag is set,
	// then the account MUST have that property; otherwise, the property is ignored. The
	// value is constructed from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | F | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | E | D | C | 0 | B | A | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Account for users whose primary account is in another domain. This account       |
	//	|       | provides user access to the domain, but not to any domain that trusts the        |
	//	|       | domain.                                                                          |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Normal domain user account.                                                      |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Interdomain trust account.                                                       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Computer account for a domain member.                                            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| E     | Computer account for a backup domain controller (BDC).                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| F     | Computer account for a read-only domain controller (RODC).<148>                  |
	//	+-------+----------------------------------------------------------------------------------+
	AllowableAccountControlBits uint32 `idl:"name:AllowableAccountControlBits" json:"allowable_account_control_bits"`
	// DomainName: A null-terminated Unicode string that contains the domain name. If the
	// string is NULL or empty (that is, the first character in the string is the null-terminator
	// character), then the primary domain name is assumed.
	DomainName string `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
	// DomainGuid: A pointer to a GUID structure that specifies the GUID of the domain queried.
	// If DomainGuid is not NULL and the domain specified by DomainName cannot be found,
	// the DC locator attempts to locate a DC in the domain that has the GUID specified
	// by DomainGuid. This allows renamed domains to be found by their GUID.
	DomainGUID *dtyp.GUID `idl:"name:DomainGuid;pointer:unique" json:"domain_guid"`
	// SiteName: A null-terminated string that contains the name of the site in which the
	// DC MUST be located.
	SiteName string `idl:"name:SiteName;string;pointer:unique" json:"site_name"`
	// Flags: A set of bit flags that provide additional data that is used to process the
	// request. A flag is TRUE (or set) if its value is equal to 1. The value is constructed
	// from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| S | R | 0 | 0 | 0 | 0 | 0 | 0 | W | V | U | T | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | 0 | 0 | 0 | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | The server ignores any cached DC data.                                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | The server returns a DC that supports directory service functions.               |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | The server first attempts to find a DC that supports directory service           |
	//	|       | functions.                                                                       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | The server returns a DC that is a global catalog server for the forest.          |
	//	+-------+----------------------------------------------------------------------------------+
	//	| E     | The server returns a DC that is the PDC for the domain.                          |
	//	+-------+----------------------------------------------------------------------------------+
	//	| F     | The server uses cached DC data if available, even if the cached data is expired. |
	//	+-------+----------------------------------------------------------------------------------+
	//	| G     | The server returns a DC that has an IP (either IPv4 or IPv6) address.            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| H     | The server returns a DC that is currently running the Kerberos Key Distribution  |
	//	|       | Center service.                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| I     | The server returns a DC that is currently running W32Time.                       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| J     | The server returns a DC that is writable.                                        |
	//	+-------+----------------------------------------------------------------------------------+
	//	| K     | The server first attempts to find a DC that is a reliable time server. If a      |
	//	|       | reliable time server is unavailable, the server returns a DC that is currently   |
	//	|       | running W32Time.                                                                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| L     | The server returns a different DC in the domain if one exists.                   |
	//	+-------+----------------------------------------------------------------------------------+
	//	| M     | The server returns an LDAP server. The server MAY return a DC.                   |
	//	+-------+----------------------------------------------------------------------------------+
	//	| N     | Specifies that the DomainName parameter is a NetBIOS name.                       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| O     | Specifies that the DomainName parameter is a DNS name.                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| P     | The server attempts to find a DC in the next closest site if a DC in the closest |
	//	|       | site is not available. If a DC in the next closest site is also not available,   |
	//	|       | the server returns any available DC.<149>                                        |
	//	+-------+----------------------------------------------------------------------------------+
	//	| Q     | The server returns a DC that has a DC functional level of DS_BEHAVIOR_WIN2008 or |
	//	|       | greater, as specified in [MS-ADTS] section 6.1.4.2.                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| R     | Specifies that the names returned in the DomainControllerName and DomainName     |
	//	|       | fields of DomainControllerInfo are DNS names.                                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| S     | Specifies that the names returned in the DomainControllerName and DomainName     |
	//	|       | fields of DomainControllerInfo are NetBIOS names.                                |
	//	+-------+----------------------------------------------------------------------------------+
	//	| T     | The server returns a DC that is currently running the Active Directory Web       |
	//	|       | Service.                                                                         |
	//	+-------+----------------------------------------------------------------------------------+
	//	| U     | The server returns a DC that has a DC functional level of DS_BEHAVIOR_WIN2012 or |
	//	|       | greater, as specified in [MS-ADTS] section 6.1.4.2.                              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| V     | The server returns a DC that has a DC functional level of DS_BEHAVIOR_WIN2012R2  |
	//	|       | or greater, as specified in [MS-ADTS] section 6.1.4.2.                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| W     | The server returns a DC that has a DC functional level of DS_BEHAVIOR_WIN2016 or |
	//	|       | greater, as specified in [MS-ADTS] section 6.1.4.2.                              |
	//	+-------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

GetDCNameEx2Request structure represents the DsrGetDcNameEx2 operation request

func (*GetDCNameEx2Request) MarshalNDR

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

func (*GetDCNameEx2Request) UnmarshalNDR

func (o *GetDCNameEx2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCNameEx2Response

type GetDCNameEx2Response struct {
	// DomainControllerInfo: A pointer to a DOMAIN_CONTROLLER_INFOW structure (section 2.2.1.2.1)
	// containing data about the DC.
	DomainControllerInfo *DomainControllerInfoW `idl:"name:DomainControllerInfo" json:"domain_controller_info"`
	// Return: The DsrGetDcNameEx2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetDCNameEx2Response structure represents the DsrGetDcNameEx2 operation response

func (*GetDCNameEx2Response) MarshalNDR

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

func (*GetDCNameEx2Response) UnmarshalNDR

func (o *GetDCNameEx2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCNameExRequest

type GetDCNameExRequest struct {
	ComputerName string     `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	DomainName   string     `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
	DomainGUID   *dtyp.GUID `idl:"name:DomainGuid;pointer:unique" json:"domain_guid"`
	SiteName     string     `idl:"name:SiteName;string;pointer:unique" json:"site_name"`
	Flags        uint32     `idl:"name:Flags" json:"flags"`
}

GetDCNameExRequest structure represents the DsrGetDcNameEx operation request

func (*GetDCNameExRequest) MarshalNDR

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

func (*GetDCNameExRequest) UnmarshalNDR

func (o *GetDCNameExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCNameExResponse

type GetDCNameExResponse struct {
	DomainControllerInfo *DomainControllerInfoW `idl:"name:DomainControllerInfo" json:"domain_controller_info"`
	// Return: The DsrGetDcNameEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetDCNameExResponse structure represents the DsrGetDcNameEx operation response

func (*GetDCNameExResponse) MarshalNDR

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

func (*GetDCNameExResponse) UnmarshalNDR

func (o *GetDCNameExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCNameRequest

type GetDCNameRequest struct {
	ComputerName string     `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	DomainName   string     `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
	DomainGUID   *dtyp.GUID `idl:"name:DomainGuid;pointer:unique" json:"domain_guid"`
	// SiteGuid: This parameter MUST be NULL and ignored upon receipt.
	//
	// The DsrGetDcName call accepts the SiteGuid parameter instead of the SiteName parameter
	// of the DsrGetDcNameEx call. On receiving this call, the server MUST perform all of
	// the processing done on receiving the DsrGetDcNameEx call.
	SiteGUID *dtyp.GUID `idl:"name:SiteGuid;pointer:unique" json:"site_guid"`
	Flags    uint32     `idl:"name:Flags" json:"flags"`
}

GetDCNameRequest structure represents the DsrGetDcName operation request

func (*GetDCNameRequest) MarshalNDR

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

func (*GetDCNameRequest) UnmarshalNDR

func (o *GetDCNameRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCNameResponse

type GetDCNameResponse struct {
	DomainControllerInfo *DomainControllerInfoW `idl:"name:DomainControllerInfo" json:"domain_controller_info"`
	// Return: The DsrGetDcName return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetDCNameResponse structure represents the DsrGetDcName operation response

func (*GetDCNameResponse) MarshalNDR

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

func (*GetDCNameResponse) UnmarshalNDR

func (o *GetDCNameResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCSiteCoverageWRequest

type GetDCSiteCoverageWRequest struct {
	// ServerName: The custom binding handle (defined in section 3.5.4.1) that represents
	// the connection to a DC.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
}

GetDCSiteCoverageWRequest structure represents the DsrGetDcSiteCoverageW operation request

func (*GetDCSiteCoverageWRequest) MarshalNDR

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

func (*GetDCSiteCoverageWRequest) UnmarshalNDR

func (o *GetDCSiteCoverageWRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCSiteCoverageWResponse

type GetDCSiteCoverageWResponse struct {
	// SiteNames: A pointer to an NL_SITE_NAME_ARRAY structure (section 2.2.1.2.2) that
	// contains an array of site name strings.
	SiteNames *SiteNameArray `idl:"name:SiteNames" json:"site_names"`
	// Return: The DsrGetDcSiteCoverageW return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetDCSiteCoverageWResponse structure represents the DsrGetDcSiteCoverageW operation response

func (*GetDCSiteCoverageWResponse) MarshalNDR

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

func (*GetDCSiteCoverageWResponse) UnmarshalNDR

func (o *GetDCSiteCoverageWResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDomainInfoRequest

type GetDomainInfoRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// ComputerName: The null-terminated Unicode string that contains the name of the client
	// computer issuing the request.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// Level: The information level requested by the client. The DomBuffer parameter contains
	// one of the following structures, based on the value of this field.
	//
	//	+------------+--------------------------------------------------------------+
	//	|            |                                                              |
	//	|   VALUE    |                           MEANING                            |
	//	|            |                                                              |
	//	+------------+--------------------------------------------------------------+
	//	+------------+--------------------------------------------------------------+
	//	| 0x00000001 | The DomBuffer contains a NETLOGON_DOMAIN_INFO structure.     |
	//	+------------+--------------------------------------------------------------+
	//	| 0x00000002 | The DomBuffer contains a NETLOGON_LSA_POLICY_INFO structure. |
	//	+------------+--------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// WkstaBuffer: A pointer to a NETLOGON_WORKSTATION_INFO structure, as specified in
	// section 2.2.1.3.6, that contains information about the client workstation.
	WorkstationBuffer *WorkstationInformation `idl:"name:WkstaBuffer;switch_is:Level" json:"workstation_buffer"`
}

GetDomainInfoRequest structure represents the NetrLogonGetDomainInfo operation request

func (*GetDomainInfoRequest) MarshalNDR

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

func (*GetDomainInfoRequest) UnmarshalNDR

func (o *GetDomainInfoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDomainInfoResponse

type GetDomainInfoResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// DomBuffer: A pointer to a NETLOGON_DOMAIN_INFORMATION structure, as specified in
	// section 2.2.1.3.12, that contains information about the domain or policy information.
	DomBuffer *DomainInformation `idl:"name:DomBuffer;switch_is:Level" json:"dom_buffer"`
	// Return: The NetrLogonGetDomainInfo return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetDomainInfoResponse structure represents the NetrLogonGetDomainInfo operation response

func (*GetDomainInfoResponse) MarshalNDR

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

func (*GetDomainInfoResponse) UnmarshalNDR

func (o *GetDomainInfoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetForestTrustInformationRequest

type GetForestTrustInformationRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// TrustedDomainName: The optional null-terminated Unicode string that contains the
	// DNS or NetBIOS name of the trusted domain for which the forest trust information
	// is to be gathered.
	TrustedDomainName string `idl:"name:TrustedDomainName;string;pointer:unique" json:"trusted_domain_name"`
	// Flags: A set of bit flags that specify additional applications for the forest trust
	// information. A flag is TRUE (or set) if its value is equal to 1.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Update a trusted domain object (TDO) with the information returned in            |
	//	|       | ForestTrustInfo.                                                                 |
	//	+-------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

GetForestTrustInformationRequest structure represents the DsrGetForestTrustInformation operation request

func (*GetForestTrustInformationRequest) MarshalNDR

func (*GetForestTrustInformationRequest) UnmarshalNDR

type GetForestTrustInformationResponse

type GetForestTrustInformationResponse struct {
	// ForestTrustInfo: A pointer to an LSA_FOREST_TRUST_INFORMATION structure, as specified
	// in [MS-LSAD] section 2.2.7.25, that contains data for each forest trust.
	ForestTrustInfo *ForestTrustInformation `idl:"name:ForestTrustInfo" json:"forest_trust_info"`
	// Return: The DsrGetForestTrustInformation return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetForestTrustInformationResponse structure represents the DsrGetForestTrustInformation operation response

func (*GetForestTrustInformationResponse) MarshalNDR

func (*GetForestTrustInformationResponse) UnmarshalNDR

type GetNetrDCNameRequest

type GetNetrDCNameRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1, that represents
	// the connection to a domain controller.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// DomainName: A null-terminated Unicode string that specifies the NetBIOS name of the
	// domain.
	DomainName string `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
}

GetNetrDCNameRequest structure represents the NetrGetDCName operation request

func (*GetNetrDCNameRequest) MarshalNDR

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

func (*GetNetrDCNameRequest) UnmarshalNDR

func (o *GetNetrDCNameRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetNetrDCNameResponse

type GetNetrDCNameResponse struct {
	// Buffer: A pointer to a null-terminated Unicode string that contains the NetBIOS name
	// of the PDC for the specified domain. The server name returned by this method is prefixed
	// by two backslashes (\\).
	Buffer string `idl:"name:Buffer;string" json:"buffer"`
	// Return: The NetrGetDCName return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetNetrDCNameResponse structure represents the NetrGetDCName operation response

func (*GetNetrDCNameResponse) MarshalNDR

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

func (*GetNetrDCNameResponse) UnmarshalNDR

func (o *GetNetrDCNameResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetNetrForestTrustInformationRequest

type GetNetrForestTrustInformationRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ComputerName: The null-terminated Unicode string that contains the client computer
	// NetBIOS name.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// Flags: MUST be set to zero and MUST be ignored on receipt.
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

GetNetrForestTrustInformationRequest structure represents the NetrGetForestTrustInformation operation request

func (*GetNetrForestTrustInformationRequest) MarshalNDR

func (*GetNetrForestTrustInformationRequest) UnmarshalNDR

type GetNetrForestTrustInformationResponse

type GetNetrForestTrustInformationResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// ForestTrustInfo: A pointer to an LSA_FOREST_TRUST_INFORMATION structure, as specified
	// in [MS-LSAD] section 2.2.7.25, that contains data for each forest trust.
	ForestTrustInfo *ForestTrustInformation `idl:"name:ForestTrustInfo" json:"forest_trust_info"`
	// Return: The NetrGetForestTrustInformation return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetNetrForestTrustInformationResponse structure represents the NetrGetForestTrustInformation operation response

func (*GetNetrForestTrustInformationResponse) MarshalNDR

func (*GetNetrForestTrustInformationResponse) UnmarshalNDR

type GetSiteNameRequest

type GetSiteNameRequest struct {
	// ComputerName: The custom binding handle (defined in section 3.5.4.1).
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
}

GetSiteNameRequest structure represents the DsrGetSiteName operation request

func (*GetSiteNameRequest) MarshalNDR

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

func (*GetSiteNameRequest) UnmarshalNDR

func (o *GetSiteNameRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetSiteNameResponse

type GetSiteNameResponse struct {
	// SiteName: A null-terminated Unicode string that contains the name of the site in
	// which the computer that receives this call resides.
	SiteName string `idl:"name:SiteName;string" json:"site_name"`
	// Return: The DsrGetSiteName return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetSiteNameResponse structure represents the DsrGetSiteName operation response

func (*GetSiteNameResponse) MarshalNDR

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

func (*GetSiteNameResponse) UnmarshalNDR

func (o *GetSiteNameResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTimeServiceParentDomainRequest

type GetTimeServiceParentDomainRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
}

GetTimeServiceParentDomainRequest structure represents the NetrLogonGetTimeServiceParentDomain operation request

func (*GetTimeServiceParentDomainRequest) MarshalNDR

func (*GetTimeServiceParentDomainRequest) UnmarshalNDR

type GetTimeServiceParentDomainResponse

type GetTimeServiceParentDomainResponse struct {
	// DomainName: A pointer to the buffer that receives the null-terminated Unicode string
	// that contains the name of the parent domain. If the DNS domain name is available,
	// it is returned through this parameter; otherwise, the NetBIOS domain name is returned.
	DomainName string `idl:"name:DomainName;string" json:"domain_name"`
	// PdcSameSite: A pointer to the integer that receives the value that indicates whether
	// the PDC for the domain DomainName is in the same site as the server specified by
	// ServerName. The Netlogon client ignores this value if ServerName is not a domain
	// controller.
	//
	//	+---------+------------------------------------------------------------------------+
	//	|         |                                                                        |
	//	|  VALUE  |                                MEANING                                 |
	//	|         |                                                                        |
	//	+---------+------------------------------------------------------------------------+
	//	+---------+------------------------------------------------------------------------+
	//	| False 0 | The PDC is not in the same site as the server specified by ServerName. |
	//	+---------+------------------------------------------------------------------------+
	//	| True 1  | The PDC is in the same site as the server specified by ServerName.     |
	//	+---------+------------------------------------------------------------------------+
	PDCSameSite int32 `idl:"name:PdcSameSite" json:"pdc_same_site"`
	// Return: The NetrLogonGetTimeServiceParentDomain return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetTimeServiceParentDomainResponse structure represents the NetrLogonGetTimeServiceParentDomain operation response

func (*GetTimeServiceParentDomainResponse) MarshalNDR

func (*GetTimeServiceParentDomainResponse) UnmarshalNDR

type GetTrustInfoRequest

type GetTrustInfoRequest struct {
	// TrustedDcName: The custom binding handle, as defined in section 3.5.4.1.
	TrustedDCName string `idl:"name:TrustedDcName;string;pointer:unique" json:"trusted_dc_name"`
	// AccountName: The null-terminated Unicode string that contains the name of the client
	// account in the domain.
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// SecureChannelType: A NETLOGON_SECURE_CHANNEL_TYPE enumerated value, as specified
	// in section 2.2.1.3.13, that indicates the type of the secure channel being established
	// by this call.
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the client computer, for which the trust information MUST be returned.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
}

GetTrustInfoRequest structure represents the NetrServerGetTrustInfo operation request

func (*GetTrustInfoRequest) MarshalNDR

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

func (*GetTrustInfoRequest) UnmarshalNDR

func (o *GetTrustInfoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTrustInfoResponse

type GetTrustInfoResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// EncryptedNewOwfPassword: A pointer to an ENCRYPTED_NT_OWF_PASSWORD structure, as
	// specified in [MS-SAMR] section 2.2.7.3, that contains the NTOWFv1 (as specified in
	// NTLM v1 Authentication in [MS-NLMP] section 3.3.1) of the current password, encrypted
	// as specified in [MS-SAMR] section 2.2.11.1.1, Encrypting an NT Hash or LM Hash Value
	// with a specified key. The session key is the specified 16-byte key that is used to
	// derive its keys via the 16-byte value process, as specified in [MS-SAMR] section
	// 2.2.11.1.4.
	EncryptedNewOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedNewOwfPassword" json:"encrypted_new_owf_password"`
	// EncryptedOldOwfPassword: A pointer to an ENCRYPTED_NT_OWF_PASSWORD structure, as
	// specified in [MS-SAMR] section 2.2.7.3, that contains the NTOWFv1 (as specified in
	// NTLM v1 Authentication in [MS-NLMP] section 3.3.1) of the old password, encrypted
	// as specified in [MS-SAMR] section 2.2.11.1.1, Encrypting an NT Hash or LM Hash Value
	// with a specified key. The session key is the specified 16-byte key that is used to
	// derive its keys via the 16-byte value process, as specified in [MS-SAMR] section
	// 2.2.11.1.4.
	EncryptedOldOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedOldOwfPassword" json:"encrypted_old_owf_password"`
	// TrustInfo: A pointer to an NL_GENERIC_RPC_DATA structure, as specified in section
	// 2.2.1.6.4, that contains a block of generic RPC data with trust information for the
	// specified server.
	TrustInfo *GenericRPCData `idl:"name:TrustInfo" json:"trust_info"`
	// Return: The NetrServerGetTrustInfo return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetTrustInfoResponse structure represents the NetrServerGetTrustInfo operation response

func (*GetTrustInfoResponse) MarshalNDR

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

func (*GetTrustInfoResponse) UnmarshalNDR

func (o *GetTrustInfoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTrustRIDRequest

type GetTrustRIDRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// DomainName: The null-terminated Unicode string that contains the DNS or NetBIOS name
	// of the primary or trusted domain. If this parameter is NULL, this method uses the
	// name of the primary domain of the server.
	DomainName string `idl:"name:DomainName;string;pointer:unique" json:"domain_name"`
}

GetTrustRIDRequest structure represents the NetrLogonGetTrustRid operation request

func (*GetTrustRIDRequest) MarshalNDR

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

func (*GetTrustRIDRequest) UnmarshalNDR

func (o *GetTrustRIDRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTrustRIDResponse

type GetTrustRIDResponse struct {
	// Rid: A pointer to an unsigned long that receives the RID of the account.
	RID uint32 `idl:"name:Rid" json:"rid"`
	// Return: The NetrLogonGetTrustRid return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetTrustRIDResponse structure represents the NetrLogonGetTrustRid operation response

func (*GetTrustRIDResponse) MarshalNDR

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

func (*GetTrustRIDResponse) UnmarshalNDR

func (o *GetTrustRIDResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GroupMembership

type GroupMembership struct {
	// RelativeId: The relative identifier (RID) for a particular group.
	RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"`
	// Attributes: A set of values that describe the group membership attributes set for
	// the RID specified in RelativeId. The value is constructed from one or more bit flags
	// from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | The SID cannot have the SE_GROUP_ENABLED attribute removed. Corresponds to       |
	//	|       | the SID attribute SE_GROUP_MANDATORY. This attribute prevents the user from      |
	//	|       | disabling the group. Disabling a group causes the group to be ignored by access  |
	//	|       | validation routines.                                                             |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | The SID is enabled by default (as opposed to being enabled by an application).   |
	//	|       | Corresponds to the SID attribute SE_GROUP_ENABLED_BY_DEFAULT.                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | The SID is enabled for access checks. Corresponds to the SID attribute           |
	//	|       | SE_GROUP_ENABLED. The SE_GROUP_ENABLED attribute enables the group.              |
	//	+-------+----------------------------------------------------------------------------------+
	//
	// These values are opaque to the Netlogon protocol. They are not used or processed
	// directly. All fields of this structure have the same meaning as the identically named
	// fields in the GROUP_MEMBERSHIP structure as specified in [MS-PAC] section 2.2.2.
	Attributes uint32 `idl:"name:Attributes" json:"attributes"`
}

GroupMembership structure represents GROUP_MEMBERSHIP RPC structure.

The GROUP_MEMBERSHIP structure identifies the group to which an account belongs.

func (*GroupMembership) MarshalNDR

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

func (*GroupMembership) UnmarshalNDR

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

type InChainSetClientAttributes

type InChainSetClientAttributes struct {
	// Types that are assignable to Value
	//
	// *InChainSetClientAttributes_V1
	Value is_InChainSetClientAttributes `json:"value"`
}

InChainSetClientAttributes structure represents NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES RPC union.

The NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES union defines versioning.

func (*InChainSetClientAttributes) GetValue

func (o *InChainSetClientAttributes) GetValue() any

func (*InChainSetClientAttributes) MarshalUnionNDR

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

func (*InChainSetClientAttributes) NDRSwitchValue

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

func (*InChainSetClientAttributes) UnmarshalUnionNDR

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

type InChainSetClientAttributesV1

type InChainSetClientAttributesV1 struct {
	// ClientDnsHostName: A NULL or null-terminated Unicode string that is used to update
	// the attribute dNSHostName on the client's computer account object in Active Directory.
	ClientDNSHostName string `idl:"name:ClientDnsHostName;string;pointer:unique" json:"client_dns_host_name"`
	// OsVersionInfo_V1: If not NULL, the attribute operatingSystemVersion on the client's
	// computer account in Active Directory (using the ABNF Syntax as specified in [RFC2234])
	// is set to:
	//
	// * If OsVersionInfo_V1.dwBuildNumber is 0:
	//
	// operatingSystemVersion = MajorVersion "." MinorVersion
	//
	// MajorVersion = "OsVersionInfo_V1.dwMajorVersion"
	//
	// MinorVersion = "OsVersionInfo_V1.dwMinorVersion"
	//
	// * Otherwise:
	//
	// operatingSystemVersion = MajorVersion "." MinorVersion "."
	//
	// # BuildNumber
	//
	// MajorVersion = "OsVersionInfo_V1.dwMajorVersion"
	//
	// MinorVersion = "OsVersionInfo_V1.dwMinorVersion"
	//
	// BuildNumber = "OsVersionInfo_V1.dwBuildNumber"
	OSVersionInfoV1 *OSVersionInfoV1 `idl:"name:OsVersionInfo_V1;pointer:unique" json:"os_version_info_v1"`
	// OsName: A NULL or a null-terminated Unicode string that SHOULD<42> be used to update
	// the attribute operatingSystem on the client's computer account object in Active Directory.
	OSName string `idl:"name:OsName;string;pointer:unique" json:"os_name"`
}

InChainSetClientAttributesV1 structure represents NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 RPC structure.

The NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 structure specifies the values to update on the client's computer account object in Active Directory on a normal (writable) domain controller.<41>

func (*InChainSetClientAttributesV1) MarshalNDR

func (*InChainSetClientAttributesV1) UnmarshalNDR

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

type InChainSetClientAttributes_V1

type InChainSetClientAttributes_V1 struct {
	// V1: An NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 (section 2.2.1.3.16) structure.<43>
	V1 *InChainSetClientAttributesV1 `idl:"name:V1" json:"v1"`
}

InChainSetClientAttributes_V1 structure represents NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES RPC union arm.

It has following labels: 1

func (*InChainSetClientAttributes_V1) MarshalNDR

func (*InChainSetClientAttributes_V1) UnmarshalNDR

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

type Info1

type Info1 struct {
	// netlog1_flags: A set of bit flags that are defined in the following table. A flag
	// SHOULD<61> be TRUE (or set) if its value is equal to 1. The value is constructed
	// from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | G | F | E | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | One of the databases is out-of-date, and replication is needed.                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | At least one of the databases is currently being replicated.                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | At least one of the databases requires a full synchronization update.            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | At least one database record requires an update.                                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| E     | The DC used on the secure channel is reachable over TCP/IP. If this flag is not  |
	//	|       | set, then the DC does not have a known IP address.                               |
	//	+-------+----------------------------------------------------------------------------------+
	//	| F     | The DC used on the secure channel runs W32Time.                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| G     | The last update of one of the DNS records on the DC failed.                      |
	//	+-------+----------------------------------------------------------------------------------+
	//
	// All other bits MUST be set to zero and MUST be ignored on receipt.
	Flags uint32 `idl:"name:netlog1_flags" json:"flags"`
	// netlog1_pdc_connection_status: The integer value that indicates the connection status,
	// as described in Setting ConnectionStatus (section 3.4.5.3.1), of the secure channel
	// to a DC in the primary domain of the queried server.
	PDCConnectionStatus uint32 `idl:"name:netlog1_pdc_connection_status" json:"pdc_connection_status"`
}

Info1 structure represents NETLOGON_INFO_1 RPC structure.

The NETLOGON_INFO_1 structure defines information returned as part of an administrative query, as detailed in the description of the NetrLogonControl2Ex method in section 3.5.4.9.1. This structure is used to convey information about the state and properties of the secure channel to a DC in the primary domain of the queried server. Additionally, this structure MAY<60> contain information about the state of the database synchronization.

func (*Info1) MarshalNDR

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

func (*Info1) UnmarshalNDR

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

type Info2

type Info2 struct {
	// netlog2_flags: A set of bit flags describing the following control query responses
	// from the DC. A flag is TRUE (or set) if its value is equal to 1. The value is constructed
	// from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | C | 0 | B | A | 0 | 0 | 0 | 0 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the flags SHOULD<62> be defined as shown in the following table.
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | The DC used on the secure channel has an IP address (either IPv4 or IPv6).       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | The DC used on the secure channel runs W32Time.                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Signifies that the trust verification status was returned in the                 |
	//	|       | netlog2_pdc_connection_status field.                                             |
	//	+-------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:netlog2_flags" json:"flags"`
	// netlog2_pdc_connection_status: Unless the C bit is set in netlog2_flags field, this
	// field indicates the connection status, as described in Setting ConnectionStatus (section
	// 3.4.5.3.1), of the secure channel to a DC in the primary domain of the queried server.
	// If the C bit is set in netlog2_flags field, this field indicates the connection status
	// of verifying the secure channel to the DC in the specified domain specified by the
	// caller of NetrLogonControl2Ex method (section 3.5.4.9.1).
	PDCConnectionStatus uint32 `idl:"name:netlog2_pdc_connection_status" json:"pdc_connection_status"`
	// netlog2_trusted_dc_name: A pointer to a null-terminated Unicode string that contains
	// the DNS or NetBIOS name of the DC used on the secure channel for the specified domain.
	// The name is the FQDN if the DC was discovered using the discovery mechanism based
	// on the DNS query and LDAP ping ([MS-ADTS] section 6.3.3). The name is the NetBIOS
	// name if the DC was discovered using the mailslot-based mechanism ([MS-ADTS] section
	// 6.3.5).
	TrustedDCName string `idl:"name:netlog2_trusted_dc_name;string" json:"trusted_dc_name"`
	// netlog2_tc_connection_status: An integer value that indicates the connection status,
	// described in Setting ConnectionStatus (section 3.4.5.3.1), of the secure channel
	// to the DC in the specified domain.
	TCConnectionStatus uint32 `idl:"name:netlog2_tc_connection_status" json:"tc_connection_status"`
}

Info2 structure represents NETLOGON_INFO_2 RPC structure.

The NETLOGON_INFO_2 structure defines information returned as part of an administrative query of the status of the Netlogon server, as detailed in the description of the NetrLogonControl2Ex method in section 3.5.4.9.1. This structure is used to convey information about the status and properties of the secure channel to a DC in the primary or directly trusted domain specified by the caller of NetrLogonControl2Ex method.

func (*Info2) MarshalNDR

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

func (*Info2) UnmarshalNDR

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

type Info3

type Info3 struct {
	// netlog3_flags: MUST be set to zero and MUST be ignored on receipt.
	Flags uint32 `idl:"name:netlog3_flags" json:"flags"`
	// netlog3_logon_attempts: The number of NTLM logon attempts made on the server since
	// the last restart.
	LogonAttempts uint32 `idl:"name:netlog3_logon_attempts" json:"logon_attempts"`
	// contains filtered or unexported fields
}

Info3 structure represents NETLOGON_INFO_3 RPC structure.

The NETLOGON_INFO_3 structure defines information returned as part of an administrative query of the status of the Netlogon server, as detailed in the description of the NetrLogonControl2Ex method in section 3.5.4.9.1. This structure is used to return the number of NTLM logons attempted on the queried server since the last restart.

func (*Info3) MarshalNDR

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

func (*Info3) UnmarshalNDR

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

type Info4

type Info4 struct {
	// netlog4_trusted_dc_name: A pointer to a null-terminated Unicode string that contains
	// the DNS or NetBIOS name of a DC that is used on the secure channel for the primary
	// or directly trusted domain containing the specified user account. The name is the
	// FQDN if the DC was discovered using the discovery mechanism based on the DNS query
	// and LDAP ping ([MS-ADTS] section 6.3.3). The name is the NetBIOS name if the DC was
	// discovered using the mailslot-based mechanism ([MS-ADTS] section 6.3.5).
	TrustedDCName string `idl:"name:netlog4_trusted_dc_name;string" json:"trusted_dc_name"`
	// netlog4_trusted_domain_name: A pointer to a null-terminated Unicode string that contains
	// the NetBIOS name of the primary or directly trusted domain containing the specified
	// user account.
	TrustedDomainName string `idl:"name:netlog4_trusted_domain_name;string" json:"trusted_domain_name"`
}

Info4 structure represents NETLOGON_INFO_4 RPC structure.

The NETLOGON_INFO_4 structure defines information that is returned as part of an administrative query of the status of the Netlogon server, as detailed in the description of the NetrLogonControl2Ex method in section 3.5.4.9.1. This structure is used to convey information about the status and properties of the secure channel to a DC in the primary or directly trusted domain containing the user account specified by the caller of the NetrLogonControl2Ex method.

func (*Info4) MarshalNDR

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

func (*Info4) UnmarshalNDR

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

type InteractiveInfo

type InteractiveInfo struct {
	// Identity: A NETLOGON_LOGON_IDENTITY_INFO structure, as specified in section 2.2.1.4.15,
	// that contains information about the logon identity.
	Identity *LogonIdentityInfo `idl:"name:Identity" json:"identity"`
	// LmOwfPassword: An LM_OWF_PASSWORD structure, as specified in section 2.2.1.1.3, that
	// contains the LMOWFv1 of a password. LMOWFv1 is specified in NTLM v1 Authentication
	// in [MS-NLMP] section 3.3.1.
	LMOWFPassword *LMOWFPassword `idl:"name:LmOwfPassword" json:"lm_owf_password"`
	// NtOwfPassword: An NT_OWF_PASSWORD structure, as specified in section 2.2.1.1.4, that
	// contains the NTOWFv1 of a password. NTOWFv1 is specified in NTLM v1 Authentication
	// in [MS-NLMP] section 3.3.1.
	NTOWFPassword *NTOWFPassword `idl:"name:NtOwfPassword" json:"nt_owf_password"`
}

InteractiveInfo structure represents NETLOGON_INTERACTIVE_INFO RPC structure.

The NETLOGON_INTERACTIVE_INFO structure defines information about an interactive logon instance.

func (*InteractiveInfo) MarshalNDR

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

func (*InteractiveInfo) UnmarshalNDR

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

type LMChallenge

type LMChallenge struct {
	// data: A string of eight characters that contains a LAN Manager authentication challenge,
	// which is an unencrypted nonce.
	//
	// For more information, see [LANMAN].
	Data []byte `idl:"name:data" json:"data"`
}

LMChallenge structure represents LM_CHALLENGE RPC structure.

The LM_CHALLENGE structure carries a LAN Manager authentication challenge.

func (*LMChallenge) MarshalNDR

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

func (*LMChallenge) UnmarshalNDR

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

type LMOWFPassword

type LMOWFPassword struct {
	// data: An array of CYPHER_BLOCK structures (section 2.2.1.1.1) that contains the LMOWFv1
	// of a password. LMOWFv1 is specified in NTLM v1 Authentication in [MS-NLMP] section
	// 3.3.1.
	Data []*CypherBlock `idl:"name:data" json:"data"`
}

LMOWFPassword structure represents LM_OWF_PASSWORD RPC structure.

The LM_OWF_PASSWORD structure carries a one-way function (OWF) of a LAN Manager password. The LM_OWF_PASSWORD structure SHOULD be encrypted, as specified by each method that uses this structure. See the NetrServerPasswordSet method (section 3.5.4.4.6) for encryption information.

func (*LMOWFPassword) MarshalNDR

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

func (*LMOWFPassword) UnmarshalNDR

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

type LSAPolicyInfo

type LSAPolicyInfo struct {
	// LsaPolicySize: This field is not used and is set to zero.
	LSAPolicySize uint32 `idl:"name:LsaPolicySize" json:"lsa_policy_size"`
	// LsaPolicy: This field is not used and is initialized to NULL.
	LSAPolicy []byte `idl:"name:LsaPolicy;size_is:(LsaPolicySize)" json:"lsa_policy"`
}

LSAPolicyInfo structure represents NETLOGON_LSA_POLICY_INFO RPC structure.

The NETLOGON_LSA_POLICY_INFO structure defines Local Security Authority (LSA) policy information as an unsigned character buffer. For details, see [LSAPOLICY] and [MS-LSAD].

func (*LSAPolicyInfo) MarshalNDR

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

func (*LSAPolicyInfo) UnmarshalNDR

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

type Level

type Level struct {
	// Types that are assignable to Value
	//
	// *Level_LogonInteractive
	// *Level_LogonInteractiveTransitive
	// *Level_LogonService
	// *Level_LogonServiceTransitive
	// *Level_LogonNetwork
	// *Level_LogonNetworkTransitive
	// *Level_LogonGeneric
	// *Level_DefaultLevel
	Value is_Level `json:"value"`
}

Level structure represents NETLOGON_LEVEL RPC union.

The NETLOGON_LEVEL union defines a union of all types of logon information.

func (*Level) GetValue

func (o *Level) GetValue() any

func (*Level) MarshalUnionNDR

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

func (*Level) NDRSwitchValue

func (o *Level) NDRSwitchValue(sw uint16) uint16

func (*Level) UnmarshalUnionNDR

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

type Level_DefaultLevel

type Level_DefaultLevel struct {
}

Level_DefaultLevel structure represents NETLOGON_LEVEL RPC default union arm.

func (*Level_DefaultLevel) MarshalNDR

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

func (*Level_DefaultLevel) UnmarshalNDR

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

type Level_LogonGeneric

type Level_LogonGeneric struct {
	// LogonGeneric: This field is selected when the logon information type is NetlogonGenericInformation.
	// The data type is NETLOGON_GENERIC_INFO, as specified in section 2.2.1.4.2.
	LogonGeneric *GenericInfo `idl:"name:LogonGeneric" json:"logon_generic"`
}

Level_LogonGeneric structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 4

func (*Level_LogonGeneric) MarshalNDR

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

func (*Level_LogonGeneric) UnmarshalNDR

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

type Level_LogonInteractive

type Level_LogonInteractive struct {
	// LogonInteractive: This field is selected when the logon information type is NetlogonInteractiveInformation.
	// The data type is NETLOGON_INTERACTIVE_INFO, as specified in section 2.2.1.4.3.
	LogonInteractive *InteractiveInfo `idl:"name:LogonInteractive" json:"logon_interactive"`
}

Level_LogonInteractive structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 1

func (*Level_LogonInteractive) MarshalNDR

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

func (*Level_LogonInteractive) UnmarshalNDR

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

type Level_LogonInteractiveTransitive

type Level_LogonInteractiveTransitive struct {
	// LogonInteractiveTransitive: This field is selected when the logon information type
	// is NetlogonInteractiveTransitiveInformation. The data type is NETLOGON_INTERACTIVE_INFO,
	// as specified in section 2.2.1.4.3.
	LogonInteractiveTransitive *InteractiveInfo `idl:"name:LogonInteractiveTransitive" json:"logon_interactive_transitive"`
}

Level_LogonInteractiveTransitive structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 5

func (*Level_LogonInteractiveTransitive) MarshalNDR

func (*Level_LogonInteractiveTransitive) UnmarshalNDR

type Level_LogonNetwork

type Level_LogonNetwork struct {
	// LogonNetwork: This field is selected when the logon information type is NetlogonNetworkInformation.
	// The data type is NETLOGON_NETWORK_INFO, as specified in section 2.2.1.4.5.
	LogonNetwork *NetworkInfo `idl:"name:LogonNetwork" json:"logon_network"`
}

Level_LogonNetwork structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 2

func (*Level_LogonNetwork) MarshalNDR

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

func (*Level_LogonNetwork) UnmarshalNDR

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

type Level_LogonNetworkTransitive

type Level_LogonNetworkTransitive struct {
	// LogonNetworkTransitive: This field is selected when the logon information type is
	// NetlogonNetworkTransitiveInformation. The data type is NETLOGON_NETWORK_INFO, as
	// specified in section 2.2.1.4.5.
	LogonNetworkTransitive *NetworkInfo `idl:"name:LogonNetworkTransitive" json:"logon_network_transitive"`
}

Level_LogonNetworkTransitive structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 6

func (*Level_LogonNetworkTransitive) MarshalNDR

func (*Level_LogonNetworkTransitive) UnmarshalNDR

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

type Level_LogonService

type Level_LogonService struct {
	// LogonService: This field is selected when the logon information type is NetlogonServiceInformation.
	// The data type is NETLOGON_SERVICE_INFO, as specified in section 2.2.1.4.4.
	LogonService *ServiceInfo `idl:"name:LogonService" json:"logon_service"`
}

Level_LogonService structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 3

func (*Level_LogonService) MarshalNDR

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

func (*Level_LogonService) UnmarshalNDR

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

type Level_LogonServiceTransitive

type Level_LogonServiceTransitive struct {
	// LogonServiceTransitive: This field is selected when the logon information type is
	// NetlogonServiceTransitiveInformation. The data type is NETLOGON_SERVICE_INFO, as
	// specified in section 2.2.1.4.4.
	LogonServiceTransitive *ServiceInfo `idl:"name:LogonServiceTransitive" json:"logon_service_transitive"`
}

Level_LogonServiceTransitive structure represents NETLOGON_LEVEL RPC union arm.

It has following labels: 7

func (*Level_LogonServiceTransitive) MarshalNDR

func (*Level_LogonServiceTransitive) UnmarshalNDR

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

type LogoffUASInfo

type LogoffUASInfo struct {
	Duration   uint32 `idl:"name:Duration" json:"duration"`
	LogonCount uint16 `idl:"name:LogonCount" json:"logon_count"`
}

LogoffUASInfo structure represents NETLOGON_LOGOFF_UAS_INFO RPC structure.

func (*LogoffUASInfo) MarshalNDR

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

func (*LogoffUASInfo) UnmarshalNDR

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

type LogonClient

type LogonClient interface {
	UASLogon(context.Context, *UASLogonRequest, ...dcerpc.CallOption) (*UASLogonResponse, error)

	UASLogoff(context.Context, *UASLogoffRequest, ...dcerpc.CallOption) (*UASLogoffResponse, error)

	// The NetrLogonSamLogon method<213> is a predecessor to the NetrLogonSamLogonWithFlags
	// method (section 3.5.4.5.2). All parameters of this method have the same meanings
	// as the identically named parameters of the NetrLogonSamLogonWithFlags method.
	//
	// Message processing<214> is identical to NetrLogonSamLogonEx, as specified in section
	// 3.5.4.5.1, except for the following:
	//
	// * The method uses Netlogon authenticators ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_e72a2c02-84a2-4ce3-b66f-86f725642dc3
	// ) , so instead of checking for Secure RPC, the server MUST confirm the validity of
	// the Authenticator (section 3.1.4.5 ( da7acaa3-030b-481e-979b-f58f89389806 ) ) that
	// it received using the ComputerName for the secure channel ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_08ce423c-9f9c-48ed-afa8-8b64c04ecdca
	// ) to find the corresponding record in the ClientSessionInfo table. If the Authenticator
	// parameter is valid, the server MUST compute the ReturnAuthenticator parameter returned
	// (section 3.1.4.5). Otherwise, the server MUST return STATUS_ACCESS_DENIED.
	//
	// * The ExtraFlags parameter is not processed.
	//
	// This method SHOULD only be called by a machine that has established a secure channel
	// with the server.
	SAMLogon(context.Context, *SAMLogonRequest, ...dcerpc.CallOption) (*SAMLogonResponse, error)

	// The NetrLogonSamLogoff method SHOULD<215> update the user lastLogoff attribute for
	// the SAM accounts.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	SAMLogoff(context.Context, *SAMLogoffRequest, ...dcerpc.CallOption) (*SAMLogoffResponse, error)

	// The NetrServerReqChallenge method SHOULD<172> receive a client challenge and return
	// a server challenge (SC).
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	RequestChallenge(context.Context, *RequestChallengeRequest, ...dcerpc.CallOption) (*RequestChallengeResponse, error)

	// The NetrServerAuthenticate method<177> is a predecessor to the NetrServerAuthenticate3
	// method (section 3.5.4.4.2). All parameters of this method have the same meanings
	// as the identically named parameters of the NetrServerAuthenticate3 method.
	//
	// Message processing is identical to NetrServerAuthenticate3, as specified in section
	// 3.5.4.4.2, except for the following:
	//
	// * The NegotiateFlags parameter is not present in NetrServerAuthenticate. Message
	// processing would be identical to an invocation of NetrServerAuthenticate3 with the
	// NegotiateFlags parameter set to 0.
	//
	// * The AccountRid parameter is not present in NetrServerAuthenticate.
	Authenticate(context.Context, *AuthenticateRequest, ...dcerpc.CallOption) (*AuthenticateResponse, error)

	// The NetrServerPasswordSet method SHOULD<182> set a new one-way function (OWF) of
	// a password for an account used by the domain controller for setting up the secure
	// channel from the client.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	PasswordSet(context.Context, *PasswordSetRequest, ...dcerpc.CallOption) (*PasswordSetResponse, error)

	// The NetrDatabaseDeltas method SHOULD<217> return a set of changes (or deltas) performed
	// to the SAM database, SAM built-in database, or LSA databases after a particular value
	// of the database serial number. It is used by BDCs to request database changes from
	// the PDC that are missing on the BDC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The synchronization that this method performs is not a full synchronization; rather,
	// a subset of database changes is returned. To perform a full synchronization, call
	// NetrDatabaseSync.
	//
	// The server that receives this call MUST do the following:
	//
	// * Verify that the client is a BDC.
	//
	// * Verify the client authenticator. The server MUST return status code STATUS_ACCESS_DENIED
	// if the verification fails.
	//
	// * Validate that DatabaseID is one of the allowed values, 0x00000000 through 0x00000002.
	// If the DatabaseID is not one of these values, the server MUST return the status code
	// STATUS_INVALID_LEVEL.
	//
	// * Given the BDC database serial number, obtain all database records that are missing
	// on the BDC and return the array of deltas, NETLOGON_DELTA_ENUM_ARRAY, for the missing
	// records. The number of elements returned is affected by the value of the PreferredMaximumLength
	// parameter. The server SHOULD <219> ( 0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_219
	// ) stop including elements in the returned array after the size of the returned data
	// equals or exceeds the value of the PreferredMaximumLength parameter. The server SHOULD
	// also limit the number of elements per local configuration to avoid large array allocations.
	//
	// * Compute and return the server authenticator.
	//
	// * The server MUST set the value of the DomainModifiedCount parameter to the database
	// serial number of the last delta returned in the array.
	//
	// * If not all missing records are returned, the server MUST return the status code
	// STATUS_MORE_ENTRIES.
	//
	// * The server maintains and updates a state that indicates the client progress in
	// the synchronization protocol, as defined in section 3.6 ( f28f9dc8-eeb2-4112-9eec-a466f639c761
	// ).
	DatabaseDeltas(context.Context, *DatabaseDeltasRequest, ...dcerpc.CallOption) (*DatabaseDeltasResponse, error)

	// The NetrDatabaseSync method<223> is a predecessor to the NetrDatabaseSync2 method
	// (section 3.5.4.6.2). All parameters of this method have the same meanings as the
	// identically named parameters of the NetrDatabaseSync2 method.
	//
	// Receiving this method is identical to receiving NetrDatabaseSync2, as specified in
	// section 3.5.4.6.2, except that this call does not use the RestartState parameter.
	// NetrDatabaseSync does not support restarting the synchronization loop.
	DatabaseSync(context.Context, *DatabaseSyncRequest, ...dcerpc.CallOption) (*DatabaseSyncResponse, error)

	AccountDeltas(context.Context, *AccountDeltasRequest, ...dcerpc.CallOption) (*AccountDeltasResponse, error)

	AccountSync(context.Context, *AccountSyncRequest, ...dcerpc.CallOption) (*AccountSyncResponse, error)

	// The NetrGetDCName method MAY<160> be used to retrieve the NetBIOS name of the PDC
	// for the specified domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it MUST return
	// a nonzero error code and SHOULD return the following error code.
	//
	//	+--------------------------------+---------------------------------+
	//	|             RETURN             |                                 |
	//	|           VALUE/CODE           |           DESCRIPTION           |
	//	|                                |                                 |
	//	+--------------------------------+---------------------------------+
	//	+--------------------------------+---------------------------------+
	//	| 0x00000035 ERROR_ BAD_ NETPATH | The network path was not found. |
	//	+--------------------------------+---------------------------------+
	GetNetrDCName(context.Context, *GetNetrDCNameRequest, ...dcerpc.CallOption) (*GetNetrDCNameResponse, error)

	// The NetrLogonControl method is a predecessor to the NetrLogonControl2Ex method (section
	// 3.5.4.9.1). All parameters of this method SHOULD<260> have the same meanings as the
	// identically named parameters of the NetrLogonControl2Ex method.
	//
	// All restrictions on parameter values in the NetrLogonControl2Ex method (section 3.5.4.9.1)
	// apply. Extra restrictions are applied to the values of the FunctionCode<261> and
	// QueryLevel parameters as follows:
	//
	// * The value of QueryLevel parameter is restricted to 0x00000001. If 0x00000002 is
	// used, the error ERROR_NOT_SUPPORTED is returned; if any value larger than 0x00000002
	// is used, the error ERROR_INVALID_LEVEL is returned.
	//
	// Message processing is identical to NetrLogonControl2Ex (section 3.5.4.9.1), except
	// for the following:
	//
	// * The Data parameter of *NetrLogonControl2Ex* is set to NULL.
	Control(context.Context, *ControlRequest, ...dcerpc.CallOption) (*ControlResponse, error)

	// The NetrGetAnyDCName method MAY<162> be used to retrieve the name of a domain controller
	// in the specified primary or directly trusted domain. Only DCs can return the name
	// of a DC in a specified directly trusted domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it MUST return
	// a nonzero error code and SHOULD return the following error code.
	//
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	|                   RETURN                   |                                                                                  |
	//	|                 VALUE/CODE                 |                                   DESCRIPTION                                    |
	//	|                                            |                                                                                  |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000712 ERROR_DOMAIN_TRUST_INCONSISTENT | The name or security ID (SID) of the domain specified is inconsistent with the   |
	//	|                                            | trust information for that domain.                                               |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	GetAnyDCName(context.Context, *GetAnyDCNameRequest, ...dcerpc.CallOption) (*GetAnyDCNameResponse, error)

	// The NetrLogonControl2 method<259> is a predecessor to the NetrLogonControl2Ex method
	// (section 3.5.4.9.1) and is updated to have the same functionality as NetrLogonControl2Ex.
	// All parameters of this method have the same meanings as the identically named parameters
	// of the NetrLogonControl2Ex method.
	//
	// All restrictions on parameter values in the NetrLoginControl2Ex method (section 3.5.4.9.1)
	// apply. Extra restrictions are applied to the values of the QueryLevel parameter as
	// follows:
	//
	// * If the QueryLevel parameter is set to 0x00000004, the error ERROR_INVALID_LEVEL
	// is returned.
	//
	// Message processing is identical to NetrLogonControl2Ex (section 3.5.4.9.1).
	Control2(context.Context, *Control2Request, ...dcerpc.CallOption) (*Control2Response, error)

	// The NetrServerAuthenticate2 method<176> is a predecessor to the NetrServerAuthenticate3
	// method, as specified in section 3.5.4.4.2. All parameters of this method have the
	// same meanings as the identically named parameters of the NetrServerAuthenticate3
	// method.
	//
	// Message processing is identical to NetrServerAuthenticate3, except for the following:
	//
	// The AccountRid parameter is not present in NetrServerAuthenticate2.
	Authenticate2(context.Context, *Authenticate2Request, ...dcerpc.CallOption) (*Authenticate2Response, error)

	// The NetrDatabaseSync2 method SHOULD<220> return a set of all changes applied to the
	// specified database since its creation. It provides an interface for a BDC to fully
	// synchronize its databases to those of the PDC. Because returning all changes in one
	// call might be prohibitively expensive due to a large amount of data being returned,
	// this method supports retrieving portions of the database changes in a series of calls
	// using a continuation context until all changes are received. It is possible for the
	// series of calls to be terminated prematurely due to external events, such as system
	// restarts. For that reason, the method also supports restarting the series of calls
	// at a particular point specified by the caller. The caller MUST keep track of synchronization
	// progress during the series of calls as detailed in this section.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server that receives this call MUST do the following:
	//
	// * Verify that the client is a backup domain controller (BDC) ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_ce1138c6-7ab4-4c37-98b4-95599071c3c3
	// ) , the server is a PDC, and is enabled. If any of these conditions are false, the
	// server MUST return the status code STATUS_NOT_SUPPORTED.
	//
	// * Apply Common Error Processing Rule B, specified in section 3 ( 2d776bfc-e81f-4c8f-9da8-4c2920f65413
	// ).
	//
	// * Using the ComputerName for the secure channel ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_08ce423c-9f9c-48ed-afa8-8b64c04ecdca
	// ) to find the corresponding record in the ClientSessionInfo table, verify the Authenticator
	// parameter (section 3.1.4.5 ( da7acaa3-030b-481e-979b-f58f89389806 ) ). If the Authenticator
	// parameter is valid, compute the ReturnAuthenticator parameter returned (section 3.1.4.5).
	// Otherwise, the server MUST return STATUS_ACCESS_DENIED.
	//
	// * Validate that DatabaseID is one of the allowed values, 0x00000000 through 0x00000002.
	// If the DatabaseID is not one of these values, the server MUST return the status code
	// STATUS_INVALID_LEVEL.
	//
	// * Given the RestartState parameter and the SyncContext parameter, obtain database
	// records that are missing on the BDC and return the array of deltas, NETLOGON_DELTA_ENUM_ARRAY,
	// for the missing records. The number of elements returned is affected by the value
	// of the PreferredMaximumLength parameter. The server SHOULD <222> ( 0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_222
	// ) stop including elements in the returned array once the size of the returned data
	// equals or exceeds the value of the PreferredMaximumLength parameter. The server SHOULD
	// also limit the number of elements per local configuration to avoid large array allocations.
	//
	// * The server MUST update and return the SyncContext parameter (section 2.2.1.5.29
	// ( ffce9bbc-6ae5-4478-8f45-e82c3847aaa2 ) ) to continue the synchronization loop on
	// the next client request.
	//
	// * Compute and return the server authenticator.
	//
	// * Initialize *SynchronizationComplete* by setting it to FALSE, and when all the missing
	// records are sent set *SynchronizationComplete* to TRUE.
	//
	// * If *SynchronizationComplete* is FALSE, the server MUST return the status code STATUS_MORE_ENTRIES.
	DatabaseSync2(context.Context, *DatabaseSync2Request, ...dcerpc.CallOption) (*DatabaseSync2Response, error)

	// The NetrDatabaseRedo method SHOULD<224> be used by a backup domain controller (BDC)
	// to request information about a single account from the PDC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The following CHANGELOG_ENTRY structure pointed to by the ChangeLogEntry parameter
	// carries information about the account object being queried.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| SerialNumber [0..3]                                                                                                           |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| SerialNumber [4..7]                                                                                                           |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ObjectRid                                                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Flags                                                         | DBIndex                       | DeltaType                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ObjectSid (optional, variable length) ...                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ObjectName (optional, variable length) ...                                                                                    |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	DatabaseRedo(context.Context, *DatabaseRedoRequest, ...dcerpc.CallOption) (*DatabaseRedoResponse, error)

	// The NetrLogonControl2Ex method SHOULD<243> execute administrative actions that pertain
	// to the Netlogon server operation. It is used to query the status and control the
	// actions of the Netlogon server.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	Control2Ex(context.Context, *Control2ExRequest, ...dcerpc.CallOption) (*Control2ExResponse, error)

	// The NetrEnumerateTrustedDomains method SHOULD<227> return a set of NetBIOS names
	// of trusted domains.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000051F ERROR_NO_LOGON_SERVERS     | There are currently no logon servers available to service the logon request.     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FA ERROR_NO_TRUST_LSA_SECRET  | The workstation does not have a trust secret.                                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FB ERROR_NO_TRUST_SAM_ACCOUNT | The security database on the server does not have a computer account for this    |
	//	|                                       | workstation trust relationship.                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server initializes the DomainNames field of the DOMAIN_NAME_BUFFER to the empty
	// string. The server calls the NetrEnumerateTrustedDomainsEx method and for each PDS_DOMAIN_TRUSTSW
	// element of the NETLOGON_TRUSTED_DOMAIN_ARRAY, appends the NetbiosDomainName field
	// to the DomainNames field of the DOMAIN_NAME_BUFFER (section 2.2.1.6.1). Then the
	// server terminates the DomainNames field with two null bytes.
	//
	// For details, see section 3.5.4.7.2, Receiving NetrEnumerateTrustedDomainsEx.
	EnumerateTrustedDomains(context.Context, *EnumerateTrustedDomainsRequest, ...dcerpc.CallOption) (*EnumerateTrustedDomainsResponse, error)

	// The DsrGetDcName method is a predecessor to the DsrGetDcNameEx2 method (section 3.5.4.3.1).
	// The method SHOULD<159> return information about a domain controller in the specified
	// domain. All parameters of this method have the same meanings as the identically named
	// parameters of the DsrGetDcNameEx2 method, except for the SiteGuid parameter, detailed
	// as follows.
	GetDCName(context.Context, *GetDCNameRequest, ...dcerpc.CallOption) (*GetDCNameResponse, error)

	// The NetrLogonGetCapabilities method is used by clients to confirm the server capabilities
	// after a secure channel has been established.<194>
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetCapabilities(context.Context, *GetCapabilitiesRequest, ...dcerpc.CallOption) (*GetCapabilitiesResponse, error)

	// The NetrLogonSetServiceBits method SHOULD<237> be used to notify Netlogon whether
	// a domain controller is running specified services, as detailed in the following section.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server SHOULD<240> return ERROR_ACCESS_DENIED if the caller is not local.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	SetServiceBits(context.Context, *SetServiceBitsRequest, ...dcerpc.CallOption) (*SetServiceBitsResponse, error)

	// The NetrLogonGetTrustRid method SHOULD<231> be used to obtain the RID of the account
	// whose password is used by domain controllers in the specified domain for establishing
	// the secure channel from the server receiving this call.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server SHOULD<232> return ERROR_ACCESS_DENIED if the caller is not local.
	//
	// If ServerName equals NULL and DomainName equals NULL, the server determines if the
	// client has sufficient privilege (as specified in section 3.5.4.2) with the Access
	// Request mask set to NETLOGON_FTINFO_ACCESS.
	//
	// Otherwise, the server determines if the client has sufficient privilege (as specified
	// in section 3.5.4.2) with the Access Request mask set to NETLOGON_SERVICE_ACCESS.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	//
	// If ServerName equals NULL, then the call MUST be made to the local machine. If the
	// DomainName is the same as the domain that the machine is joined to, the call MUST
	// succeed, and the server MUST return the AccountRid of the machine in the domain.
	// If the DomainName is a different domain, the server MUST return ERROR_NO_SUCH_DOMAIN.
	//
	// If both ServerName and DomainName are NULL, the server MUST return the RID for the
	// computer account of the caller. Otherwise, the RID for the account identified by
	// ServerName and DomainName MUST be returned.
	//
	// The server uses the server name passed in the ServerName parameter to look up the
	// domain for the request. If the name is not found, the server MUST return ERROR_INVALID_COMPUTERNAME.
	//
	// If the RID cannot be determined, the server SHOULD return ERROR_TRUSTED_RELATIONSHIP_FAILURE.
	GetTrustRID(context.Context, *GetTrustRIDRequest, ...dcerpc.CallOption) (*GetTrustRIDResponse, error)

	// The NetrLogonComputeServerDigest method computes a cryptographic digest of a message
	// by using the MD5 message-digest algorithm, as specified in [RFC1321]. This method
	// SHOULD<233> be called by a client computer against a server and is used to compute
	// a message digest, as specified in this section. The client then calls the NetrLogonComputeClientDigest
	// method (as specified in section 3.4.5.6.3) and compare the digests to ensure that
	// the server that it communicates with knows the shared secret between the client machine
	// and the domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server uses the server name passed in the ServerName parameter to look up the
	// domain for the request. If the name is not found, the server MUST return ERROR_INVALID_COMPUTERNAME.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	ComputeServerDigest(context.Context, *ComputeServerDigestRequest, ...dcerpc.CallOption) (*ComputeServerDigestResponse, error)

	// The NetrLogonComputeClientDigest method is used by a client to compute a cryptographic
	// digest of a message by using the MD5 message-digest algorithm, as specified in [RFC1321].
	// This method is called by a client to compute a message digest, as specified in this
	// section. The client SHOULD<235> use this digest to compare against one that is returned
	// by a call to NetrLogonComputeServerDigest. This comparison allows the client to ensure
	// that the server that it communicates with knows the shared secret between the client
	// machine and the domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	ComputeClientDigest(context.Context, *ComputeClientDigestRequest, ...dcerpc.CallOption) (*ComputeClientDigestResponse, error)

	// The NetrServerAuthenticate3 method SHOULD<173> mutually authenticate the client and
	// the server and establish the session key to be used for the secure channel message
	// protection between the client and the server. It is called after the NetrServerReqChallenge
	// method, as specified in section 3.5.4.4.1.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	Authenticate3(context.Context, *Authenticate3Request, ...dcerpc.CallOption) (*Authenticate3Response, error)

	// The DsrGetDcNameEx method is a predecessor to the DsrGetDcNameEx2 (section 3.5.4.3.1)
	// method. The method SHOULD<158> return information about a domain controller in the
	// specified domain and site. All parameters of this method have the same meanings as
	// the identically named parameters of the DsrGetDcNameEx2 method.
	GetDCNameEx(context.Context, *GetDCNameExRequest, ...dcerpc.CallOption) (*GetDCNameExResponse, error)

	// The DsrGetSiteName method SHOULD<164> return the site name for the specified computer
	// that receives this call.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it MUST return
	// a nonzero error code and SHOULD return the following error code.
	//
	//	+------------------------------+---------------------------------------------+
	//	|            RETURN            |                                             |
	//	|          VALUE/CODE          |                 DESCRIPTION                 |
	//	|                              |                                             |
	//	+------------------------------+---------------------------------------------+
	//	+------------------------------+---------------------------------------------+
	//	| 0x0000077F ERROR_NO_SITENAME | No site name is available for this machine. |
	//	+------------------------------+---------------------------------------------+
	//
	// If the computer has been configured with a SiteName, it MUST return the SiteName
	// immediately.
	//
	// If the DynamicSiteNameSetTime plus the DynamicSiteNameTimeout is less than the current
	// time (meaning that the DynamicSiteNameSetTime is older than allowed by DynamicSiteNameTimeout),
	// then:
	//
	// * The server MUST locate a domain controller ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_76a05049-3531-4abd-aec8-30e19954b4bd
	// ) in the domain. The server SHOULD <165> ( 0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_165
	// ) implement alternate means to locate DCs: for example, a static list in a file,
	// or the two methods detailed in [MS-ADTS] ( ../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a
	// ) section 6.3.6 ( ../ms-adts/3e9711af-9067-435e-93fb-09182053cef7 ). If the server
	// cannot locate a DC for the domain, then the server MUST return ERROR_NO_SUCH_DOMAIN.
	//
	// * The server then populates the SiteName parameter with the NETLOGON_SAM_LOGON_RESPONSE_EX
	// message ([MS-ADTS] section 6.3.1.9 ( ../ms-adts/8401a33f-34a8-40ca-bf03-c3484b66265f
	// ) ) by setting the SiteName parameter to NETLOGON_SAM_LOGON_RESPONSE_EX.ClientSiteName.
	// The server stores the discovered site name in *DynamicSiteName*.
	//
	// * The server sets the DynamicSiteNameSetTime to the current time.
	//
	// Otherwise, DynamicSiteName MUST be returned immediately as the SiteName parameter.
	//
	// If it is determined that the server that receives this call has no site name, the
	// server MUST return ERROR_NO_SITENAME.
	//
	// This method also returns errors based on Common Error Processing Rules B and C, specified
	// in section 3.
	GetSiteName(context.Context, *GetSiteNameRequest, ...dcerpc.CallOption) (*GetSiteNameResponse, error)

	// The NetrLogonGetDomainInfo method SHOULD<188> return information that describes the
	// current domain to which the specified client belongs.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetDomainInfo(context.Context, *GetDomainInfoRequest, ...dcerpc.CallOption) (*GetDomainInfoResponse, error)

	// The NetrServerPasswordSet2 method SHOULD<178> allow the client to set a new clear
	// text password for an account used by the domain controller for setting up the secure
	// channel from the client. A domain member SHOULD<179> use this function to periodically
	// change its machine account password. A PDC uses this function to periodically change
	// the trust password for all directly trusted domains.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	PasswordSet2(context.Context, *PasswordSet2Request, ...dcerpc.CallOption) (*PasswordSet2Response, error)

	// The NetrServerPasswordGet method SHOULD<184> allow a BDC to get a machine account
	// password from the DC with the PDC role in the domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	PasswordGet(context.Context, *PasswordGetRequest, ...dcerpc.CallOption) (*PasswordGetResponse, error)

	// The NetrLogonSendToSam method allows a BDC or RODC to forward user account password
	// changes to the PDC. It SHOULD<236> be used by the client to deliver an opaque buffer
	// to the SAM database ([MS-SAMR] section 3.1.1) on the server side.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	SendToSAM(context.Context, *SendToSAMRequest, ...dcerpc.CallOption) (*SendToSAMResponse, error)

	// The DsrAddressToSiteNamesW method SHOULD<167> translate a list of socket addresses
	// into their corresponding site names. For details about the mapping from socket address
	// to subnet/site name, see [MS-ADTS] sections 6.1.1.2.2.1 and 6.1.1.2.2.2.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | Not enough storage is available to process this command.                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | One of the parameters is invalid. This error value is returned if the value of   |
	//	|                                    | EntryCount passed to DsrAddressToSiteNamesW is zero.                             |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// This method returns errors based on Common Error Processing Rule A, specified in
	// section 3.
	AddressToSiteNamesW(context.Context, *AddressToSiteNamesWRequest, ...dcerpc.CallOption) (*AddressToSiteNamesWResponse, error)

	// The DsrGetDcNameEx2 method SHOULD<147> return information about a domain controller
	// (DC) in the specified domain and site. If the AccountName parameter is not NULL,
	// and a DC matching the requested capabilities (as defined in the Flags parameter)
	// responds during this method call, then that DC will have verified that the DC account
	// database contains an account for the AccountName specified. The server that receives
	// this call is not required to be a DC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetDCNameEx2(context.Context, *GetDCNameEx2Request, ...dcerpc.CallOption) (*GetDCNameEx2Response, error)

	// The NetrLogonGetTimeServiceParentDomain method SHOULD<241> return the name of the
	// parent domain of the current domain. The domain name returned by this method is suitable
	// for passing into the NetrLogonGetTrustRid method and NetrLogonComputeClientDigest
	// method.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server SHOULD<242> return ERROR_ACCESS_DENIED if the caller is not local.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	//
	// The domain name returned MUST be determined according to the following rules:
	//
	// * On a non-DC machine, the returned domain name is the name of the domain of which
	// the ServerName is a member. If ServerName is not valid, the server MUST return ERROR_INVALID_COMPUTERNAME.
	//
	// * On a DC that is at the root of the forest ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_fd104241-4fb3-457c-b2c4-e0c18bb20b62
	// ) , *rootDomainNamingContext* ( [MS-ADTS] ( ../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a
	// ) section 3.1.1.3.2.16 ( ../ms-adts/7ee04fa8-8027-4c7e-9c4a-4cd4c0198a70 ) ) is equal
	// to *defaultNamingContext* ([MS-ADTS] section 3.1.1.3.2.3 ( ../ms-adts/c1ad47fb-e4a1-4240-a749-b8f07ee0ae91
	// ) ). In this case, ERROR_NO_SUCH_DOMAIN is returned.
	//
	// * On a DC that is at the root of a domain tree ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_e2c071f1-5977-4749-868f-6c5a04929476
	// ) in the forest, the name of a trusted ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_5ee032d0-d944-4acb-bbb5-b1cfc7df6db6
	// ) domain that is also at the root of a domain tree in the forest is returned.
	//
	// On any other DC, the name of the domain that is directly the parent domain is returned.
	//
	// The domain's information MUST be retrieved from an implementation-specific directory.
	// Based on this retrieved information, if the domain has a DNS domain name, it MUST
	// be returned; otherwise, the NetBIOS domain name MUST be returned. This behavior is
	// functionally equivalent to locally invoking LsarQueryTrustedDomainInfo ([MS-LSAD]
	// section 3.1.4.7.2) for the domain, where TrustedDomainSid is the domain SID corresponding
	// to the appropriate domain name retrieved from a cached list, and InformationClass
	// is TrustedDomainInformationEx (policy handle is not needed locally), to return the
	// TrustedDomainInformationEx.Name string (DNS name) if it is present or TrustedDomainInformationEx.Flat
	// Name string (NetBIOS name) otherwise.
	//
	// The PdcSameSite returned MUST be determined according to the following rules:
	//
	// * On a non-DC machine, the value of PdcSameSite is set to TRUE.
	//
	// * On a DC machine, the server determines the PDC as specified in [MS-ADTS] section
	// 3.1.1.1.11 ( ../ms-adts/bf8afb5f-1ae0-45de-8445-8a717ea5124a ). Then the server determines
	// the sites of both the server and PDC as specified in [MS-ADTS] section 3.1.1.4.5.29
	// ( ../ms-adts/930d3ab8-7344-49f4-9615-a03d38279dff ). The server MUST compare the
	// PDC site with its own site, and if the two match, the PdcSameSite output parameter
	// MUST be set to TRUE; otherwise, it MUST be set to FALSE.
	GetTimeServiceParentDomain(context.Context, *GetTimeServiceParentDomainRequest, ...dcerpc.CallOption) (*GetTimeServiceParentDomainResponse, error)

	// The NetrEnumerateTrustedDomainsEx method SHOULD<226> return a list of trusted domains
	// from a specified server. This method extends NetrEnumerateTrustedDomains by returning
	// an array of domains in a more flexible DS_DOMAIN_TRUSTSW structure, as specified
	// in section 2.2.1.6.2, rather than the array of strings in DOMAIN_NAME_BUFFER structure,
	// as specified in section 2.2.1.6.1. The array is returned as part of the NETLOGON_TRUSTED_DOMAIN_ARRAY
	// structure, as specified in section 2.2.1.6.3.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000051F ERROR_NO_LOGON_SERVERS     | There are currently no logon servers available to service the logon request.     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FA ERROR_NO_TRUST_LSA_SECRET  | The workstation does not have a trust secret.                                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FB ERROR_NO_TRUST_SAM_ACCOUNT | The security database on the server does not have a computer account for this    |
	//	|                                       | workstation trust relationship.                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//
	// This method is a wrapper for DsrEnumerateDomainTrusts, which strips off the F flag
	// from the returned data for backward compatibility. For details, see section 3.5.4.7.1.
	EnumerateTrustedDomainsEx(context.Context, *EnumerateTrustedDomainsExRequest, ...dcerpc.CallOption) (*EnumerateTrustedDomainsExResponse, error)

	// The DsrAddressToSiteNamesExW method SHOULD<168> translate a list of socket addresses
	// into their corresponding site names and subnet names. For details about the mapping
	// from socket address to subnet/site name, see [MS-ADTS] sections 6.1.1.2.2.1 and 6.1.1.2.2.2.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | Not enough storage is available to process this command.                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | One of the parameters is invalid. This error value is returned if the value of   |
	//	|                                    | EntryCount passed to DsrAddressToSiteNamesExW is zero.                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// This method returns errors based on Common Error Processing Rule A, specified in
	// section 3.
	AddressToSiteNamesExW(context.Context, *AddressToSiteNamesExWRequest, ...dcerpc.CallOption) (*AddressToSiteNamesExWResponse, error)

	// The DsrGetDcSiteCoverageW method SHOULD<166> return a list of sites covered by a
	// domain controller. Site coverage is detailed in [MS-ADTS] section 6.1.1.2.2.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// This method returns errors based on Common Error Processing Rules A and B, specified
	// in section 3.
	GetDCSiteCoverageW(context.Context, *GetDCSiteCoverageWRequest, ...dcerpc.CallOption) (*GetDCSiteCoverageWResponse, error)

	// The NetrLogonSamLogonEx method SHOULD<199> provide an extension to NetrLogonSamLogon
	// that accepts an extra flags parameter and uses Secure RPC ([MS-RPCE] section 3.3.1.5.2)
	// instead of Netlogon authenticators. This method handles logon requests for the SAM
	// accounts and allows for generic pass-through authentication, as specified in section
	// 3.2.4.1.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	SAMLogonEx(context.Context, *SAMLogonExRequest, ...dcerpc.CallOption) (*SAMLogonExResponse, error)

	// The DsrEnumerateDomainTrusts method SHOULD<225> return an enumerated list of domain
	// trusts, filtered by a set of flags, from the specified server.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000051F ERROR_NO_LOGON_SERVERS     | There are currently no logon servers available to service the logon request.     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FA ERROR_NO_TRUST_LSA_SECRET  | The workstation does not have a trust secret.                                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FB ERROR_NO_TRUST_SAM_ACCOUNT | The security database on the server does not have a computer account for this    |
	//	|                                       | workstation trust relationship.                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	EnumerateDomainTrusts(context.Context, *EnumerateDomainTrustsRequest, ...dcerpc.CallOption) (*EnumerateDomainTrustsResponse, error)

	// The DsrDeregisterDnsHostRecords method SHOULD<169> delete all of the DNS SRV records
	// registered by a specified domain controller. For the list of SRV records that a domain
	// registers, see [MS-ADTS] section 6.3.2.3, "SRV Records Registered by DC".
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// the following error code.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED | The request is not supported. This error value is returned when                  |
	//	|                                | DsrDeregisterDnsHostRecords is called on a machine that is not a DC.             |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// The server determines if the client has sufficient privileges (as specified in section
	// 3.5.4.2) with the Access Request mask set to the NETLOGON_CONTROL_ACCESS mask.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	//
	// If the DnsHostName parameter is not null, the server MUST attempt to delete the DNS
	// SRV records registered for the DC DnsHostName, as specified in [MS-ADTS] section
	// 6.3.2.3.
	//
	// If the DomainGuid parameter is not null, then the server MUST attempt to delete the
	// domain-GUID-based SRV record.
	//
	// If the DsaGuid parameter is not null, then the server MUST attempt to delete the
	// domain CNAME record.
	//
	// The deletion of site-specific records MUST be attempted for every site in the enterprise
	// of the DC on which the method is executed.
	//
	// Unless stated otherwise, if the attempt to delete any records documented previously
	// fails for any reason, then the server MUST ignore the error and continue message
	// processing.
	//
	// It is possible that this method call will create a time-consuming run that generates
	// significant network traffic for enterprises with many sites.
	DeregisterDNSHostRecords(context.Context, *DeregisterDNSHostRecordsRequest, ...dcerpc.CallOption) (*DeregisterDNSHostRecordsResponse, error)

	// The NetrServerTrustPasswordsGet method SHOULD<186> return the encrypted current and
	// previous passwords for an account in the domain. This method is called by a client
	// to retrieve the current and previous account passwords from a domain controller.
	// The account name requested MUST be the name used when the secure channel was created,
	// unless the method is called on a PDC by a DC, in which case it can be any valid account
	// name.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// Message processing is identical to NetrServerGetTrustInfo, as specified in section
	// 3.5.4.7.6, except for the following:
	//
	// * The TrustInfo parameter is not present in NetrServerTrustPasswordsGet.
	TrustPasswordsGet(context.Context, *TrustPasswordsGetRequest, ...dcerpc.CallOption) (*TrustPasswordsGetResponse, error)

	// The DsrGetForestTrustInformation method SHOULD<229> retrieve the trust information
	// for the forest of the specified domain controller (DC), or for a forest trusted by
	// the forest of the specified DC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// the following error code.
	//
	//	+-----------------------------------+---------------------+
	//	|              RETURN               |                     |
	//	|            VALUE/CODE             |     DESCRIPTION     |
	//	|                                   |                     |
	//	+-----------------------------------+---------------------+
	//	+-----------------------------------+---------------------+
	//	| 0x00000001 ERROR_INVALID_FUNCTION | Incorrect function. |
	//	+-----------------------------------+---------------------+
	GetForestTrustInformation(context.Context, *GetForestTrustInformationRequest, ...dcerpc.CallOption) (*GetForestTrustInformationResponse, error)

	// The NetrGetForestTrustInformation method SHOULD<228> retrieve the trust information
	// for the forest of which the member's domain is itself a member.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetNetrForestTrustInformation(context.Context, *GetNetrForestTrustInformationRequest, ...dcerpc.CallOption) (*GetNetrForestTrustInformationResponse, error)

	// The NetrLogonSamLogonWithFlags method SHOULD<210> handle logon requests for the SAM
	// accounts.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// Message processing is identical to NetrLogonSamLogon, as specified in section 3.5.4.5.3,
	// except for the following:
	//
	// * NetrLogonSamLogonWithFlags contains an additional parameter named ExtraFlags.
	SAMLogonWithFlags(context.Context, *SAMLogonWithFlagsRequest, ...dcerpc.CallOption) (*SAMLogonWithFlagsResponse, error)

	// The NetrServerGetTrustInfo method SHOULD<230> return an information block from a
	// specified server. The information includes encrypted current and previous passwords
	// for a particular account and additional trust data. The account name requested MUST
	// be the name used when the secure channel was created, unless the method is called
	// on a PDC by a domain controller, in which case it can be any valid account name.
	//
	// Return Values: The method returns 0x00000000 to indicate success; otherwise, it returns
	// a nonzero error code.
	GetTrustInfo(context.Context, *GetTrustInfoRequest, ...dcerpc.CallOption) (*GetTrustInfoResponse, error)

	// The DsrUpdateReadOnlyServerDnsRecords method SHOULD<170> allow an RODC to send a
	// control command to a normal (writable) DC for site-specific and CName types of DNS
	// records update. For registration, site-specific records are for the site in which
	// RODC resides. For the types of DNS records, see [MS-ADTS] section 6.3.2.
	//
	// Return Values: The method returns 0x00000000 (NO_ERROR) on success; otherwise, it
	// returns a nonzero error code.
	UpdateReadOnlyServerDNSRecords(context.Context, *UpdateReadOnlyServerDNSRecordsRequest, ...dcerpc.CallOption) (*UpdateReadOnlyServerDNSRecordsResponse, error)

	// The NetrChainSetClientAttributes method SHOULD<198> be invoked by an RODC  on a
	// normal (writable) DC to update to a client's computer account object in Active Directory
	// when it receives either the NetrServerAuthenticate3 method or the NetrLogonGetDomainInfo
	// method with updates requested.
	//
	// Return Values: The method returns 0x00000000 on success.
	ChainSetClientAttributes(context.Context, *ChainSetClientAttributesRequest, ...dcerpc.CallOption) (*ChainSetClientAttributesResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

logon interface.

func NewLogonClient

func NewLogonClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (LogonClient, error)

type LogonHours

type LogonHours struct {
	UnitsPerWeek uint16 `idl:"name:UnitsPerWeek" json:"units_per_week"`
	LogonHours   []byte `idl:"name:LogonHours;size_is:(1260);length_is:(((UnitsPerWeek+7)/8))" json:"logon_hours"`
}

LogonHours structure represents NLPR_LOGON_HOURS RPC structure.

The NLPR_LOGON_HOURS structure contains the logon policy information that specifies when a user account is permitted to authenticate.

The fields in this structure have the same meanings as identically named fields of the SAMPR_LOGON_HOURS structure, as specified in [MS-SAMR] section 2.2.6.5.

func (*LogonHours) MarshalNDR

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

func (*LogonHours) UnmarshalNDR

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

type LogonIdentityInfo

type LogonIdentityInfo struct {
	// LogonDomainName: Contains the NetBIOS name of the domain of the account. The case
	// of the domain name MUST be preserved across all messages.
	LogonDomainName *dtyp.UnicodeString `idl:"name:LogonDomainName" json:"logon_domain_name"`
	// ParameterControl: A set of bit flags that contain information pertaining to the logon
	// validation processing. A flag is TRUE (or set) if its value is equal to 1. The value
	// is constructed from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| X | W | V | U | T | S | R | Q | 0 | 0 | 0 | P | 0 | 0 | 0 | O | 0 | N | M | L | K | J | I | H | G | F | E | D | C | B | A | 0 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Clear text passwords can be transmitted for this logon identity.                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Update the logon statistics for this account upon successful logon.              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Return the user parameter list for this account upon successful logon.           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Do not attempt to log this account on as a guest upon logon failure.             |
	//	+-------+----------------------------------------------------------------------------------+
	//	| E     | Allow this account to log on with the domain controller account.                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| F     | Return the password expiration date and time upon successful logon.              |
	//	+-------+----------------------------------------------------------------------------------+
	//	| G     | Send a client challenge upon logon request.                                      |
	//	+-------+----------------------------------------------------------------------------------+
	//	| H     | Attempt logon as a guest for this account only.                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	| I     | Return the profile path upon successful logon.                                   |
	//	+-------+----------------------------------------------------------------------------------+
	//	| J     | Attempt logon to the specified domain only.                                      |
	//	+-------+----------------------------------------------------------------------------------+
	//	| K     | Allow this account to log on with the computer account.                          |
	//	+-------+----------------------------------------------------------------------------------+
	//	| L     | Disable allowing fallback to guest account for this account.                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| M     | Force the logon of this account as a guest if the password is incorrect.         |
	//	+-------+----------------------------------------------------------------------------------+
	//	| N     | This account has supplied a clear text password.                                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| O     | Allow NTLMv1 authentication ([MS-NLMP]) when only NTLMv2 ([NTLM]) is allowed.    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| P     | Use sub-authentication ([MS-APDS] section 3.1.5.2.1).                            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| Q - X | Encode the sub-authentication package identifier. Bits Q–X are used to encode    |
	//	|       | the integer value of the sub-authentication package identifier (this is in       |
	//	|       | little-endian order).                                                            |
	//	+-------+----------------------------------------------------------------------------------+
	ParameterControl uint32 `idl:"name:ParameterControl" json:"parameter_control"`

	// UserName: Contains the name of the user.
	UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"`
	// Workstation: Contains the NetBIOS name of the workstation from which the user is
	// logging on.
	Workstation *dtyp.UnicodeString `idl:"name:Workstation" json:"workstation"`
	// contains filtered or unexported fields
}

LogonIdentityInfo structure represents NETLOGON_LOGON_IDENTITY_INFO RPC structure.

The NETLOGON_LOGON_IDENTITY_INFO structure defines a logon identity within a domain.

func (*LogonIdentityInfo) MarshalNDR

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

func (*LogonIdentityInfo) UnmarshalNDR

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

type LogonInfoClass

type LogonInfoClass uint16

LogonInfoClass type represents NETLOGON_LOGON_INFO_CLASS RPC enumeration.

The NETLOGON_LOGON_INFO_CLASS enumeration SHOULD<48> identify a particular type of logon information block.

var (
	// NetlogonInteractiveInformation: Logon information pertains to an interactive account
	// logon. Interactive account logon requires a user to physically input credentials
	// to the client that are then authenticated by the DC.
	LogonInfoClassInteractiveInformation LogonInfoClass = 1
	// NetlogonNetworkInformation: Logon information pertains to a network account logon.
	// Network logon is transparent to the user. The user has already input his or her credentials
	// during interactive logon and has been authenticated by the server or DC. These credentials
	// are used again to log the user onto another network resource without prompting the
	// user for his or her credentials.
	LogonInfoClassNetworkInformation LogonInfoClass = 2
	// NetlogonServiceInformation: Logon information pertains to a service account logon.
	// A service account acts as a non-privileged user on the local computer and presents
	// anonymous credentials to any remote server.
	LogonInfoClassServiceInformation LogonInfoClass = 3
	// NetlogonGenericInformation: Logon information pertains to a generic account logon.
	// This type of account logon is for generic pass-through authentication, as specified
	// in section 3.2.4.1, that enables servers to forward NTLM and Digest authentication
	// credentials to a DC for authorization.
	LogonInfoClassGenericInformation LogonInfoClass = 4
	// NetlogonInteractiveTransitiveInformation: Logon information pertains to a transitive
	// interactive account logon and can be passed through transitive trust links.
	LogonInfoClassInteractiveTransitiveInformation LogonInfoClass = 5
	// NetlogonNetworkTransitiveInformation: Logon information pertains to a transitive
	// network account logon and can be passed through transitive trust links.
	LogonInfoClassNetworkTransitiveInformation LogonInfoClass = 6
	// NetlogonServiceTransitiveInformation: Logon information pertains to a transitive
	// service account logon and can be passed through transitive trust links.
	LogonInfoClassServiceTransitiveInformation LogonInfoClass = 7
)

func (LogonInfoClass) String

func (o LogonInfoClass) String() string

type LogonSecureChannelClient

type LogonSecureChannelClient interface {
	LogonClient
	Encrypt(context.Context, []byte) ([]byte, error)
}

func NewSecureChannelClient

func NewSecureChannelClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (LogonSecureChannelClient, error)

type LogonServer

type LogonServer interface {
	UASLogon(context.Context, *UASLogonRequest) (*UASLogonResponse, error)

	UASLogoff(context.Context, *UASLogoffRequest) (*UASLogoffResponse, error)

	// The NetrLogonSamLogon method<213> is a predecessor to the NetrLogonSamLogonWithFlags
	// method (section 3.5.4.5.2). All parameters of this method have the same meanings
	// as the identically named parameters of the NetrLogonSamLogonWithFlags method.
	//
	// Message processing<214> is identical to NetrLogonSamLogonEx, as specified in section
	// 3.5.4.5.1, except for the following:
	//
	// * The method uses Netlogon authenticators ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_e72a2c02-84a2-4ce3-b66f-86f725642dc3
	// ) , so instead of checking for Secure RPC, the server MUST confirm the validity of
	// the Authenticator (section 3.1.4.5 ( da7acaa3-030b-481e-979b-f58f89389806 ) ) that
	// it received using the ComputerName for the secure channel ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_08ce423c-9f9c-48ed-afa8-8b64c04ecdca
	// ) to find the corresponding record in the ClientSessionInfo table. If the Authenticator
	// parameter is valid, the server MUST compute the ReturnAuthenticator parameter returned
	// (section 3.1.4.5). Otherwise, the server MUST return STATUS_ACCESS_DENIED.
	//
	// * The ExtraFlags parameter is not processed.
	//
	// This method SHOULD only be called by a machine that has established a secure channel
	// with the server.
	SAMLogon(context.Context, *SAMLogonRequest) (*SAMLogonResponse, error)

	// The NetrLogonSamLogoff method SHOULD<215> update the user lastLogoff attribute for
	// the SAM accounts.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	SAMLogoff(context.Context, *SAMLogoffRequest) (*SAMLogoffResponse, error)

	// The NetrServerReqChallenge method SHOULD<172> receive a client challenge and return
	// a server challenge (SC).
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	RequestChallenge(context.Context, *RequestChallengeRequest) (*RequestChallengeResponse, error)

	// The NetrServerAuthenticate method<177> is a predecessor to the NetrServerAuthenticate3
	// method (section 3.5.4.4.2). All parameters of this method have the same meanings
	// as the identically named parameters of the NetrServerAuthenticate3 method.
	//
	// Message processing is identical to NetrServerAuthenticate3, as specified in section
	// 3.5.4.4.2, except for the following:
	//
	// * The NegotiateFlags parameter is not present in NetrServerAuthenticate. Message
	// processing would be identical to an invocation of NetrServerAuthenticate3 with the
	// NegotiateFlags parameter set to 0.
	//
	// * The AccountRid parameter is not present in NetrServerAuthenticate.
	Authenticate(context.Context, *AuthenticateRequest) (*AuthenticateResponse, error)

	// The NetrServerPasswordSet method SHOULD<182> set a new one-way function (OWF) of
	// a password for an account used by the domain controller for setting up the secure
	// channel from the client.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	PasswordSet(context.Context, *PasswordSetRequest) (*PasswordSetResponse, error)

	// The NetrDatabaseDeltas method SHOULD<217> return a set of changes (or deltas) performed
	// to the SAM database, SAM built-in database, or LSA databases after a particular value
	// of the database serial number. It is used by BDCs to request database changes from
	// the PDC that are missing on the BDC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The synchronization that this method performs is not a full synchronization; rather,
	// a subset of database changes is returned. To perform a full synchronization, call
	// NetrDatabaseSync.
	//
	// The server that receives this call MUST do the following:
	//
	// * Verify that the client is a BDC.
	//
	// * Verify the client authenticator. The server MUST return status code STATUS_ACCESS_DENIED
	// if the verification fails.
	//
	// * Validate that DatabaseID is one of the allowed values, 0x00000000 through 0x00000002.
	// If the DatabaseID is not one of these values, the server MUST return the status code
	// STATUS_INVALID_LEVEL.
	//
	// * Given the BDC database serial number, obtain all database records that are missing
	// on the BDC and return the array of deltas, NETLOGON_DELTA_ENUM_ARRAY, for the missing
	// records. The number of elements returned is affected by the value of the PreferredMaximumLength
	// parameter. The server SHOULD <219> ( 0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_219
	// ) stop including elements in the returned array after the size of the returned data
	// equals or exceeds the value of the PreferredMaximumLength parameter. The server SHOULD
	// also limit the number of elements per local configuration to avoid large array allocations.
	//
	// * Compute and return the server authenticator.
	//
	// * The server MUST set the value of the DomainModifiedCount parameter to the database
	// serial number of the last delta returned in the array.
	//
	// * If not all missing records are returned, the server MUST return the status code
	// STATUS_MORE_ENTRIES.
	//
	// * The server maintains and updates a state that indicates the client progress in
	// the synchronization protocol, as defined in section 3.6 ( f28f9dc8-eeb2-4112-9eec-a466f639c761
	// ).
	DatabaseDeltas(context.Context, *DatabaseDeltasRequest) (*DatabaseDeltasResponse, error)

	// The NetrDatabaseSync method<223> is a predecessor to the NetrDatabaseSync2 method
	// (section 3.5.4.6.2). All parameters of this method have the same meanings as the
	// identically named parameters of the NetrDatabaseSync2 method.
	//
	// Receiving this method is identical to receiving NetrDatabaseSync2, as specified in
	// section 3.5.4.6.2, except that this call does not use the RestartState parameter.
	// NetrDatabaseSync does not support restarting the synchronization loop.
	DatabaseSync(context.Context, *DatabaseSyncRequest) (*DatabaseSyncResponse, error)

	AccountDeltas(context.Context, *AccountDeltasRequest) (*AccountDeltasResponse, error)

	AccountSync(context.Context, *AccountSyncRequest) (*AccountSyncResponse, error)

	// The NetrGetDCName method MAY<160> be used to retrieve the NetBIOS name of the PDC
	// for the specified domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it MUST return
	// a nonzero error code and SHOULD return the following error code.
	//
	//	+--------------------------------+---------------------------------+
	//	|             RETURN             |                                 |
	//	|           VALUE/CODE           |           DESCRIPTION           |
	//	|                                |                                 |
	//	+--------------------------------+---------------------------------+
	//	+--------------------------------+---------------------------------+
	//	| 0x00000035 ERROR_ BAD_ NETPATH | The network path was not found. |
	//	+--------------------------------+---------------------------------+
	GetNetrDCName(context.Context, *GetNetrDCNameRequest) (*GetNetrDCNameResponse, error)

	// The NetrLogonControl method is a predecessor to the NetrLogonControl2Ex method (section
	// 3.5.4.9.1). All parameters of this method SHOULD<260> have the same meanings as the
	// identically named parameters of the NetrLogonControl2Ex method.
	//
	// All restrictions on parameter values in the NetrLogonControl2Ex method (section 3.5.4.9.1)
	// apply. Extra restrictions are applied to the values of the FunctionCode<261> and
	// QueryLevel parameters as follows:
	//
	// * The value of QueryLevel parameter is restricted to 0x00000001. If 0x00000002 is
	// used, the error ERROR_NOT_SUPPORTED is returned; if any value larger than 0x00000002
	// is used, the error ERROR_INVALID_LEVEL is returned.
	//
	// Message processing is identical to NetrLogonControl2Ex (section 3.5.4.9.1), except
	// for the following:
	//
	// * The Data parameter of *NetrLogonControl2Ex* is set to NULL.
	Control(context.Context, *ControlRequest) (*ControlResponse, error)

	// The NetrGetAnyDCName method MAY<162> be used to retrieve the name of a domain controller
	// in the specified primary or directly trusted domain. Only DCs can return the name
	// of a DC in a specified directly trusted domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it MUST return
	// a nonzero error code and SHOULD return the following error code.
	//
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	|                   RETURN                   |                                                                                  |
	//	|                 VALUE/CODE                 |                                   DESCRIPTION                                    |
	//	|                                            |                                                                                  |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000712 ERROR_DOMAIN_TRUST_INCONSISTENT | The name or security ID (SID) of the domain specified is inconsistent with the   |
	//	|                                            | trust information for that domain.                                               |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	GetAnyDCName(context.Context, *GetAnyDCNameRequest) (*GetAnyDCNameResponse, error)

	// The NetrLogonControl2 method<259> is a predecessor to the NetrLogonControl2Ex method
	// (section 3.5.4.9.1) and is updated to have the same functionality as NetrLogonControl2Ex.
	// All parameters of this method have the same meanings as the identically named parameters
	// of the NetrLogonControl2Ex method.
	//
	// All restrictions on parameter values in the NetrLoginControl2Ex method (section 3.5.4.9.1)
	// apply. Extra restrictions are applied to the values of the QueryLevel parameter as
	// follows:
	//
	// * If the QueryLevel parameter is set to 0x00000004, the error ERROR_INVALID_LEVEL
	// is returned.
	//
	// Message processing is identical to NetrLogonControl2Ex (section 3.5.4.9.1).
	Control2(context.Context, *Control2Request) (*Control2Response, error)

	// The NetrServerAuthenticate2 method<176> is a predecessor to the NetrServerAuthenticate3
	// method, as specified in section 3.5.4.4.2. All parameters of this method have the
	// same meanings as the identically named parameters of the NetrServerAuthenticate3
	// method.
	//
	// Message processing is identical to NetrServerAuthenticate3, except for the following:
	//
	// The AccountRid parameter is not present in NetrServerAuthenticate2.
	Authenticate2(context.Context, *Authenticate2Request) (*Authenticate2Response, error)

	// The NetrDatabaseSync2 method SHOULD<220> return a set of all changes applied to the
	// specified database since its creation. It provides an interface for a BDC to fully
	// synchronize its databases to those of the PDC. Because returning all changes in one
	// call might be prohibitively expensive due to a large amount of data being returned,
	// this method supports retrieving portions of the database changes in a series of calls
	// using a continuation context until all changes are received. It is possible for the
	// series of calls to be terminated prematurely due to external events, such as system
	// restarts. For that reason, the method also supports restarting the series of calls
	// at a particular point specified by the caller. The caller MUST keep track of synchronization
	// progress during the series of calls as detailed in this section.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server that receives this call MUST do the following:
	//
	// * Verify that the client is a backup domain controller (BDC) ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_ce1138c6-7ab4-4c37-98b4-95599071c3c3
	// ) , the server is a PDC, and is enabled. If any of these conditions are false, the
	// server MUST return the status code STATUS_NOT_SUPPORTED.
	//
	// * Apply Common Error Processing Rule B, specified in section 3 ( 2d776bfc-e81f-4c8f-9da8-4c2920f65413
	// ).
	//
	// * Using the ComputerName for the secure channel ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_08ce423c-9f9c-48ed-afa8-8b64c04ecdca
	// ) to find the corresponding record in the ClientSessionInfo table, verify the Authenticator
	// parameter (section 3.1.4.5 ( da7acaa3-030b-481e-979b-f58f89389806 ) ). If the Authenticator
	// parameter is valid, compute the ReturnAuthenticator parameter returned (section 3.1.4.5).
	// Otherwise, the server MUST return STATUS_ACCESS_DENIED.
	//
	// * Validate that DatabaseID is one of the allowed values, 0x00000000 through 0x00000002.
	// If the DatabaseID is not one of these values, the server MUST return the status code
	// STATUS_INVALID_LEVEL.
	//
	// * Given the RestartState parameter and the SyncContext parameter, obtain database
	// records that are missing on the BDC and return the array of deltas, NETLOGON_DELTA_ENUM_ARRAY,
	// for the missing records. The number of elements returned is affected by the value
	// of the PreferredMaximumLength parameter. The server SHOULD <222> ( 0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_222
	// ) stop including elements in the returned array once the size of the returned data
	// equals or exceeds the value of the PreferredMaximumLength parameter. The server SHOULD
	// also limit the number of elements per local configuration to avoid large array allocations.
	//
	// * The server MUST update and return the SyncContext parameter (section 2.2.1.5.29
	// ( ffce9bbc-6ae5-4478-8f45-e82c3847aaa2 ) ) to continue the synchronization loop on
	// the next client request.
	//
	// * Compute and return the server authenticator.
	//
	// * Initialize *SynchronizationComplete* by setting it to FALSE, and when all the missing
	// records are sent set *SynchronizationComplete* to TRUE.
	//
	// * If *SynchronizationComplete* is FALSE, the server MUST return the status code STATUS_MORE_ENTRIES.
	DatabaseSync2(context.Context, *DatabaseSync2Request) (*DatabaseSync2Response, error)

	// The NetrDatabaseRedo method SHOULD<224> be used by a backup domain controller (BDC)
	// to request information about a single account from the PDC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The following CHANGELOG_ENTRY structure pointed to by the ChangeLogEntry parameter
	// carries information about the account object being queried.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| SerialNumber [0..3]                                                                                                           |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| SerialNumber [4..7]                                                                                                           |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ObjectRid                                                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Flags                                                         | DBIndex                       | DeltaType                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ObjectSid (optional, variable length) ...                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ObjectName (optional, variable length) ...                                                                                    |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	DatabaseRedo(context.Context, *DatabaseRedoRequest) (*DatabaseRedoResponse, error)

	// The NetrLogonControl2Ex method SHOULD<243> execute administrative actions that pertain
	// to the Netlogon server operation. It is used to query the status and control the
	// actions of the Netlogon server.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	Control2Ex(context.Context, *Control2ExRequest) (*Control2ExResponse, error)

	// The NetrEnumerateTrustedDomains method SHOULD<227> return a set of NetBIOS names
	// of trusted domains.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000051F ERROR_NO_LOGON_SERVERS     | There are currently no logon servers available to service the logon request.     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FA ERROR_NO_TRUST_LSA_SECRET  | The workstation does not have a trust secret.                                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FB ERROR_NO_TRUST_SAM_ACCOUNT | The security database on the server does not have a computer account for this    |
	//	|                                       | workstation trust relationship.                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server initializes the DomainNames field of the DOMAIN_NAME_BUFFER to the empty
	// string. The server calls the NetrEnumerateTrustedDomainsEx method and for each PDS_DOMAIN_TRUSTSW
	// element of the NETLOGON_TRUSTED_DOMAIN_ARRAY, appends the NetbiosDomainName field
	// to the DomainNames field of the DOMAIN_NAME_BUFFER (section 2.2.1.6.1). Then the
	// server terminates the DomainNames field with two null bytes.
	//
	// For details, see section 3.5.4.7.2, Receiving NetrEnumerateTrustedDomainsEx.
	EnumerateTrustedDomains(context.Context, *EnumerateTrustedDomainsRequest) (*EnumerateTrustedDomainsResponse, error)

	// The DsrGetDcName method is a predecessor to the DsrGetDcNameEx2 method (section 3.5.4.3.1).
	// The method SHOULD<159> return information about a domain controller in the specified
	// domain. All parameters of this method have the same meanings as the identically named
	// parameters of the DsrGetDcNameEx2 method, except for the SiteGuid parameter, detailed
	// as follows.
	GetDCName(context.Context, *GetDCNameRequest) (*GetDCNameResponse, error)

	// The NetrLogonGetCapabilities method is used by clients to confirm the server capabilities
	// after a secure channel has been established.<194>
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetCapabilities(context.Context, *GetCapabilitiesRequest) (*GetCapabilitiesResponse, error)

	// The NetrLogonSetServiceBits method SHOULD<237> be used to notify Netlogon whether
	// a domain controller is running specified services, as detailed in the following section.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server SHOULD<240> return ERROR_ACCESS_DENIED if the caller is not local.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	SetServiceBits(context.Context, *SetServiceBitsRequest) (*SetServiceBitsResponse, error)

	// The NetrLogonGetTrustRid method SHOULD<231> be used to obtain the RID of the account
	// whose password is used by domain controllers in the specified domain for establishing
	// the secure channel from the server receiving this call.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server SHOULD<232> return ERROR_ACCESS_DENIED if the caller is not local.
	//
	// If ServerName equals NULL and DomainName equals NULL, the server determines if the
	// client has sufficient privilege (as specified in section 3.5.4.2) with the Access
	// Request mask set to NETLOGON_FTINFO_ACCESS.
	//
	// Otherwise, the server determines if the client has sufficient privilege (as specified
	// in section 3.5.4.2) with the Access Request mask set to NETLOGON_SERVICE_ACCESS.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	//
	// If ServerName equals NULL, then the call MUST be made to the local machine. If the
	// DomainName is the same as the domain that the machine is joined to, the call MUST
	// succeed, and the server MUST return the AccountRid of the machine in the domain.
	// If the DomainName is a different domain, the server MUST return ERROR_NO_SUCH_DOMAIN.
	//
	// If both ServerName and DomainName are NULL, the server MUST return the RID for the
	// computer account of the caller. Otherwise, the RID for the account identified by
	// ServerName and DomainName MUST be returned.
	//
	// The server uses the server name passed in the ServerName parameter to look up the
	// domain for the request. If the name is not found, the server MUST return ERROR_INVALID_COMPUTERNAME.
	//
	// If the RID cannot be determined, the server SHOULD return ERROR_TRUSTED_RELATIONSHIP_FAILURE.
	GetTrustRID(context.Context, *GetTrustRIDRequest) (*GetTrustRIDResponse, error)

	// The NetrLogonComputeServerDigest method computes a cryptographic digest of a message
	// by using the MD5 message-digest algorithm, as specified in [RFC1321]. This method
	// SHOULD<233> be called by a client computer against a server and is used to compute
	// a message digest, as specified in this section. The client then calls the NetrLogonComputeClientDigest
	// method (as specified in section 3.4.5.6.3) and compare the digests to ensure that
	// the server that it communicates with knows the shared secret between the client machine
	// and the domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server uses the server name passed in the ServerName parameter to look up the
	// domain for the request. If the name is not found, the server MUST return ERROR_INVALID_COMPUTERNAME.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	ComputeServerDigest(context.Context, *ComputeServerDigestRequest) (*ComputeServerDigestResponse, error)

	// The NetrLogonComputeClientDigest method is used by a client to compute a cryptographic
	// digest of a message by using the MD5 message-digest algorithm, as specified in [RFC1321].
	// This method is called by a client to compute a message digest, as specified in this
	// section. The client SHOULD<235> use this digest to compare against one that is returned
	// by a call to NetrLogonComputeServerDigest. This comparison allows the client to ensure
	// that the server that it communicates with knows the shared secret between the client
	// machine and the domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	ComputeClientDigest(context.Context, *ComputeClientDigestRequest) (*ComputeClientDigestResponse, error)

	// The NetrServerAuthenticate3 method SHOULD<173> mutually authenticate the client and
	// the server and establish the session key to be used for the secure channel message
	// protection between the client and the server. It is called after the NetrServerReqChallenge
	// method, as specified in section 3.5.4.4.1.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	Authenticate3(context.Context, *Authenticate3Request) (*Authenticate3Response, error)

	// The DsrGetDcNameEx method is a predecessor to the DsrGetDcNameEx2 (section 3.5.4.3.1)
	// method. The method SHOULD<158> return information about a domain controller in the
	// specified domain and site. All parameters of this method have the same meanings as
	// the identically named parameters of the DsrGetDcNameEx2 method.
	GetDCNameEx(context.Context, *GetDCNameExRequest) (*GetDCNameExResponse, error)

	// The DsrGetSiteName method SHOULD<164> return the site name for the specified computer
	// that receives this call.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it MUST return
	// a nonzero error code and SHOULD return the following error code.
	//
	//	+------------------------------+---------------------------------------------+
	//	|            RETURN            |                                             |
	//	|          VALUE/CODE          |                 DESCRIPTION                 |
	//	|                              |                                             |
	//	+------------------------------+---------------------------------------------+
	//	+------------------------------+---------------------------------------------+
	//	| 0x0000077F ERROR_NO_SITENAME | No site name is available for this machine. |
	//	+------------------------------+---------------------------------------------+
	//
	// If the computer has been configured with a SiteName, it MUST return the SiteName
	// immediately.
	//
	// If the DynamicSiteNameSetTime plus the DynamicSiteNameTimeout is less than the current
	// time (meaning that the DynamicSiteNameSetTime is older than allowed by DynamicSiteNameTimeout),
	// then:
	//
	// * The server MUST locate a domain controller ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_76a05049-3531-4abd-aec8-30e19954b4bd
	// ) in the domain. The server SHOULD <165> ( 0c858a52-732a-43ec-85dd-e44b357c1898#Appendix_A_165
	// ) implement alternate means to locate DCs: for example, a static list in a file,
	// or the two methods detailed in [MS-ADTS] ( ../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a
	// ) section 6.3.6 ( ../ms-adts/3e9711af-9067-435e-93fb-09182053cef7 ). If the server
	// cannot locate a DC for the domain, then the server MUST return ERROR_NO_SUCH_DOMAIN.
	//
	// * The server then populates the SiteName parameter with the NETLOGON_SAM_LOGON_RESPONSE_EX
	// message ([MS-ADTS] section 6.3.1.9 ( ../ms-adts/8401a33f-34a8-40ca-bf03-c3484b66265f
	// ) ) by setting the SiteName parameter to NETLOGON_SAM_LOGON_RESPONSE_EX.ClientSiteName.
	// The server stores the discovered site name in *DynamicSiteName*.
	//
	// * The server sets the DynamicSiteNameSetTime to the current time.
	//
	// Otherwise, DynamicSiteName MUST be returned immediately as the SiteName parameter.
	//
	// If it is determined that the server that receives this call has no site name, the
	// server MUST return ERROR_NO_SITENAME.
	//
	// This method also returns errors based on Common Error Processing Rules B and C, specified
	// in section 3.
	GetSiteName(context.Context, *GetSiteNameRequest) (*GetSiteNameResponse, error)

	// The NetrLogonGetDomainInfo method SHOULD<188> return information that describes the
	// current domain to which the specified client belongs.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetDomainInfo(context.Context, *GetDomainInfoRequest) (*GetDomainInfoResponse, error)

	// The NetrServerPasswordSet2 method SHOULD<178> allow the client to set a new clear
	// text password for an account used by the domain controller for setting up the secure
	// channel from the client. A domain member SHOULD<179> use this function to periodically
	// change its machine account password. A PDC uses this function to periodically change
	// the trust password for all directly trusted domains.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	PasswordSet2(context.Context, *PasswordSet2Request) (*PasswordSet2Response, error)

	// The NetrServerPasswordGet method SHOULD<184> allow a BDC to get a machine account
	// password from the DC with the PDC role in the domain.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	PasswordGet(context.Context, *PasswordGetRequest) (*PasswordGetResponse, error)

	// The NetrLogonSendToSam method allows a BDC or RODC to forward user account password
	// changes to the PDC. It SHOULD<236> be used by the client to deliver an opaque buffer
	// to the SAM database ([MS-SAMR] section 3.1.1) on the server side.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	SendToSAM(context.Context, *SendToSAMRequest) (*SendToSAMResponse, error)

	// The DsrAddressToSiteNamesW method SHOULD<167> translate a list of socket addresses
	// into their corresponding site names. For details about the mapping from socket address
	// to subnet/site name, see [MS-ADTS] sections 6.1.1.2.2.1 and 6.1.1.2.2.2.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | Not enough storage is available to process this command.                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | One of the parameters is invalid. This error value is returned if the value of   |
	//	|                                    | EntryCount passed to DsrAddressToSiteNamesW is zero.                             |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// This method returns errors based on Common Error Processing Rule A, specified in
	// section 3.
	AddressToSiteNamesW(context.Context, *AddressToSiteNamesWRequest) (*AddressToSiteNamesWResponse, error)

	// The DsrGetDcNameEx2 method SHOULD<147> return information about a domain controller
	// (DC) in the specified domain and site. If the AccountName parameter is not NULL,
	// and a DC matching the requested capabilities (as defined in the Flags parameter)
	// responds during this method call, then that DC will have verified that the DC account
	// database contains an account for the AccountName specified. The server that receives
	// this call is not required to be a DC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetDCNameEx2(context.Context, *GetDCNameEx2Request) (*GetDCNameEx2Response, error)

	// The NetrLogonGetTimeServiceParentDomain method SHOULD<241> return the name of the
	// parent domain of the current domain. The domain name returned by this method is suitable
	// for passing into the NetrLogonGetTrustRid method and NetrLogonComputeClientDigest
	// method.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// The server SHOULD<242> return ERROR_ACCESS_DENIED if the caller is not local.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	//
	// The domain name returned MUST be determined according to the following rules:
	//
	// * On a non-DC machine, the returned domain name is the name of the domain of which
	// the ServerName is a member. If ServerName is not valid, the server MUST return ERROR_INVALID_COMPUTERNAME.
	//
	// * On a DC that is at the root of the forest ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_fd104241-4fb3-457c-b2c4-e0c18bb20b62
	// ) , *rootDomainNamingContext* ( [MS-ADTS] ( ../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a
	// ) section 3.1.1.3.2.16 ( ../ms-adts/7ee04fa8-8027-4c7e-9c4a-4cd4c0198a70 ) ) is equal
	// to *defaultNamingContext* ([MS-ADTS] section 3.1.1.3.2.3 ( ../ms-adts/c1ad47fb-e4a1-4240-a749-b8f07ee0ae91
	// ) ). In this case, ERROR_NO_SUCH_DOMAIN is returned.
	//
	// * On a DC that is at the root of a domain tree ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_e2c071f1-5977-4749-868f-6c5a04929476
	// ) in the forest, the name of a trusted ( b5e7d25a-40b2-41c8-9611-98f53358af66#gt_5ee032d0-d944-4acb-bbb5-b1cfc7df6db6
	// ) domain that is also at the root of a domain tree in the forest is returned.
	//
	// On any other DC, the name of the domain that is directly the parent domain is returned.
	//
	// The domain's information MUST be retrieved from an implementation-specific directory.
	// Based on this retrieved information, if the domain has a DNS domain name, it MUST
	// be returned; otherwise, the NetBIOS domain name MUST be returned. This behavior is
	// functionally equivalent to locally invoking LsarQueryTrustedDomainInfo ([MS-LSAD]
	// section 3.1.4.7.2) for the domain, where TrustedDomainSid is the domain SID corresponding
	// to the appropriate domain name retrieved from a cached list, and InformationClass
	// is TrustedDomainInformationEx (policy handle is not needed locally), to return the
	// TrustedDomainInformationEx.Name string (DNS name) if it is present or TrustedDomainInformationEx.Flat
	// Name string (NetBIOS name) otherwise.
	//
	// The PdcSameSite returned MUST be determined according to the following rules:
	//
	// * On a non-DC machine, the value of PdcSameSite is set to TRUE.
	//
	// * On a DC machine, the server determines the PDC as specified in [MS-ADTS] section
	// 3.1.1.1.11 ( ../ms-adts/bf8afb5f-1ae0-45de-8445-8a717ea5124a ). Then the server determines
	// the sites of both the server and PDC as specified in [MS-ADTS] section 3.1.1.4.5.29
	// ( ../ms-adts/930d3ab8-7344-49f4-9615-a03d38279dff ). The server MUST compare the
	// PDC site with its own site, and if the two match, the PdcSameSite output parameter
	// MUST be set to TRUE; otherwise, it MUST be set to FALSE.
	GetTimeServiceParentDomain(context.Context, *GetTimeServiceParentDomainRequest) (*GetTimeServiceParentDomainResponse, error)

	// The NetrEnumerateTrustedDomainsEx method SHOULD<226> return a list of trusted domains
	// from a specified server. This method extends NetrEnumerateTrustedDomains by returning
	// an array of domains in a more flexible DS_DOMAIN_TRUSTSW structure, as specified
	// in section 2.2.1.6.2, rather than the array of strings in DOMAIN_NAME_BUFFER structure,
	// as specified in section 2.2.1.6.1. The array is returned as part of the NETLOGON_TRUSTED_DOMAIN_ARRAY
	// structure, as specified in section 2.2.1.6.3.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000051F ERROR_NO_LOGON_SERVERS     | There are currently no logon servers available to service the logon request.     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FA ERROR_NO_TRUST_LSA_SECRET  | The workstation does not have a trust secret.                                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FB ERROR_NO_TRUST_SAM_ACCOUNT | The security database on the server does not have a computer account for this    |
	//	|                                       | workstation trust relationship.                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//
	// This method is a wrapper for DsrEnumerateDomainTrusts, which strips off the F flag
	// from the returned data for backward compatibility. For details, see section 3.5.4.7.1.
	EnumerateTrustedDomainsEx(context.Context, *EnumerateTrustedDomainsExRequest) (*EnumerateTrustedDomainsExResponse, error)

	// The DsrAddressToSiteNamesExW method SHOULD<168> translate a list of socket addresses
	// into their corresponding site names and subnet names. For details about the mapping
	// from socket address to subnet/site name, see [MS-ADTS] sections 6.1.1.2.2.1 and 6.1.1.2.2.2.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | Not enough storage is available to process this command.                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | One of the parameters is invalid. This error value is returned if the value of   |
	//	|                                    | EntryCount passed to DsrAddressToSiteNamesExW is zero.                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// This method returns errors based on Common Error Processing Rule A, specified in
	// section 3.
	AddressToSiteNamesExW(context.Context, *AddressToSiteNamesExWRequest) (*AddressToSiteNamesExWResponse, error)

	// The DsrGetDcSiteCoverageW method SHOULD<166> return a list of sites covered by a
	// domain controller. Site coverage is detailed in [MS-ADTS] section 6.1.1.2.2.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// This method returns errors based on Common Error Processing Rules A and B, specified
	// in section 3.
	GetDCSiteCoverageW(context.Context, *GetDCSiteCoverageWRequest) (*GetDCSiteCoverageWResponse, error)

	// The NetrLogonSamLogonEx method SHOULD<199> provide an extension to NetrLogonSamLogon
	// that accepts an extra flags parameter and uses Secure RPC ([MS-RPCE] section 3.3.1.5.2)
	// instead of Netlogon authenticators. This method handles logon requests for the SAM
	// accounts and allows for generic pass-through authentication, as specified in section
	// 3.2.4.1.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	SAMLogonEx(context.Context, *SAMLogonExRequest) (*SAMLogonExResponse, error)

	// The DsrEnumerateDomainTrusts method SHOULD<225> return an enumerated list of domain
	// trusts, filtered by a set of flags, from the specified server.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// one of the following error codes.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000051F ERROR_NO_LOGON_SERVERS     | There are currently no logon servers available to service the logon request.     |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FA ERROR_NO_TRUST_LSA_SECRET  | The workstation does not have a trust secret.                                    |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006FB ERROR_NO_TRUST_SAM_ACCOUNT | The security database on the server does not have a computer account for this    |
	//	|                                       | workstation trust relationship.                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	EnumerateDomainTrusts(context.Context, *EnumerateDomainTrustsRequest) (*EnumerateDomainTrustsResponse, error)

	// The DsrDeregisterDnsHostRecords method SHOULD<169> delete all of the DNS SRV records
	// registered by a specified domain controller. For the list of SRV records that a domain
	// registers, see [MS-ADTS] section 6.3.2.3, "SRV Records Registered by DC".
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// the following error code.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED | The request is not supported. This error value is returned when                  |
	//	|                                | DsrDeregisterDnsHostRecords is called on a machine that is not a DC.             |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// The server determines if the client has sufficient privileges (as specified in section
	// 3.5.4.2) with the Access Request mask set to the NETLOGON_CONTROL_ACCESS mask.
	//
	// If the client does not have sufficient privilege, the server MUST return ERROR_ACCESS_DENIED.
	//
	// If the DnsHostName parameter is not null, the server MUST attempt to delete the DNS
	// SRV records registered for the DC DnsHostName, as specified in [MS-ADTS] section
	// 6.3.2.3.
	//
	// If the DomainGuid parameter is not null, then the server MUST attempt to delete the
	// domain-GUID-based SRV record.
	//
	// If the DsaGuid parameter is not null, then the server MUST attempt to delete the
	// domain CNAME record.
	//
	// The deletion of site-specific records MUST be attempted for every site in the enterprise
	// of the DC on which the method is executed.
	//
	// Unless stated otherwise, if the attempt to delete any records documented previously
	// fails for any reason, then the server MUST ignore the error and continue message
	// processing.
	//
	// It is possible that this method call will create a time-consuming run that generates
	// significant network traffic for enterprises with many sites.
	DeregisterDNSHostRecords(context.Context, *DeregisterDNSHostRecordsRequest) (*DeregisterDNSHostRecordsResponse, error)

	// The NetrServerTrustPasswordsGet method SHOULD<186> return the encrypted current and
	// previous passwords for an account in the domain. This method is called by a client
	// to retrieve the current and previous account passwords from a domain controller.
	// The account name requested MUST be the name used when the secure channel was created,
	// unless the method is called on a PDC by a DC, in which case it can be any valid account
	// name.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// Message processing is identical to NetrServerGetTrustInfo, as specified in section
	// 3.5.4.7.6, except for the following:
	//
	// * The TrustInfo parameter is not present in NetrServerTrustPasswordsGet.
	TrustPasswordsGet(context.Context, *TrustPasswordsGetRequest) (*TrustPasswordsGetResponse, error)

	// The DsrGetForestTrustInformation method SHOULD<229> retrieve the trust information
	// for the forest of the specified domain controller (DC), or for a forest trusted by
	// the forest of the specified DC.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it SHOULD return
	// the following error code.
	//
	//	+-----------------------------------+---------------------+
	//	|              RETURN               |                     |
	//	|            VALUE/CODE             |     DESCRIPTION     |
	//	|                                   |                     |
	//	+-----------------------------------+---------------------+
	//	+-----------------------------------+---------------------+
	//	| 0x00000001 ERROR_INVALID_FUNCTION | Incorrect function. |
	//	+-----------------------------------+---------------------+
	GetForestTrustInformation(context.Context, *GetForestTrustInformationRequest) (*GetForestTrustInformationResponse, error)

	// The NetrGetForestTrustInformation method SHOULD<228> retrieve the trust information
	// for the forest of which the member's domain is itself a member.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	GetNetrForestTrustInformation(context.Context, *GetNetrForestTrustInformationRequest) (*GetNetrForestTrustInformationResponse, error)

	// The NetrLogonSamLogonWithFlags method SHOULD<210> handle logon requests for the SAM
	// accounts.
	//
	// Return Values: The method returns 0x00000000 on success; otherwise, it returns a
	// nonzero error code.
	//
	// Message processing is identical to NetrLogonSamLogon, as specified in section 3.5.4.5.3,
	// except for the following:
	//
	// * NetrLogonSamLogonWithFlags contains an additional parameter named ExtraFlags.
	SAMLogonWithFlags(context.Context, *SAMLogonWithFlagsRequest) (*SAMLogonWithFlagsResponse, error)

	// The NetrServerGetTrustInfo method SHOULD<230> return an information block from a
	// specified server. The information includes encrypted current and previous passwords
	// for a particular account and additional trust data. The account name requested MUST
	// be the name used when the secure channel was created, unless the method is called
	// on a PDC by a domain controller, in which case it can be any valid account name.
	//
	// Return Values: The method returns 0x00000000 to indicate success; otherwise, it returns
	// a nonzero error code.
	GetTrustInfo(context.Context, *GetTrustInfoRequest) (*GetTrustInfoResponse, error)

	// The DsrUpdateReadOnlyServerDnsRecords method SHOULD<170> allow an RODC to send a
	// control command to a normal (writable) DC for site-specific and CName types of DNS
	// records update. For registration, site-specific records are for the site in which
	// RODC resides. For the types of DNS records, see [MS-ADTS] section 6.3.2.
	//
	// Return Values: The method returns 0x00000000 (NO_ERROR) on success; otherwise, it
	// returns a nonzero error code.
	UpdateReadOnlyServerDNSRecords(context.Context, *UpdateReadOnlyServerDNSRecordsRequest) (*UpdateReadOnlyServerDNSRecordsResponse, error)

	// The NetrChainSetClientAttributes method SHOULD<198> be invoked by an RODC  on a
	// normal (writable) DC to update to a client's computer account object in Active Directory
	// when it receives either the NetrServerAuthenticate3 method or the NetrLogonGetDomainInfo
	// method with updates requested.
	//
	// Return Values: The method returns 0x00000000 on success.
	ChainSetClientAttributes(context.Context, *ChainSetClientAttributesRequest) (*ChainSetClientAttributesResponse, error)
}

logon server interface.

type ModifiedCount

type ModifiedCount struct {
	// ModifiedCount: An OLD_LARGE_INTEGER structure, as specified in [MS-SAMR] section
	// 2.2.2.2, that contains the number of modifications made to the database since its
	// creation. This value is the database serial number.
	ModifiedCount *OldLargeInteger `idl:"name:ModifiedCount" json:"modified_count"`
}

ModifiedCount structure represents NLPR_MODIFIED_COUNT RPC structure.

The NLPR_MODIFIED_COUNT structure specifies a count for the number of times an account's database has been modified.

func (*ModifiedCount) MarshalNDR

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

func (*ModifiedCount) UnmarshalNDR

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

type NTOWFPassword

type NTOWFPassword struct {
	// data: An array of CYPHER_BLOCK structures (section 2.2.1.1.1) that contains the NTOWFv1
	// of a password. NTOWFv1 is specified in NTLM v1 Authentication in [MS-NLMP] section
	// 3.3.1.
	Data []*CypherBlock `idl:"name:data" json:"data"`
}

NTOWFPassword structure represents NT_OWF_PASSWORD RPC structure.

The NT_OWF_PASSWORD structure SHOULD<7> define a one-way function (OWF) of a domain password. The NT_OWF_PASSWORD structure SHOULD be encrypted, as specified by each method that uses this structure. When this structure is encrypted, Netlogon methods uses the DES encryption algorithm in ECB mode, as specified in [MS-SAMR] section 2.2.11.1.1 Encrypting an NT Hash or LM Hash Value with a specified key. The session key is the specified 16-byte key used to derive its keys using the 16-byte value process, as specified in [MS-SAMR] section 2.2.11.1.4. For specific encryption information, see the individual methods, such as NetrServerTrustPasswordsGet (section 3.5.4.4.8) and NetrServerGetTrustInfo (section 3.5.4.7.6).

func (*NTOWFPassword) MarshalNDR

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

func (*NTOWFPassword) UnmarshalNDR

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

type NetworkInfo

type NetworkInfo struct {
	// Identity: NETLOGON_LOGON_IDENTITY_INFO structure, as specified in section 2.2.1.4.15,
	// that contains information about the logon identity. The Identity.LogonDomainName
	// field MUST match the DomainName field of the authenticate message received by the
	// client. The authenticate message is defined in [MS-NLMP] section 2.2.1.3.
	Identity *LogonIdentityInfo `idl:"name:Identity" json:"identity"`
	// LmChallenge: LM_CHALLENGE structure, as specified in section 2.2.1.4.1, that contains
	// the network authentication challenge. For details about challenges, see [MS-NLMP].
	LMChallenge *LMChallenge `idl:"name:LmChallenge" json:"lm_challenge"`
	// NtChallengeResponse: String that contains the NT response (see [MS-NLMP]) to the
	// network authentication challenge.
	NTChallengeResponse *String `idl:"name:NtChallengeResponse" json:"nt_challenge_response"`
	// LmChallengeResponse: String that contains the LAN Manager response (see [MS-NLMP])
	// to the network authentication challenge.
	LMChallengeResponse *String `idl:"name:LmChallengeResponse" json:"lm_challenge_response"`
}

NetworkInfo structure represents NETLOGON_NETWORK_INFO RPC structure.

The NETLOGON_NETWORK_INFO structure defines information that describes a network account logon.

func (*NetworkInfo) MarshalNDR

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

func (*NetworkInfo) UnmarshalNDR

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

type OSVersionInfoV1

type OSVersionInfoV1 struct {
	// dwOSVersionInfoSize: The size, in bytes, of this data structure. Set this member
	// to sizeof(NL_OSVERSIONINFO_V1).
	OSVersionInfoSize uint32 `idl:"name:dwOSVersionInfoSize" json:"os_version_info_size"`
	// dwMajorVersion: The implementation-specific major version number of the operating
	// system.<36>
	MajorVersion uint32 `idl:"name:dwMajorVersion" json:"major_version"`
	// dwMinorVersion: The implementation-specific minor version number of the operating
	// system.<37>
	MinorVersion uint32 `idl:"name:dwMinorVersion" json:"minor_version"`
	// dwBuildNumber: The build number of the operating system.
	BuildNumber uint32 `idl:"name:dwBuildNumber" json:"build_number"`
	// dwPlatformId: The operating system platform.<38>
	PlatformID uint32 `idl:"name:dwPlatformId" json:"platform_id"`
	// szCSDVersion: A null-terminated string, such as "Service Pack 3", that indicates
	// the latest service pack installed on the system. If no service pack has been installed,
	// the string is empty.
	CSDVersion []uint16 `idl:"name:szCSDVersion" json:"csd_version"`
	// wServicePackMajor: The major version number of the latest service pack installed
	// on the system. For example, for "Service Pack 3", the major version number is 3.
	// If no service pack has been installed, the value is 0.
	ServicePackMajor uint16 `idl:"name:wServicePackMajor" json:"service_pack_major"`
	// wServicePackMinor: The minor version number of the latest service pack installed
	// on the system. For example, for "Service Pack 3", the minor version number is 0.
	ServicePackMinor uint16 `idl:"name:wServicePackMinor" json:"service_pack_minor"`
	SuiteMask        uint16 `idl:"name:wSuiteMask" json:"suite_mask"`
	// wProductType: Any additional information about the system. This member can be one
	// of the following values.
	//
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	|                                     |                                                                                  |
	//	|                VALUE                |                                     MEANING                                      |
	//	|                                     |                                                                                  |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| VER_NT_DOMAIN_CONTROLLER 0x00000002 | The system is a DC.                                                              |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| VER_NT_SERVER 0x00000003            | The system is a server. Note that a server that is also a DC is reported as      |
	//	|                                     | VER_NT_DOMAIN_CONTROLLER, not VER_NT_SERVER.                                     |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| VER_NT_WORKSTATION 0x00000001       | Identifies the operating system.<39>                                             |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	ProductType uint8 `idl:"name:wProductType" json:"product_type"`
	// contains filtered or unexported fields
}

OSVersionInfoV1 structure represents NL_OSVERSIONINFO_V1 RPC structure.

The NL_OSVERSIONINFO_V1 structure specifies the values used to update the operatingSystemVersion and operatingSystem attributes on the client's computer account object in Active Directory on a normal (writable) DC.<35>

func (*OSVersionInfoV1) MarshalNDR

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

func (*OSVersionInfoV1) UnmarshalNDR

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

type OldLargeInteger

type OldLargeInteger struct {
	LowPart  uint32 `idl:"name:LowPart" json:"low_part"`
	HighPart int32  `idl:"name:HighPart" json:"high_part"`
}

OldLargeInteger structure represents OLD_LARGE_INTEGER RPC structure.

func (*OldLargeInteger) MarshalNDR

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

func (*OldLargeInteger) UnmarshalNDR

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

type OneDomainInfo

type OneDomainInfo struct {
	// DomainName: A null-terminated Unicode string that contains the NetBIOS name of the
	// domain being described. This field MUST NOT be an empty string.
	DomainName *dtyp.UnicodeString `idl:"name:DomainName" json:"domain_name"`
	// DnsDomainName: A null-terminated Unicode string that contains the DNS domain name
	// for this domain. This field MUST NOT be an empty string.
	DNSDomainName *dtyp.UnicodeString `idl:"name:DnsDomainName" json:"dns_domain_name"`
	// DnsForestName: A null-terminated Unicode string that contains the DNS forest name
	// for this domain.
	DNSForestName *dtyp.UnicodeString `idl:"name:DnsForestName" json:"dns_forest_name"`
	// DomainGuid: A globally unique 128-bit identifier for this domain.
	DomainGUID *dtyp.GUID `idl:"name:DomainGuid" json:"domain_guid"`
	// DomainSid: The security identifier (SID), as specified in [MS-DTYP] section 2.4.2.3
	// for this domain.
	DomainSID *dtyp.SID `idl:"name:DomainSid" json:"domain_sid"`
	// TrustExtension: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section
	// 2.3.10, which does not point to a Unicode string, but in fact points to a buffer
	// of size 16, in bytes, in the following format.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Flags                                                                                                                         |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ParentIndex                                                                                                                   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| TrustType                                                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| TrustAttributes                                                                                                               |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	TrustExtension *dtyp.UnicodeString `idl:"name:TrustExtension" json:"trust_extension"`
	// contains filtered or unexported fields
}

OneDomainInfo structure represents NETLOGON_ONE_DOMAIN_INFO RPC structure.

The NETLOGON_ONE_DOMAIN_INFO structure SHOULD<27> define information about a single domain. It is in turn contained in the NETLOGON_DOMAIN_INFO structure, as specified in section 2.2.1.3.11. The NETLOGON_DOMAIN_INFO structure describes domain relationships and is generated as output from the NetrLogonGetDomainInfo method, as specified in section 3.5.4.4.9.

func (*OneDomainInfo) MarshalNDR

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

func (*OneDomainInfo) UnmarshalNDR

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

type OutChainSetClientAttributes

type OutChainSetClientAttributes struct {
	// Types that are assignable to Value
	//
	// *OutChainSetClientAttributes_V1
	Value is_OutChainSetClientAttributes `json:"value"`
}

OutChainSetClientAttributes structure represents NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES RPC union.

The NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES union defines versioning. Currently, only version 1 is supported.

func (*OutChainSetClientAttributes) GetValue

func (o *OutChainSetClientAttributes) GetValue() any

func (*OutChainSetClientAttributes) MarshalUnionNDR

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

func (*OutChainSetClientAttributes) NDRSwitchValue

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

func (*OutChainSetClientAttributes) UnmarshalUnionNDR

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

type OutChainSetClientAttributesV1

type OutChainSetClientAttributesV1 struct {
	// HubName: The NetBIOS name of the writable domain controller receiving NetrChainSetClientAttributes
	// (section 3.5.4.4.11). The read-only domain controller (RODC) that invoked the method
	// NetrChainSetClientAttributes SHOULD<45> attempt to replicate the computer account
	// object from HubName to itself, ignoring errors.
	HubName string `idl:"name:HubName;string;pointer:unique" json:"hub_name"`
	// OldDnsHostName: The client's DNS host name, if any, from the dNSHostName attribute
	// ([MS-ADA1] section 2.185) on the client's computer account object in Active Directory
	// on the writable domain controller. If there was an update to the dNSHostName attribute
	// by the writable domain controller as a result of receiving NetrChainSetClientAttributes,
	// this value will hold the previous value of that attribute.
	OldDNSHostName string `idl:"name:OldDnsHostName;string;pointer:unique" json:"old_dns_host_name"`
	// SupportedEncTypes: The supported encryption algorithms received from the NetrLogonGetDomainInfo
	// request, in the SupportedEncTypes field in the NETLOGON_DOMAIN_INFO (section 2.2.1.3.11)
	// structure.<46>
	SupportedEncTypes uint32 `idl:"name:SupportedEncTypes;pointer:unique" json:"supported_enc_types"`
}

OutChainSetClientAttributesV1 structure represents NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 RPC structure.

The NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 structure SHOULD<44> specify the values returned from the normal (writable) DC.

func (*OutChainSetClientAttributesV1) MarshalNDR

func (*OutChainSetClientAttributesV1) UnmarshalNDR

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

type OutChainSetClientAttributes_V1

type OutChainSetClientAttributes_V1 struct {
	// V1: An NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 (section 2.2.1.3.18) structure.<47>
	V1 *OutChainSetClientAttributesV1 `idl:"name:V1" json:"v1"`
}

OutChainSetClientAttributes_V1 structure represents NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES RPC union arm.

It has following labels: 1

func (*OutChainSetClientAttributes_V1) MarshalNDR

func (*OutChainSetClientAttributes_V1) UnmarshalNDR

type PasswordGetRequest

type PasswordGetRequest struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// AccountName: A null-terminated Unicode string that contains the name of the account
	// to retrieve the password for.<185>
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// AccountType: A NETLOGON_SECURE_CHANNEL_TYPE enumerated value, as specified in section
	// 2.2.1.3.13, that defines the secure channel to be used for authentication.
	AccountType SecureChannelType `idl:"name:AccountType" json:"account_type"`
	// ComputerName: A null-terminated Unicode string that contains the NetBIOS name of
	// the DC making the call.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the encrypted logon credential and a time stamp.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
}

PasswordGetRequest structure represents the NetrServerPasswordGet operation request

func (*PasswordGetRequest) MarshalNDR

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

func (*PasswordGetRequest) UnmarshalNDR

func (o *PasswordGetRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PasswordGetResponse

type PasswordGetResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// EncryptedNtOwfPassword: A pointer to an ENCRYPTED_NT_OWF_PASSWORD structure, as specified
	// in [MS-SAMR] section 2.2.7.3, that contains the OWF password of the account.
	EncryptedNTOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedNtOwfPassword" json:"encrypted_nt_owf_password"`
	// Return: The NetrServerPasswordGet return value.
	Return int32 `idl:"name:Return" json:"return"`
}

PasswordGetResponse structure represents the NetrServerPasswordGet operation response

func (*PasswordGetResponse) MarshalNDR

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

func (*PasswordGetResponse) UnmarshalNDR

func (o *PasswordGetResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PasswordSet2Request

type PasswordSet2Request struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// AccountName: The null-terminated Unicode string that contains the name of the account
	// whose password is being changed.<180>
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// SecureChannelType: An enumerated value that defines the secure channel to be used
	// for authentication, as specified in section 2.2.1.3.13.
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the computer making the request.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the encrypted logon credential and a time stamp.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// ClearNewPassword: A pointer to an NL_TRUST_PASSWORD structure, as specified in section
	// 2.2.1.3.7, that contains the new password encrypted<181> as specified in Calling
	// NetrServerPasswordSet2 (section 3.4.5.2.5).
	ClearNewPassword *TrustPassword `idl:"name:ClearNewPassword" json:"clear_new_password"`
}

PasswordSet2Request structure represents the NetrServerPasswordSet2 operation request

func (*PasswordSet2Request) MarshalNDR

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

func (*PasswordSet2Request) UnmarshalNDR

func (o *PasswordSet2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PasswordSet2Response

type PasswordSet2Response struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// Return: The NetrServerPasswordSet2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

PasswordSet2Response structure represents the NetrServerPasswordSet2 operation response

func (*PasswordSet2Response) MarshalNDR

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

func (*PasswordSet2Response) UnmarshalNDR

func (o *PasswordSet2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PasswordSetRequest

type PasswordSetRequest struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// AccountName: The null-terminated Unicode string that contains the name of the account
	// whose password is being changed.<183>
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// SecureChannelType: An enumerated value (specified in section 2.2.1.3.13) that indicates
	// the type of secure channel used by the client.
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	// ComputerName: A null-terminated Unicode string that contains the NetBIOS name of
	// the client computer calling this method.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// UasNewPassword: A pointer to an ENCRYPTED_NT_OWF_PASSWORD structure, as specified
	// in [MS-SAMR] section 2.2.7.3 and encrypted by the algorithm specified in section
	// 3.4.5.2.6.
	UASNewPassword *EncryptedNTOWFPassword `idl:"name:UasNewPassword" json:"uas_new_password"`
}

PasswordSetRequest structure represents the NetrServerPasswordSet operation request

func (*PasswordSetRequest) MarshalNDR

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

func (*PasswordSetRequest) UnmarshalNDR

func (o *PasswordSetRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PasswordSetResponse

type PasswordSetResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// Return: The NetrServerPasswordSet return value.
	Return int32 `idl:"name:Return" json:"return"`
}

PasswordSetResponse structure represents the NetrServerPasswordSet operation response

func (*PasswordSetResponse) MarshalNDR

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

func (*PasswordSetResponse) UnmarshalNDR

func (o *PasswordSetResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PasswordVersion

type PasswordVersion struct {

	// PasswordVersionNumber: Integer value that contains the current password version number.
	// The password version number is incremented by one when a new password is generated;
	// the value for the first password is one.
	PasswordVersionNumber uint32 `idl:"name:PasswordVersionNumber" json:"password_version_number"`
	// PasswordVersionPresent: MUST be 0x02231968, which is a constant used to indicate
	// that the password version number is present and is stored in PasswordVersionNumber
	// field. This member is relevant only for server-to-server communication.
	PasswordVersionPresent uint32 `idl:"name:PasswordVersionPresent" json:"password_version_present"`
	// contains filtered or unexported fields
}

PasswordVersion structure represents NL_PASSWORD_VERSION RPC structure.

The NL_PASSWORD_VERSION structure defines a password version number that is used to distinguish between different versions of information passed in the Buffer field of the NL_TRUST_PASSWORD structure (section 2.2.1.3.7). The NL_PASSWORD_VERSION structure SHOULD<25> be prepended to the password in the buffer of NL_TRUST_PASSWORD and is only used for interdomain trust accounts.

func (*PasswordVersion) MarshalNDR

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

func (*PasswordVersion) UnmarshalNDR

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

type QuotaLimits

type QuotaLimits struct {
	// PagedPoolLimit: A ULONG that specifies the number of bytes of paged pool memory assigned
	// to the user. The paged pool is an area of system memory (physical memory used by
	// the operating system) for objects that can be written to disk when they are not being
	// used.
	PagedPoolLimit uint32 `idl:"name:PagedPoolLimit" json:"paged_pool_limit"`
	// NonPagedPoolLimit: A ULONG that specifies the number of bytes of nonpaged pool memory
	// assigned to the user. The nonpaged pool is an area of system memory for objects that
	// cannot be written to disk but MUST remain in physical memory as long as they are
	// allocated.
	NonPagedPoolLimit uint32 `idl:"name:NonPagedPoolLimit" json:"non_paged_pool_limit"`
	// MinimumWorkingSetSize: A ULONG that specifies the minimum set size assigned to the
	// user. The working set of a process is the set of memory pages currently visible to
	// the process in physical RAM memory. These pages are present in memory when the application
	// is running and available for an application to use without triggering a page fault.
	MinimumWorkingSetSize uint32 `idl:"name:MinimumWorkingSetSize" json:"minimum_working_set_size"`
	// MaximumWorkingSetSize: A ULONG that specifies the maximum set size assigned to the
	// user.
	MaximumWorkingSetSize uint32 `idl:"name:MaximumWorkingSetSize" json:"maximum_working_set_size"`
	// PagefileLimit: A ULONG that specifies the maximum size, in bytes, of the paging file,
	// which is a reserved space on disk that backs up committed physical memory on the
	// computer.
	PageFileLimit uint32 `idl:"name:PagefileLimit" json:"page_file_limit"`
	// contains filtered or unexported fields
}

QuotaLimits structure represents NLPR_QUOTA_LIMITS RPC structure.

The NLPR_QUOTA_LIMITS structure defines a set of system resources that are available to a domain user.

func (*QuotaLimits) MarshalNDR

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

func (*QuotaLimits) UnmarshalNDR

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

type RenameAlias

type RenameAlias struct {
	// OldName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the previous name of the alias.
	OldName *dtyp.UnicodeString `idl:"name:OldName" json:"old_name"`
	// NewName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the new name to assign to the alias.
	NewName *dtyp.UnicodeString `idl:"name:NewName" json:"new_name"`
	// contains filtered or unexported fields
}

RenameAlias structure represents NETLOGON_RENAME_ALIAS RPC structure.

The NETLOGON_RENAME_ALIAS structure specifies a rename of an alias.

func (*RenameAlias) MarshalNDR

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

func (*RenameAlias) UnmarshalNDR

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

type RenameGroup

type RenameGroup struct {
	// OldName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the group's previous name.
	OldName *dtyp.UnicodeString `idl:"name:OldName" json:"old_name"`
	// NewName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the new name to assign to the group.
	NewName *dtyp.UnicodeString `idl:"name:NewName" json:"new_name"`
	// contains filtered or unexported fields
}

RenameGroup structure represents NETLOGON_RENAME_GROUP RPC structure.

The NETLOGON_RENAME_GROUP structure specifies a rename of a group.

func (*RenameGroup) MarshalNDR

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

func (*RenameGroup) UnmarshalNDR

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

type RenameUser

type RenameUser struct {
	// OldName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the user account's previous name.
	OldName *dtyp.UnicodeString `idl:"name:OldName" json:"old_name"`
	// NewName: An RPC_UNICODE_STRING structure, as specified in [MS-DTYP] section 2.3.10,
	// that contains the new name to assign to the user account.
	NewName *dtyp.UnicodeString `idl:"name:NewName" json:"new_name"`
	// contains filtered or unexported fields
}

RenameUser structure represents NETLOGON_RENAME_USER RPC structure.

The NETLOGON_RENAME_USER structure specifies a rename of a user account.

func (*RenameUser) MarshalNDR

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

func (*RenameUser) UnmarshalNDR

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

type RequestChallengeRequest

type RequestChallengeRequest struct {
	// PrimaryName: The custom binding handle, as defined in section 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// ComputerName: A Unicode string that contains the NetBIOS name of the client computer
	// calling this method.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// ClientChallenge: A pointer to a NETLOGON_CREDENTIAL structure, as specified in section
	// 2.2.1.3.4, that contains the client challenge.
	ClientChallenge *Credential `idl:"name:ClientChallenge" json:"client_challenge"`
}

RequestChallengeRequest structure represents the NetrServerReqChallenge operation request

func (*RequestChallengeRequest) MarshalNDR

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

func (*RequestChallengeRequest) UnmarshalNDR

func (o *RequestChallengeRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RequestChallengeResponse

type RequestChallengeResponse struct {
	// ServerChallenge: A pointer to a NETLOGON_CREDENTIAL structure, as specified in section
	// 2.2.1.3.4, that contains the server challenge response.
	ServerChallenge *Credential `idl:"name:ServerChallenge" json:"server_challenge"`
	// Return: The NetrServerReqChallenge return value.
	Return int32 `idl:"name:Return" json:"return"`
}

RequestChallengeResponse structure represents the NetrServerReqChallenge operation response

func (*RequestChallengeResponse) MarshalNDR

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

func (*RequestChallengeResponse) UnmarshalNDR

func (o *RequestChallengeResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogoffRequest

type SAMLogoffRequest struct {
	// LogonServer: The custom binding handle, as defined in section 3.5.4.1.
	LogonServer string `idl:"name:LogonServer;string;pointer:unique" json:"logon_server"`
	// ComputerName: The Unicode string that contains the NetBIOS name of the client computer
	// calling this method.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator;pointer:unique" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator;pointer:unique" json:"return_authenticator"`
	// LogonLevel: A NETLOGON_LOGON_INFO_CLASS structure, as specified in section 2.2.1.4.16,
	// that identifies the type of logon information in the LogonInformation union.
	LogonLevel LogonInfoClass `idl:"name:LogonLevel" json:"logon_level"`
	// LogonInformation: A pointer to a NETLOGON_LEVEL structure, as specified in section
	// 2.2.1.4.6, that describes the logon information.
	LogonInformation *Level `idl:"name:LogonInformation;switch_is:LogonLevel" json:"logon_information"`
}

SAMLogoffRequest structure represents the NetrLogonSamLogoff operation request

func (*SAMLogoffRequest) MarshalNDR

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

func (*SAMLogoffRequest) UnmarshalNDR

func (o *SAMLogoffRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogoffResponse

type SAMLogoffResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator;pointer:unique" json:"return_authenticator"`
	// Return: The NetrLogonSamLogoff return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SAMLogoffResponse structure represents the NetrLogonSamLogoff operation response

func (*SAMLogoffResponse) MarshalNDR

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

func (*SAMLogoffResponse) UnmarshalNDR

func (o *SAMLogoffResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogonExRequest

type SAMLogonExRequest struct {
	// LogonServer: The null-terminated Unicode string that contains the NetBIOS name of
	// the server that will handle the logon request.
	LogonServer string `idl:"name:LogonServer;string;pointer:unique" json:"logon_server"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the client computer sending the logon request.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// LogonLevel: A NETLOGON_LOGON_INFO_CLASS enumerated type, as specified in section
	// 2.2.1.4.16, that specifies the type of the logon information passed in the LogonInformation
	// parameter.
	LogonLevel LogonInfoClass `idl:"name:LogonLevel" json:"logon_level"`
	// LogonInformation: A pointer to a NETLOGON_LEVEL structure, as specified in section
	// 2.2.1.4.6, that describes the logon request information.
	LogonInformation *Level `idl:"name:LogonInformation;switch_is:LogonLevel" json:"logon_information"`
	// ValidationLevel: A NETLOGON_VALIDATION_INFO_CLASS enumerated type, as specified in
	// section 2.2.1.4.17, that contains the validation level requested by the client.
	ValidationLevel ValidationInfoClass `idl:"name:ValidationLevel" json:"validation_level"`
	// ExtraFlags: A pointer to a set of bit flags that specify delivery settings. A flag
	// is TRUE (or set) if its value is equal to 1. Output flags MUST be the same as input.
	// The value is constructed from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits SHOULD<201> be defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Request MUST be passed to the domain controller at the root of the forest.       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Request MUST be passed to the DC at the end of the first hop over a cross-forest |
	//	|       | trust.                                                                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Request was passed by an RODC to a DC in a different domain.                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Request is an NTLM authentication package request passed by an RODC.             |
	//	+-------+----------------------------------------------------------------------------------+
	ExtraFlags uint32 `idl:"name:ExtraFlags" json:"extra_flags"`
}

SAMLogonExRequest structure represents the NetrLogonSamLogonEx operation request

func (*SAMLogonExRequest) MarshalNDR

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

func (*SAMLogonExRequest) UnmarshalNDR

func (o *SAMLogonExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogonExResponse

type SAMLogonExResponse struct {
	// ValidationInformation: A pointer to a NETLOGON_VALIDATION structure, as specified
	// in section 2.2.1.4.14, that describes the user validation information returned to
	// the client. The type of the NETLOGON_VALIDATION used is determined by the value of
	// the ValidationLevel parameter.
	ValidationInformation *Validation `idl:"name:ValidationInformation;switch_is:ValidationLevel" json:"validation_information"`
	// Authoritative: A pointer to a char value that represents a Boolean condition. FALSE
	// is indicated by the value 0x00, and TRUE SHOULD<200> be indicated by the value 0x01
	// and MAY also be indicated by any nonzero value.
	Authoritative uint8 `idl:"name:Authoritative" json:"authoritative"`
	// ExtraFlags: A pointer to a set of bit flags that specify delivery settings. A flag
	// is TRUE (or set) if its value is equal to 1. Output flags MUST be the same as input.
	// The value is constructed from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits SHOULD<201> be defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Request MUST be passed to the domain controller at the root of the forest.       |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Request MUST be passed to the DC at the end of the first hop over a cross-forest |
	//	|       | trust.                                                                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Request was passed by an RODC to a DC in a different domain.                     |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Request is an NTLM authentication package request passed by an RODC.             |
	//	+-------+----------------------------------------------------------------------------------+
	ExtraFlags uint32 `idl:"name:ExtraFlags" json:"extra_flags"`
	// Return: The NetrLogonSamLogonEx return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SAMLogonExResponse structure represents the NetrLogonSamLogonEx operation response

func (*SAMLogonExResponse) MarshalNDR

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

func (*SAMLogonExResponse) UnmarshalNDR

func (o *SAMLogonExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogonRequest

type SAMLogonRequest struct {
	LogonServer         string              `idl:"name:LogonServer;string;pointer:unique" json:"logon_server"`
	ComputerName        string              `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	Authenticator       *Authenticator      `idl:"name:Authenticator;pointer:unique" json:"authenticator"`
	ReturnAuthenticator *Authenticator      `idl:"name:ReturnAuthenticator;pointer:unique" json:"return_authenticator"`
	LogonLevel          LogonInfoClass      `idl:"name:LogonLevel" json:"logon_level"`
	LogonInformation    *Level              `idl:"name:LogonInformation;switch_is:LogonLevel" json:"logon_information"`
	ValidationLevel     ValidationInfoClass `idl:"name:ValidationLevel" json:"validation_level"`
}

SAMLogonRequest structure represents the NetrLogonSamLogon operation request

func (*SAMLogonRequest) MarshalNDR

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

func (*SAMLogonRequest) UnmarshalNDR

func (o *SAMLogonRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogonResponse

type SAMLogonResponse struct {
	ReturnAuthenticator   *Authenticator `idl:"name:ReturnAuthenticator;pointer:unique" json:"return_authenticator"`
	ValidationInformation *Validation    `idl:"name:ValidationInformation;switch_is:ValidationLevel" json:"validation_information"`
	Authoritative         uint8          `idl:"name:Authoritative" json:"authoritative"`
	// Return: The NetrLogonSamLogon return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SAMLogonResponse structure represents the NetrLogonSamLogon operation response

func (*SAMLogonResponse) MarshalNDR

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

func (*SAMLogonResponse) UnmarshalNDR

func (o *SAMLogonResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogonWithFlagsRequest

type SAMLogonWithFlagsRequest struct {
	// LogonServer: The custom binding handle, as defined in section 3.5.4.1.
	LogonServer string `idl:"name:LogonServer;string;pointer:unique" json:"logon_server"`
	// ComputerName: The Unicode string that contains the NetBIOS name of the client computer
	// calling this method.
	ComputerName string `idl:"name:ComputerName;string;pointer:unique" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator;pointer:unique" json:"authenticator"`
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator;pointer:unique" json:"return_authenticator"`
	// LogonLevel: A NETLOGON_LOGON_INFO_CLASS structure, as specified in section 2.2.1.4.16,
	// that specifies the type of logon information passed in the LogonInformation parameter.
	LogonLevel LogonInfoClass `idl:"name:LogonLevel" json:"logon_level"`
	// LogonInformation: A pointer to a NETLOGON_LEVEL structure, as specified in section
	// 2.2.1.4.6, that describes the logon request information.
	LogonInformation *Level `idl:"name:LogonInformation;switch_is:LogonLevel" json:"logon_information"`
	// ValidationLevel: A NETLOGON_VALIDATION_INFO_CLASS enumerated type, as specified in
	// section 2.2.1.4.17, that contains the validation level requested by the client.
	ValidationLevel ValidationInfoClass `idl:"name:ValidationLevel" json:"validation_level"`
	// ExtraFlags: A pointer to a set of bit flags that specify delivery settings. A flag
	// is TRUE (or set) if its value is equal to 1. The value is constructed from zero or
	// more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits SHOULD<212> defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Request is passed to the domain controller at the root of the forest.            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Request is passed to the DC at the end of the first hop over a cross-forest      |
	//	|       | trust.                                                                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Request is passed by an RODC to a DC in a different domain.                      |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Request is an NTLM authentication package request passed by an RODC.             |
	//	+-------+----------------------------------------------------------------------------------+
	ExtraFlags uint32 `idl:"name:ExtraFlags" json:"extra_flags"`
}

SAMLogonWithFlagsRequest structure represents the NetrLogonSamLogonWithFlags operation request

func (*SAMLogonWithFlagsRequest) MarshalNDR

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

func (*SAMLogonWithFlagsRequest) UnmarshalNDR

func (o *SAMLogonWithFlagsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SAMLogonWithFlagsResponse

type SAMLogonWithFlagsResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator;pointer:unique" json:"return_authenticator"`
	// ValidationInformation: A pointer to a NETLOGON_VALIDATION structure, as specified
	// in section 2.2.1.4.14, that describes the user validation information returned to
	// the client. The type of the NETLOGON_VALIDATION used is determined by the value of
	// the ValidationLevel parameter.
	ValidationInformation *Validation `idl:"name:ValidationInformation;switch_is:ValidationLevel" json:"validation_information"`
	// Authoritative: A pointer to a char value representing a Boolean condition. FALSE
	// is indicated by the value 0x00; TRUE SHOULD<211> be indicated by the value 0x01 and
	// MAY also be indicated by any nonzero value.
	Authoritative uint8 `idl:"name:Authoritative" json:"authoritative"`
	// ExtraFlags: A pointer to a set of bit flags that specify delivery settings. A flag
	// is TRUE (or set) if its value is equal to 1. The value is constructed from zero or
	// more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits SHOULD<212> defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Request is passed to the domain controller at the root of the forest.            |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Request is passed to the DC at the end of the first hop over a cross-forest      |
	//	|       | trust.                                                                           |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | Request is passed by an RODC to a DC in a different domain.                      |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | Request is an NTLM authentication package request passed by an RODC.             |
	//	+-------+----------------------------------------------------------------------------------+
	ExtraFlags uint32 `idl:"name:ExtraFlags" json:"extra_flags"`
	// Return: The NetrLogonSamLogonWithFlags return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SAMLogonWithFlagsResponse structure represents the NetrLogonSamLogonWithFlags operation response

func (*SAMLogonWithFlagsResponse) MarshalNDR

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

func (*SAMLogonWithFlagsResponse) UnmarshalNDR

func (o *SAMLogonWithFlagsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SIDAndAttributes

type SIDAndAttributes struct {
	// Sid: A pointer to a security identifier (SID), as specified in [MS-DTYP] section
	// 2.4.2.3.
	SID *dtyp.SID `idl:"name:Sid" json:"sid"`
	// Attributes: A set of bit flags that contains the set of security attributes assigned
	// to this SID. A bit is TRUE (or set) if its value is equal to 1.  The value is constructed
	// from one or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | D | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | C | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | The SID cannot have the SE_GROUP_ENABLED attribute removed.  Corresponds to      |
	//	|       | the SID attribute SE_GROUP_MANDATORY. This attribute prevents the user from      |
	//	|       | disabling the group. Disabling a group causes the group to be ignored by access  |
	//	|       | validation routines.                                                             |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | The SID is enabled by default (as opposed to being enabled by an application).   |
	//	|       | Corresponds to the SID attribute SE_GROUP_ENABLED_BY_DEFAULT.                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| C     | The SID is enabled for access checks.  Corresponds to the SID attribute          |
	//	|       | SE_GROUP_ENABLED.                                                                |
	//	+-------+----------------------------------------------------------------------------------+
	//	| D     | This group is a domain local group. Corresponds to SE_GROUP_RESOURCE.            |
	//	+-------+----------------------------------------------------------------------------------+
	//
	// These values are opaque to the Netlogon protocol. They are not used or processed
	// directly. All fields of this structure have the same meaning as the identically named
	// fields in the KERB_SID_AND_ATTRIBUTES structure as specified in [MS-PAC] section
	// 2.2.1.
	Attributes uint32 `idl:"name:Attributes" json:"attributes"`
}

SIDAndAttributes structure represents NETLOGON_SID_AND_ATTRIBUTES RPC structure.

The NETLOGON_SID_AND_ATTRIBUTES structure contains a security identifier (SID) and its attributes.

func (*SIDAndAttributes) MarshalNDR

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

func (*SIDAndAttributes) UnmarshalNDR

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

type SIDArray

type SIDArray struct {
	// Count: The number of pointers in the Sids array.
	Count uint32 `idl:"name:Count" json:"count"`
	// Sids: An array of NLPR_SID_INFORMATION structures, as specified in section 2.2.1.5.5,
	// each of which is a pointer to a SID.
	SIDs []*SIDInformation `idl:"name:Sids;size_is:(Count)" json:"sids"`
}

SIDArray structure represents NLPR_SID_ARRAY RPC structure.

The NLPR_SID_ARRAY structure defines an array of pointers to security identifier structures.

func (*SIDArray) MarshalNDR

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

func (*SIDArray) UnmarshalNDR

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

type SIDInformation

type SIDInformation struct {
	// SidPointer: A pointer to a SID structure ([MS-DTYP] section 2.4.2.3).
	SIDPointer *dtyp.SID `idl:"name:SidPointer" json:"sid_pointer"`
}

SIDInformation structure represents NLPR_SID_INFORMATION RPC structure.

The NLPR_SID_INFORMATION structure is used to form a wrapper for a SID; it is used to transmit a SID during certain replication operations. See section 3.6 for details.

func (*SIDInformation) MarshalNDR

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

func (*SIDInformation) UnmarshalNDR

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

type SecureChannelType

type SecureChannelType uint16

SecureChannelType type represents NETLOGON_SECURE_CHANNEL_TYPE RPC enumeration.

The NETLOGON_SECURE_CHANNEL_TYPE enumeration specifies the type of secure channel to use in a logon transaction.

var (
	// NullSecureChannel: An unauthenticated channel type. This value MUST NOT be used in
	// the Netlogon RPC calls between a client and a remote server. The error code STATUS_INVALID_PARAMETER
	// is returned.
	SecureChannelTypeNullSecureChannel SecureChannelType = 0
	// MsvApSecureChannel: A secure channel between the local NT LAN Manager (NTLM) security
	// provider and the Netlogon server. The client and the server are the same machine
	// for this channel type. This value MUST NOT be used in the Netlogon RPC calls between
	// a client and a remote server. The error code STATUS_INVALID_PARAMETER is returned.
	SecureChannelTypeMsvApSecureChannel SecureChannelType = 1
	// WorkstationSecureChannel: A secure channel from a domain member to a DC.
	SecureChannelTypeWorkstationSecureChannel SecureChannelType = 2
	// TrustedDnsDomainSecureChannel: A secure channel between two DCs, connected through
	// a trust relationship created between two Active Directory domains. A trusted domain
	// object (TDO) is used in this type of channel.
	SecureChannelTypeTrustedDNSDomainSecureChannel SecureChannelType = 3
	// TrustedDomainSecureChannel: A secure channel between two DCs, connected through a
	// trust relationship created between two domains.<31>
	SecureChannelTypeTrustedDomainSecureChannel SecureChannelType = 4
	// UasServerSecureChannel: Secure channel from a LAN Manager server to a DC. This value
	// is no longer supported, and it MUST NOT be used in the Netlogon RPC calls between
	// a client and a remote server. The error code STATUS_INVALID_PARAMETER is returned.
	SecureChannelTypeUASServerSecureChannel SecureChannelType = 5
	// ServerSecureChannel: A secure channel from a backup domain controller to a primary
	// domain controller.
	SecureChannelTypeServerSecureChannel SecureChannelType = 6
	// CdcServerSecureChannel: A secure channel from a read-only domain controller (RODC)
	// to a domain controller.<32>
	SecureChannelTypeCDCServerSecureChannel SecureChannelType = 7
)

func (SecureChannelType) String

func (o SecureChannelType) String() string

type SendToSAMRequest

type SendToSAMRequest struct {
	// PrimaryName: The custom binding handle, as defined in 3.5.4.1.
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// ComputerName: A null-terminated Unicode string that contains the NetBIOS name of
	// the client computer making the call.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// OpaqueBuffer: A buffer to be passed to the Security Account Manager (SAM) service
	// on the PDC. The buffer is encrypted on the wire.
	OpaqueBuffer []byte `idl:"name:OpaqueBuffer;size_is:(OpaqueBufferSize)" json:"opaque_buffer"`
	// OpaqueBufferSize: The size, in bytes, of the OpaqueBuffer parameter.
	OpaqueBufferSize uint32 `idl:"name:OpaqueBufferSize" json:"opaque_buffer_size"`
}

SendToSAMRequest structure represents the NetrLogonSendToSam operation request

func (*SendToSAMRequest) MarshalNDR

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

func (*SendToSAMRequest) UnmarshalNDR

func (o *SendToSAMRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SendToSAMResponse

type SendToSAMResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// Return: The NetrLogonSendToSam return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SendToSAMResponse structure represents the NetrLogonSendToSam operation response

func (*SendToSAMResponse) MarshalNDR

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

func (*SendToSAMResponse) UnmarshalNDR

func (o *SendToSAMResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ServiceInfo

type ServiceInfo struct {
	// Identity: NETLOGON_LOGON_IDENTITY_INFO structure, as specified in section 2.2.1.4.15,
	// that contains information about the logon identity.
	Identity *LogonIdentityInfo `idl:"name:Identity" json:"identity"`
	// LmOwfPassword: LM_OWF_PASSWORD structure, as specified in section 2.2.1.1.3, that
	// contains the LMOWFv1 of a password. LMOWFv1 is specified in NTLM v1 Authentication
	// in [MS-NLMP] section 3.3.1.
	LMOWFPassword *LMOWFPassword `idl:"name:LmOwfPassword" json:"lm_owf_password"`
	// NtOwfPassword: NT_OWF_PASSWORD structure, as specified in section 2.2.1.1.4, that
	// contains the NTOWFv1 of a password. NTOWFv1 is specified in NTLM v1 Authentication
	// in [MS-NLMP] section 3.3.1.
	NTOWFPassword *NTOWFPassword `idl:"name:NtOwfPassword" json:"nt_owf_password"`
}

ServiceInfo structure represents NETLOGON_SERVICE_INFO RPC structure.

The NETLOGON_SERVICE_INFO structure defines information about a service account logon. Operating system services use service accounts as their run-time security identity.

func (*ServiceInfo) MarshalNDR

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

func (*ServiceInfo) UnmarshalNDR

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

type SetServiceBitsRequest

type SetServiceBitsRequest struct {
	// ServerName: The custom binding handle, as defined in section 3.5.4.1, representing
	// the connection to a DC.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ServiceBitsOfInterest: A set of bit flags used as a mask to indicate which service's
	// state (running or not running) is being set by this call. The value is constructed
	// from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | C | 0 | 0 | 0 | B | 0 | 0 | A | 0 | 0 | 0 | 0 | 0 | 0 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// The flags SHOULD<238> be defined as follows.
	//
	//	+-------+-----------------------------------------------------------------+
	//	|       |                                                                 |
	//	| VALUE |                           DESCRIPTION                           |
	//	|       |                                                                 |
	//	+-------+-----------------------------------------------------------------+
	//	+-------+-----------------------------------------------------------------+
	//	| A     | The state of the time service is being set.                     |
	//	+-------+-----------------------------------------------------------------+
	//	| B     | The state of the time service with clock hardware is being set. |
	//	+-------+-----------------------------------------------------------------+
	//	| C     | The state of the Active Directory Web service is being set.     |
	//	+-------+-----------------------------------------------------------------+
	ServiceBitsOfInterest uint32 `idl:"name:ServiceBitsOfInterest" json:"service_bits_of_interest"`
	// ServiceBits: A set of bit flags used as a mask to indicate whether the service indicated
	// by ServiceBitsOfInterest is running. If the flag is set to 0, the corresponding service
	// indicated by ServiceBitsOfInterest is not running. Otherwise, if the flag is set
	// to 1, the corresponding service indicated by ServiceBitsOfInterest is running. The
	// value is constructed from zero or more bit flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | C | 0 | 0 | 0 | B | 0 | 0 | A | 0 | 0 | 0 | 0 | 0 | 0 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// The flags SHOULD<239> be defined as follows.
	//
	//	+-------+----------------------------------------------+
	//	|       |                                              |
	//	| VALUE |                 DESCRIPTION                  |
	//	|       |                                              |
	//	+-------+----------------------------------------------+
	//	+-------+----------------------------------------------+
	//	| A     | Time service is running.                     |
	//	+-------+----------------------------------------------+
	//	| B     | Time service with clock hardware is running. |
	//	+-------+----------------------------------------------+
	//	| C     | Active Directory Web service is running.     |
	//	+-------+----------------------------------------------+
	//
	// All other bits MUST be set to zero; otherwise, the error STATUS_INVALID_PARAMETER
	// is returned.
	ServiceBits uint32 `idl:"name:ServiceBits" json:"service_bits"`
}

SetServiceBitsRequest structure represents the NetrLogonSetServiceBits operation request

func (*SetServiceBitsRequest) MarshalNDR

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

func (*SetServiceBitsRequest) UnmarshalNDR

func (o *SetServiceBitsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetServiceBitsResponse

type SetServiceBitsResponse struct {
	// Return: The NetrLogonSetServiceBits return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SetServiceBitsResponse structure represents the NetrLogonSetServiceBits operation response

func (*SetServiceBitsResponse) MarshalNDR

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

func (*SetServiceBitsResponse) UnmarshalNDR

func (o *SetServiceBitsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SiteNameArray

type SiteNameArray struct {
	// EntryCount: The number of entries in SiteNames.
	EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"`
	// SiteNames: A pointer to an array of null-terminated RPC_UNICODE_STRING structures
	// ([MS-DTYP] section 2.3.10) that contain site names. For more information about sites,
	// see [MS-ADTS] section 6.1.1.2.2.1.
	SiteNames []*dtyp.UnicodeString `idl:"name:SiteNames;size_is:(EntryCount)" json:"site_names"`
}

SiteNameArray structure represents NL_SITE_NAME_ARRAY RPC structure.

The NL_SITE_NAME_ARRAY structure defines an array of site names.

func (*SiteNameArray) MarshalNDR

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

func (*SiteNameArray) UnmarshalNDR

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

type SiteNameExArray

type SiteNameExArray struct {
	// EntryCount: The number of entries in SiteNames and SubnetNames.
	EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"`
	// SiteNames: A pointer to an array of null-terminated Unicode strings that contain
	// site names. For details about sites, see [MS-ADTS] section 6.1.1.2.2.1.
	SiteNames []*dtyp.UnicodeString `idl:"name:SiteNames;size_is:(EntryCount)" json:"site_names"`
	// SubnetNames: A pointer to an array of null-terminated Unicode strings that contain
	// subnet names. For details about subnets, see [MS-ADTS] section 6.1.1.2.2.2.1.
	SubnetNames []*dtyp.UnicodeString `idl:"name:SubnetNames;size_is:(EntryCount)" json:"subnet_names"`
}

SiteNameExArray structure represents NL_SITE_NAME_EX_ARRAY RPC structure.

The NL_SITE_NAME_EX_ARRAY structure defines an array of site and subnet names. This structure extends the NL_SITE_NAME_ARRAY (section 2.2.1.2.2) structure by adding an array of subnets that correspond to the sites.

func (*SiteNameExArray) MarshalNDR

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

func (*SiteNameExArray) UnmarshalNDR

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

type SocketAddress

type SocketAddress struct {
	// lpSockaddr: A pointer to an octet string. The format of the lpSockaddr member when
	// an IPv4 socket address is used is specified in section 2.2.1.2.4.1. The format of
	// the lpSockaddr member when an IPv6 socket address is used is specified in section
	// 2.2.1.2.4.2.
	Sockaddr []byte `idl:"name:lpSockaddr;size_is:(iSockaddrLength)" json:"sockaddr"`
	// iSockaddrLength: The length of the octet string pointed to by lpSockaddr, in bytes.
	SockaddrLength uint32 `idl:"name:iSockaddrLength" json:"sockaddr_length"`
}

SocketAddress structure represents NL_SOCKET_ADDRESS RPC structure.

The NL_SOCKET_ADDRESS structure contains a socket address.

func (*SocketAddress) MarshalNDR

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

func (*SocketAddress) UnmarshalNDR

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

type String

type String struct {
	// Length: The length of the data pointed to by Buffer, in bytes.
	Length uint16 `idl:"name:Length" json:"length"`
	// MaximumLength: The total allocated length of the data pointed to by Buffer, in bytes.<6>
	MaximumLength uint16 `idl:"name:MaximumLength" json:"maximum_length"`
	// Buffer: A pointer to a buffer containing the character string.
	Buffer []byte `idl:"name:Buffer;size_is:(MaximumLength);length_is:(Length)" json:"buffer"`
}

String structure represents STRING RPC structure.

The STRING structure contains the length, the maximum length, and a pointer to a buffer containing the string.

func (*String) MarshalNDR

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

func (*String) UnmarshalNDR

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

type SyncState

type SyncState uint16

SyncState type represents SYNC_STATE RPC enumeration.

The SYNC_STATE enumeration tracks the progress of synchronization of the database between BDCs and PDCs. Synchronization is initiated by the client calling NetrDatabaseSync2 (section 3.5.4.6.2). All references to SyncContext in the following synchronization state descriptions refer to the SyncContext parameter in that method.

var (
	// NormalState: A state that MUST be used unless the current synchronization is the
	// restart of a full synchronization.
	SyncStateNormalState SyncState = 0
	// DomainState: The SyncContext parameter is the domain RID with which to continue.
	SyncStateDomainState SyncState = 1
	// GroupState: The SyncContext parameter is the global group RID with which to continue.
	SyncStateGroupState SyncState = 2
	// UasBuiltInGroupState: Not used.
	SyncStateUASBuiltInGroupState SyncState = 3
	// UserState: The SyncContext parameter is the user RID with which to continue.
	SyncStateUserState SyncState = 4
	// GroupMemberState: The SyncContext parameter is the global group RID with which to
	// continue.
	SyncStateGroupMemberState SyncState = 5
	// AliasState: The SyncContext parameter MUST have a value of 0, indicating synchronization
	// restarts at the first database alias and that AddOrChangeAlias (see NETLOGON_DELTA_TYPE
	// enumeration section 2.2.1.5.28) was the last account change being performed prior
	// to the restart.
	SyncStateAliasState SyncState = 6
	// AliasMemberState: The SyncContext parameter MUST have a value of 0, indicating synchronization
	// restarts at the first database alias and that ChangeAliasMembership (NETLOGON_DELTA_TYPE
	// enumeration section 2.2.1.5.28) was the last account change being performed prior
	// to the restart.
	SyncStateAliasMemberState SyncState = 7
	// SamDoneState: The database has finished synchronization.
	SyncStateSAMDoneState SyncState = 8
)

func (SyncState) String

func (o SyncState) String() string

type TrustPassword

type TrustPassword struct {
	// Buffer: Array of Unicode characters that is treated as a byte buffer containing the
	// password, as follows:
	//
	// * For a computer account password, the buffer has the following format:
	//
	// [Computer account password buffer format](ms-nrpc_files/image004.png)
	//
	// Figure 4: Computer account password buffer format
	//
	// * For a domain trust password, the buffer has the following format:
	//
	// [Domain trust password buffer format](ms-nrpc_files/image005.png)
	//
	// Figure 5: Domain trust password buffer format
	//
	// * The *PasswordVersion* part of the preceding diagram has the following format:
	//
	// [Password version buffer format](ms-nrpc_files/image006.png)
	//
	// Figure 6: Password version buffer format
	Buffer []uint16 `idl:"name:Buffer" json:"buffer"`
	// Length: The length of the password, in bytes.
	Length uint32 `idl:"name:Length" json:"length"`
}

TrustPassword structure represents NL_TRUST_PASSWORD RPC structure.

The NL_TRUST_PASSWORD structure defines a buffer for carrying a computer account password, or a trust password, to be transmitted over the wire. It SHOULD<23> be transported as an input parameter to the NetrServerPasswordSet2 method, as specified in section 3.5.4.4.5. Domain members use NetrServerPasswordSet2 to change their computer account password. The primary domain controller uses NetrServerPasswordSet2 to change trust passwords for all directly trusted domains. The NL_TRUST_PASSWORD structure is encrypted using the negotiated encryption algorithm before it is sent over the wire.<24>

func (*TrustPassword) MarshalNDR

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

func (*TrustPassword) UnmarshalNDR

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

type TrustPasswordsGetRequest

type TrustPasswordsGetRequest struct {
	// TrustedDcName: The custom binding handle, as defined in section 3.5.4.1.
	TrustedDCName string `idl:"name:TrustedDcName;string;pointer:unique" json:"trusted_dc_name"`
	// AccountName: The null-terminated Unicode string that contains the name of the client
	// account in the domain for which the trust password MUST be returned.<187>
	AccountName string `idl:"name:AccountName;string" json:"account_name"`
	// SecureChannelType: A NETLOGON_SECURE_CHANNEL_TYPE enumerated value, as specified
	// in section 2.2.1.3.13, that indicates the type of the secure channel being established
	// by this call.
	SecureChannelType SecureChannelType `idl:"name:SecureChannelType" json:"secure_channel_type"`
	// ComputerName: The null-terminated Unicode string that contains the NetBIOS name of
	// the client computer.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified in section
	// 2.2.1.1.5, that contains the client authenticator.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
}

TrustPasswordsGetRequest structure represents the NetrServerTrustPasswordsGet operation request

func (*TrustPasswordsGetRequest) MarshalNDR

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

func (*TrustPasswordsGetRequest) UnmarshalNDR

func (o *TrustPasswordsGetRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type TrustPasswordsGetResponse

type TrustPasswordsGetResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure, as specified
	// in section 2.2.1.1.5, that contains the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// EncryptedNewOwfPassword: A pointer to an ENCRYPTED_NT_OWF_PASSWORD structure, as
	// specified in [MS-SAMR] section 2.2.7.3, that contains the NTOWFv1 (as specified in
	// NTLM v1 Authentication in [MS-NLMP] section 3.3.1) of the current password, encrypted
	// as specified in [MS-SAMR] section 2.2.11.1.1, Encrypting an NT Hash or LM Hash Value
	// with a specified key. The session key is the specified 16-byte key that is used to
	// derive the password's keys. The specified 16-byte key uses the 16-byte value process,
	// as specified in [MS-SAMR] section 2.2.11.1.4.
	EncryptedNewOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedNewOwfPassword" json:"encrypted_new_owf_password"`
	// EncryptedOldOwfPassword: A pointer to an ENCRYPTED_NT_OWF_PASSWORD structure, as
	// specified in [MS-SAMR] section 2.2.7.3, that contains the NTOWFv1 (as specified in
	// NTLM v1 Authentication in [MS-NLMP] section 3.3.1) of the previous password, encrypted
	// as specified in [MS-SAMR] section 2.2.11.1.1, Encrypting an NT Hash or LM Hash Value
	// with a specified key. The session key is the specified 16-byte key that is used to
	// derive the password's keys. The specified 16-byte key uses the 16-byte value process,
	// as specified in [MS-SAMR] section 2.2.11.1.4.
	EncryptedOldOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedOldOwfPassword" json:"encrypted_old_owf_password"`
	// Return: The NetrServerTrustPasswordsGet return value.
	Return int32 `idl:"name:Return" json:"return"`
}

TrustPasswordsGetResponse structure represents the NetrServerTrustPasswordsGet operation response

func (*TrustPasswordsGetResponse) MarshalNDR

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

func (*TrustPasswordsGetResponse) UnmarshalNDR

func (o *TrustPasswordsGetResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type TrustedDomainArray

type TrustedDomainArray struct {
	// DomainCount: The number of entries in the Domains field.
	DomainCount uint32 `idl:"name:DomainCount" json:"domain_count"`
	// Domains: An array of DS_DOMAIN_TRUSTSW structures (section 2.2.1.6.2) that describe
	// domains trusted by the server processing the NetrEnumerateTrustedDomainsEx method
	// call.
	Domains []*DSDomainTrustsw `idl:"name:Domains;size_is:(DomainCount)" json:"domains"`
}

TrustedDomainArray structure represents NETLOGON_TRUSTED_DOMAIN_ARRAY RPC structure.

The NETLOGON_TRUSTED_DOMAIN_ARRAY structure SHOULD<58> define information returned by the NetrEnumerateTrustedDomainsEx method, as specified in section 3.5.4.7.2.

func (*TrustedDomainArray) MarshalNDR

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

func (*TrustedDomainArray) UnmarshalNDR

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

type UASInfo0

type UASInfo0 struct {
	ComputerName []byte `idl:"name:ComputerName" json:"computer_name"`
	TimeCreated  uint32 `idl:"name:TimeCreated" json:"time_created"`
	SerialNumber uint32 `idl:"name:SerialNumber" json:"serial_number"`
}

UASInfo0 structure represents UAS_INFO_0 RPC structure.

The UAS_INFO_0 structure was for the support of LAN Manager products and is beyond the scope of this document.

func (*UASInfo0) MarshalNDR

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

func (*UASInfo0) UnmarshalNDR

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

type UASLogoffRequest

type UASLogoffRequest struct {
	ServerName  string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	UserName    string `idl:"name:UserName;string" json:"user_name"`
	Workstation string `idl:"name:Workstation;string" json:"workstation"`
}

UASLogoffRequest structure represents the NetrLogonUasLogoff operation request

func (*UASLogoffRequest) MarshalNDR

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

func (*UASLogoffRequest) UnmarshalNDR

func (o *UASLogoffRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type UASLogoffResponse

type UASLogoffResponse struct {
	LogoffInformation *LogoffUASInfo `idl:"name:LogoffInformation" json:"logoff_information"`
	// Return: The NetrLogonUasLogoff return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UASLogoffResponse structure represents the NetrLogonUasLogoff operation response

func (*UASLogoffResponse) MarshalNDR

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

func (*UASLogoffResponse) UnmarshalNDR

func (o *UASLogoffResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type UASLogonRequest

type UASLogonRequest struct {
	ServerName  string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	UserName    string `idl:"name:UserName;string" json:"user_name"`
	Workstation string `idl:"name:Workstation;string" json:"workstation"`
}

UASLogonRequest structure represents the NetrLogonUasLogon operation request

func (*UASLogonRequest) MarshalNDR

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

func (*UASLogonRequest) UnmarshalNDR

func (o *UASLogonRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type UASLogonResponse

type UASLogonResponse struct {
	ValidationInformation *ValidationUASInfo `idl:"name:ValidationInformation" json:"validation_information"`
	// Return: The NetrLogonUasLogon return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UASLogonResponse structure represents the NetrLogonUasLogon operation response

func (*UASLogonResponse) MarshalNDR

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

func (*UASLogonResponse) UnmarshalNDR

func (o *UASLogonResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type UnicodeString

type UnicodeString dtyp.UnicodeString

UnicodeString structure represents LSA_RPC_UNICODE_STRING RPC structure.

func (*UnicodeString) MarshalNDR

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

func (*UnicodeString) UnicodeString

func (o *UnicodeString) UnicodeString() *dtyp.UnicodeString

func (*UnicodeString) UnmarshalNDR

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

type UpdateReadOnlyServerDNSRecordsRequest

type UpdateReadOnlyServerDNSRecordsRequest struct {
	// ServerName: The custom binding handle (as defined in section 3.5.4.1) that represents
	// the connection to the normal (writable) DC.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ComputerName: A null-terminated Unicode string that contains the client computer
	// NetBIOS name.
	ComputerName string `idl:"name:ComputerName;string" json:"computer_name"`
	// Authenticator: A pointer to a NETLOGON_AUTHENTICATOR structure (as specified in section
	// 2.2.1.1.5) that contains the client authenticator that will be used to authenticate
	// the client.
	Authenticator *Authenticator `idl:"name:Authenticator" json:"authenticator"`
	// SiteName: A pointer to a null-terminated Unicode string that contains the site name
	// where the RODC resides.
	SiteName string `idl:"name:SiteName;string;pointer:unique" json:"site_name"`
	// DnsTtl: The Time-To-Live (TTL) value, in seconds, for DNS records.
	DNSTTL uint32 `idl:"name:DnsTtl" json:"dns_ttl"`
	// DnsNames: A pointer to an NL_DNS_NAME_INFO_ARRAY (section 2.2.1.2.6) structure that
	// contains an array of NL_DNS_NAME_INFO structures.
	DNSNames *DNSNameInfoArray `idl:"name:DnsNames" json:"dns_names"`
}

UpdateReadOnlyServerDNSRecordsRequest structure represents the DsrUpdateReadOnlyServerDnsRecords operation request

func (*UpdateReadOnlyServerDNSRecordsRequest) MarshalNDR

func (*UpdateReadOnlyServerDNSRecordsRequest) UnmarshalNDR

type UpdateReadOnlyServerDNSRecordsResponse

type UpdateReadOnlyServerDNSRecordsResponse struct {
	// ReturnAuthenticator: A pointer to a NETLOGON_AUTHENTICATOR structure that contains
	// the server return authenticator.
	ReturnAuthenticator *Authenticator `idl:"name:ReturnAuthenticator" json:"return_authenticator"`
	// DnsNames: A pointer to an NL_DNS_NAME_INFO_ARRAY (section 2.2.1.2.6) structure that
	// contains an array of NL_DNS_NAME_INFO structures.
	DNSNames *DNSNameInfoArray `idl:"name:DnsNames" json:"dns_names"`
	// Return: The DsrUpdateReadOnlyServerDnsRecords return value.
	Return int32 `idl:"name:Return" json:"return"`
}

UpdateReadOnlyServerDNSRecordsResponse structure represents the DsrUpdateReadOnlyServerDnsRecords operation response

func (*UpdateReadOnlyServerDNSRecordsResponse) MarshalNDR

func (*UpdateReadOnlyServerDNSRecordsResponse) UnmarshalNDR

type UserPrivateInfo

type UserPrivateInfo struct {
	// SensitiveData: Is either TRUE (0x01) or FALSE (0x00). The SensitiveData field indicates
	// whether the data is encrypted as follows. If this field is set to 0x00, then the
	// data is not encrypted. If the field is set to 0x01, the data pointed to by the Data
	// field is encrypted with the session key used on the secure channel between the client
	// and the server exchanging this data structure to the client. The encryption algorithm
	// is RC4 if the flag C is set in the negotiated flags between the client and the server,
	// as specified in section 3.1.4.2; otherwise the encryption algorithm is DES.
	SensitiveData uint8 `idl:"name:SensitiveData" json:"sensitive_data"`
	// DataLength: The size, in bytes, of the Data field.
	DataLength uint32 `idl:"name:DataLength" json:"data_length"`
	// Data: A pointer to a buffer with a size of DataLength. If the SensitiveData field
	// is set to TRUE, this data is encrypted as defined in the SensitiveData field. The
	// buffer content prior to encryption (if any) is shown in the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| DataType                                                                                                                      |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmLength                                                      | LmMaximumLength                                               |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Unused1                                                                                                                       |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmHash[0..3]                                                                                                                  |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmHash[4..7]                                                                                                                  |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmHash[8..11]                                                                                                                 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmHash[12..15]                                                                                                                |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtLength                                                      | NtMaximumLength                                               |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Unused2                                                                                                                       |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtHash[0..3]                                                                                                                  |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtHash[4..7]                                                                                                                  |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtHash[8..11]                                                                                                                 |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtHash[12..15]                                                                                                                |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmHistoryLength                                               | LmHistoryMaximumLength                                        |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Unused3                                                                                                                       |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtHistoryLength                                               | NtHistoryMaximumLength                                        |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| Unused4                                                                                                                       |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| NtHistoryArray (variable)                                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ...                                                                                                                           |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| LmHistoryArray (variable)                                                                                                     |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| ...                                                                                                                           |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// DataType: An unsigned integer. This value MUST be 0x00000002.
	//
	// LmLength: An unsigned (short) integer. This value MUST be either 0x0010 or 0x0000.
	// If 0x0010, the LmHash field contains the LM hash of the user password (specified
	// in [MS-NLMP]). If 0x0000, the value of the LmHash field is undefined and MUST be
	// ignored upon receipt.
	//
	// LmMaximumLength: This value MUST be the same value as LmLength.
	//
	// Unused1: This value MUST be zero and ignored on receipt.
	//
	// LmHash: The encrypted ([MS-SAMR] section 2.2.11.1) LM OWF ([MS-NLMP] section 3.3)
	// of the user password. The 16-byte encryption key is created by concatenating four
	// times the relative ID (from the given user's SID).
	//
	// NtLength: An unsigned (short) integer. This value MUST be either 0x0010 or 0x0000.
	// If 0x0010, the NtHash field contains the NT hash of the user password (specified
	// in [MS-NLMP]). If 0x0000, the value of the NtHash field is undefined and MUST be
	// ignored upon receipt.
	//
	// NtMaximumLength: This value MUST be the same value as NtLength.
	//
	// Unused2: This value MUST be zero and ignored on receipt.
	//
	// NtHash: The encrypted ([MS-SAMR] section 2.2.11.1) NT OWF ([MS-NLMP] section 3.3)
	// of the user password. The 16-byte encryption key is created by concatenating four
	// times the relative ID (from the given user's SID).
	//
	// LmHistoryLength: An unsigned (short) integer. This value is the length, in bytes,
	// of the LmHistoryArray field.
	//
	// LmHistoryMaximumLength: This value MUST be the same value as LmHistoryLength.
	//
	// Unused3: This value MUST be zero and ignored on receipt.
	//
	// NtHistoryLength: An unsigned (short) integer. This value is the length, in bytes,
	// of the NtHistoryArray field.
	//
	// NtHistoryMaximumLength: This value MUST be the same value as NtHistoryLength.
	//
	// Unused4: This value MUST be zero and ignored on receipt.
	//
	// NtHistoryArray: An array of NT hash values of user passwords for the given user.
	// The array is ordered so that the first element is the hash of the current password
	// and the last element is the hash of the oldest password.
	//
	// Note  The number of elements in the array is the value of the NtHistoryLength field
	// divided by 0x0010.
	//
	// LmHistoryArray: An array of LM hash values of user passwords for the given user.
	// The array is ordered so that the first element is the hash of the current password
	// and the last element is the hash of the oldest password.
	Data []byte `idl:"name:Data;size_is:(DataLength)" json:"data"`
}

UserPrivateInfo structure represents NLPR_USER_PRIVATE_INFO RPC structure.

The NLPR_USER_PRIVATE_INFO structure defines a data buffer that is optionally encrypted with the session key, as detailed in this section. The structure is used to carry user account passwords as follows.

func (*UserPrivateInfo) MarshalNDR

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

func (*UserPrivateInfo) UnmarshalNDR

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

type UserSessionKey

type UserSessionKey struct {
	// data: A two-element CYPHER_BLOCK structure, as specified in section 2.2.1.1.1, that
	// contains the 16-byte encrypted user session key.
	Data []*CypherBlock `idl:"name:data" json:"data"`
}

UserSessionKey structure represents USER_SESSION_KEY RPC structure.

The USER_SESSION_KEY structure defines an encrypted user session key.

func (*UserSessionKey) MarshalNDR

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

func (*UserSessionKey) UnmarshalNDR

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

type Validation

type Validation struct {
	// Types that are assignable to Value
	//
	// *Validation_SAM
	// *Validation_SAM2
	// *Validation_Generic2
	// *Validation_SAM4
	// *Validation_DefaultValidation
	Value is_Validation `json:"value"`
}

Validation structure represents NETLOGON_VALIDATION RPC union.

The NETLOGON_VALIDATION union defines a union of all types of user validation information values.

func (*Validation) GetValue

func (o *Validation) GetValue() any

func (*Validation) MarshalUnionNDR

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

func (*Validation) NDRSwitchValue

func (o *Validation) NDRSwitchValue(sw uint16) uint16

func (*Validation) UnmarshalUnionNDR

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

type ValidationGenericInfo2

type ValidationGenericInfo2 struct {
	// DataLength: An integer value that contains the length of the data referenced by ValidationData,
	// in bytes.
	DataLength uint32 `idl:"name:DataLength" json:"data_length"`
	// ValidationData: A pointer to a buffer that contains the logon validation information.
	ValidationData []byte `idl:"name:ValidationData;size_is:(DataLength)" json:"validation_data"`
}

ValidationGenericInfo2 structure represents NETLOGON_VALIDATION_GENERIC_INFO2 RPC structure.

The NETLOGON_VALIDATION_GENERIC_INFO2 structure defines a structure that contains account information in binary format. This structure is used by authentication protocols to return generic account information upon successful logon validation. For an example of using the NETLOGON_VALIDATION_GENERIC_INFO2 structure, see any of the examples in [MS-APDS].

func (*ValidationGenericInfo2) MarshalNDR

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

func (*ValidationGenericInfo2) UnmarshalNDR

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

type ValidationInfoClass

type ValidationInfoClass uint16

ValidationInfoClass type represents NETLOGON_VALIDATION_INFO_CLASS RPC enumeration.

The NETLOGON_VALIDATION_INFO_CLASS enumeration SHOULD<49> select the type of logon information block being used.

var (
	// NetlogonValidationUasInfo: Associated structure is NETLOGON_VALIDATION_UAS_INFO (section
	// 2.2.1.8.1).
	ValidationInfoClassUASInfo ValidationInfoClass = 1
	// NetlogonValidationSamInfo: Associated structure is NETLOGON_VALIDATION_SAM_INFO (section
	// 2.2.1.4.11).
	ValidationInfoClassSAMInfo ValidationInfoClass = 2
	// NetlogonValidationSamInfo2: Associated structure is NETLOGON_VALIDATION_SAM_INFO2
	// (section 2.2.1.4.12).
	ValidationInfoClassSAMInfo2 ValidationInfoClass = 3
	// NetlogonValidationGenericInfo: Associated structure is NETLOGON_VALIDATION_GENERIC_INFO2
	// (section 2.2.1.4.8).
	ValidationInfoClassGenericInfo ValidationInfoClass = 4
	// NetlogonValidationGenericInfo2: Associated structure is NETLOGON_VALIDATION_GENERIC_INFO2.
	ValidationInfoClassGenericInfo2 ValidationInfoClass = 5
	// NetlogonValidationSamInfo4: Associated structure is NETLOGON_VALIDATION_SAM_INFO4
	// (section 2.2.1.4.13).
	ValidationInfoClassSAMInfo4 ValidationInfoClass = 6
)

func (ValidationInfoClass) String

func (o ValidationInfoClass) String() string

type ValidationSAMInfo

type ValidationSAMInfo struct {
	LogonTime          *OldLargeInteger    `idl:"name:LogonTime" json:"logon_time"`
	LogoffTime         *OldLargeInteger    `idl:"name:LogoffTime" json:"logoff_time"`
	KickOffTime        *OldLargeInteger    `idl:"name:KickOffTime" json:"kick_off_time"`
	PasswordLastSet    *OldLargeInteger    `idl:"name:PasswordLastSet" json:"password_last_set"`
	PasswordCanChange  *OldLargeInteger    `idl:"name:PasswordCanChange" json:"password_can_change"`
	PasswordMustChange *OldLargeInteger    `idl:"name:PasswordMustChange" json:"password_must_change"`
	EffectiveName      *dtyp.UnicodeString `idl:"name:EffectiveName" json:"effective_name"`
	FullName           *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"`
	LogonScript        *dtyp.UnicodeString `idl:"name:LogonScript" json:"logon_script"`
	ProfilePath        *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"`
	HomeDirectory      *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"`
	HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"`
	LogonCount         uint16              `idl:"name:LogonCount" json:"logon_count"`
	BadPasswordCount   uint16              `idl:"name:BadPasswordCount" json:"bad_password_count"`
	UserID             uint32              `idl:"name:UserId" json:"user_id"`
	PrimaryGroupID     uint32              `idl:"name:PrimaryGroupId" json:"primary_group_id"`
	GroupCount         uint32              `idl:"name:GroupCount" json:"group_count"`
	GroupIDs           []*GroupMembership  `idl:"name:GroupIds;size_is:(GroupCount)" json:"group_ids"`
	UserFlags          uint32              `idl:"name:UserFlags" json:"user_flags"`
	UserSessionKey     *UserSessionKey     `idl:"name:UserSessionKey" json:"user_session_key"`
	// LogonServer: An RPC_UNICODE_STRING structure (defined in [MS-DTYP] section 2.3.10)
	// that contains the NetBIOS name of the server that populates this structure.
	LogonServer     *dtyp.UnicodeString `idl:"name:LogonServer" json:"logon_server"`
	LogonDomainName *dtyp.UnicodeString `idl:"name:LogonDomainName" json:"logon_domain_name"`
	LogonDomainID   *dtyp.SID           `idl:"name:LogonDomainId" json:"logon_domain_id"`
	// ExpansionRoom: A ten-element array of unsigned 32-bit integers. This member has a
	// function similar to that of dummy fields, as detailed in section 1.3.8.1.2. Each
	// element of the array MUST be zero when sent and MUST be ignored on receipt.
	ExpansionRoom []uint32 `idl:"name:ExpansionRoom" json:"expansion_room"`
}

ValidationSAMInfo structure represents NETLOGON_VALIDATION_SAM_INFO RPC structure.

The NETLOGON_VALIDATION_SAM_INFO structure defines account information retrieved from a database upon a successful user logon validation.

All fields of this structure, except the fields detailed following the structure definition, have the same meaning as the identically named fields in the KERB_VALIDATION_INFO structure, as specified in [MS-PAC] section 2.5. Additionally, fields of this structure that are defined as OLD_LARGE_INTEGER [MSDN-OLI] are 64-bit timestamps equivalent to the identically named fields in the KERB_VALIDATION_INFO structure of FILETIME type ([MS-DTYP] section 2.3.3). For more information see [MSDN-FILETIME].

func (*ValidationSAMInfo) MarshalNDR

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

func (*ValidationSAMInfo) UnmarshalNDR

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

type ValidationSAMInfo2

type ValidationSAMInfo2 struct {
	LogonTime          *OldLargeInteger    `idl:"name:LogonTime" json:"logon_time"`
	LogoffTime         *OldLargeInteger    `idl:"name:LogoffTime" json:"logoff_time"`
	KickOffTime        *OldLargeInteger    `idl:"name:KickOffTime" json:"kick_off_time"`
	PasswordLastSet    *OldLargeInteger    `idl:"name:PasswordLastSet" json:"password_last_set"`
	PasswordCanChange  *OldLargeInteger    `idl:"name:PasswordCanChange" json:"password_can_change"`
	PasswordMustChange *OldLargeInteger    `idl:"name:PasswordMustChange" json:"password_must_change"`
	EffectiveName      *dtyp.UnicodeString `idl:"name:EffectiveName" json:"effective_name"`
	FullName           *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"`
	LogonScript        *dtyp.UnicodeString `idl:"name:LogonScript" json:"logon_script"`
	ProfilePath        *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"`
	HomeDirectory      *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"`
	HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"`
	LogonCount         uint16              `idl:"name:LogonCount" json:"logon_count"`
	BadPasswordCount   uint16              `idl:"name:BadPasswordCount" json:"bad_password_count"`
	UserID             uint32              `idl:"name:UserId" json:"user_id"`
	PrimaryGroupID     uint32              `idl:"name:PrimaryGroupId" json:"primary_group_id"`
	GroupCount         uint32              `idl:"name:GroupCount" json:"group_count"`
	GroupIDs           []*GroupMembership  `idl:"name:GroupIds;size_is:(GroupCount)" json:"group_ids"`
	UserFlags          uint32              `idl:"name:UserFlags" json:"user_flags"`
	UserSessionKey     *UserSessionKey     `idl:"name:UserSessionKey" json:"user_session_key"`
	// LogonServer: An RPC_UNICODE_STRING structure that contains the NetBIOS name of the
	// server that populates this structure.
	LogonServer     *dtyp.UnicodeString `idl:"name:LogonServer" json:"logon_server"`
	LogonDomainName *dtyp.UnicodeString `idl:"name:LogonDomainName" json:"logon_domain_name"`
	LogonDomainID   *dtyp.SID           `idl:"name:LogonDomainId" json:"logon_domain_id"`
	// ExpansionRoom: A ten-element array of unsigned 32-bit integers. This member has a
	// function similar to that of dummy fields, as described in section 1.3.8.1.2. Each
	// element of the array MUST be zero when sent and MUST be ignored on receipt.
	ExpansionRoom []uint32            `idl:"name:ExpansionRoom" json:"expansion_room"`
	SIDCount      uint32              `idl:"name:SidCount" json:"sid_count"`
	ExtraSIDs     []*SIDAndAttributes `idl:"name:ExtraSids;size_is:(SidCount)" json:"extra_sids"`
}

ValidationSAMInfo2 structure represents NETLOGON_VALIDATION_SAM_INFO2 RPC structure.

The NETLOGON_VALIDATION_SAM_INFO2 structure is an extension to NETLOGON_VALIDATION_SAM_INFO, as specified in section 2.2.1.4.11, with support for storing extra SIDs.

All fields of this structure, except the fields detailed following the structure definition, have the same meaning as the identically named fields in the KERB_VALIDATION_INFO structure as specified in [MS-PAC] section 2.5. Additionally, fields of this structure that are defined as OLD_LARGE_INTEGER are 64-bit timestamps equivalent to the identically named fields in the KERB_VALIDATION_INFO structure of FILETIME type ([MS-DTYP] section 2.3.3).

func (*ValidationSAMInfo2) MarshalNDR

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

func (*ValidationSAMInfo2) UnmarshalNDR

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

type ValidationSAMInfo4

type ValidationSAMInfo4 struct {
	LogonTime          *OldLargeInteger    `idl:"name:LogonTime" json:"logon_time"`
	LogoffTime         *OldLargeInteger    `idl:"name:LogoffTime" json:"logoff_time"`
	KickOffTime        *OldLargeInteger    `idl:"name:KickOffTime" json:"kick_off_time"`
	PasswordLastSet    *OldLargeInteger    `idl:"name:PasswordLastSet" json:"password_last_set"`
	PasswordCanChange  *OldLargeInteger    `idl:"name:PasswordCanChange" json:"password_can_change"`
	PasswordMustChange *OldLargeInteger    `idl:"name:PasswordMustChange" json:"password_must_change"`
	EffectiveName      *dtyp.UnicodeString `idl:"name:EffectiveName" json:"effective_name"`
	FullName           *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"`
	LogonScript        *dtyp.UnicodeString `idl:"name:LogonScript" json:"logon_script"`
	ProfilePath        *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"`
	HomeDirectory      *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"`
	HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"`
	LogonCount         uint16              `idl:"name:LogonCount" json:"logon_count"`
	BadPasswordCount   uint16              `idl:"name:BadPasswordCount" json:"bad_password_count"`
	UserID             uint32              `idl:"name:UserId" json:"user_id"`
	PrimaryGroupID     uint32              `idl:"name:PrimaryGroupId" json:"primary_group_id"`
	GroupCount         uint32              `idl:"name:GroupCount" json:"group_count"`
	GroupIDs           []*GroupMembership  `idl:"name:GroupIds;size_is:(GroupCount)" json:"group_ids"`
	UserFlags          uint32              `idl:"name:UserFlags" json:"user_flags"`
	UserSessionKey     *UserSessionKey     `idl:"name:UserSessionKey" json:"user_session_key"`
	// LogonServer: An RPC_UNICODE_STRING structure that contains the NetBIOS name of the
	// server that populates this structure.
	LogonServer     *dtyp.UnicodeString `idl:"name:LogonServer" json:"logon_server"`
	LogonDomainName *dtyp.UnicodeString `idl:"name:LogonDomainName" json:"logon_domain_name"`
	LogonDomainID   *dtyp.SID           `idl:"name:LogonDomainId" json:"logon_domain_id"`
	// LMKey: Contains the first 8 bytes of the LMOWF ([MS-NLMP] section 3.3.1) if NTLMV1
	// is used, or the first 8 bytes of the KXKEY ([MS-NLMP] section 3.4.5.1) if NTLMV2
	// is used.
	LMKey                []byte           `idl:"name:LMKey" json:"lm_key"`
	UserAccountControl   uint32           `idl:"name:UserAccountControl" json:"user_account_control"`
	SubAuthStatus        uint32           `idl:"name:SubAuthStatus" json:"sub_auth_status"`
	LastSuccessfulILogon *OldLargeInteger `idl:"name:LastSuccessfulILogon" json:"last_successful_i_logon"`
	LastFailedILogon     *OldLargeInteger `idl:"name:LastFailedILogon" json:"last_failed_i_logon"`
	FailedILogonCount    uint32           `idl:"name:FailedILogonCount" json:"failed_i_logon_count"`

	SIDCount  uint32              `idl:"name:SidCount" json:"sid_count"`
	ExtraSIDs []*SIDAndAttributes `idl:"name:ExtraSids;size_is:(SidCount)" json:"extra_sids"`
	// DnsLogonDomainName: Contains the FQDN of the domain of the user account.
	DNSLogonDomainName *dtyp.UnicodeString `idl:"name:DnsLogonDomainName" json:"dns_logon_domain_name"`
	// Upn: Contains the user principal name (UPN).
	UPN *dtyp.UnicodeString `idl:"name:Upn" json:"upn"`
	// ExpansionString1: A STRING structure, defined in section 2.2.1.1.2, that MUST contain
	// 0 for the Length field, 0 for the MaximumLength field, and NULL for the Buffer field.
	// It is ignored upon receipt. Expansion strings have a function similar to that of
	// dummy fields, as described in section 1.3.8.1.2.
	ExpansionString1 *dtyp.UnicodeString `idl:"name:ExpansionString1" json:"expansion_string1"`
	// ExpansionString2: See definition for ExpansionString1.
	ExpansionString2 *dtyp.UnicodeString `idl:"name:ExpansionString2" json:"expansion_string2"`
	// ExpansionString3: See definition for ExpansionString1.
	ExpansionString3 *dtyp.UnicodeString `idl:"name:ExpansionString3" json:"expansion_string3"`
	// ExpansionString4: See definition for ExpansionString1.
	ExpansionString4 *dtyp.UnicodeString `idl:"name:ExpansionString4" json:"expansion_string4"`
	// ExpansionString5: See definition for ExpansionString1.
	ExpansionString5 *dtyp.UnicodeString `idl:"name:ExpansionString5" json:"expansion_string5"`
	// ExpansionString6: See definition for ExpansionString1.
	ExpansionString6 *dtyp.UnicodeString `idl:"name:ExpansionString6" json:"expansion_string6"`
	// ExpansionString7: See definition for ExpansionString1.
	ExpansionString7 *dtyp.UnicodeString `idl:"name:ExpansionString7" json:"expansion_string7"`
	// ExpansionString8: See definition for ExpansionString1.
	ExpansionString8 *dtyp.UnicodeString `idl:"name:ExpansionString8" json:"expansion_string8"`
	// ExpansionString9: See definition for ExpansionString1.
	ExpansionString9 *dtyp.UnicodeString `idl:"name:ExpansionString9" json:"expansion_string9"`
	// ExpansionString10: See definition for ExpansionString1.
	ExpansionString10 *dtyp.UnicodeString `idl:"name:ExpansionString10" json:"expansion_string10"`
	// contains filtered or unexported fields
}

ValidationSAMInfo4 structure represents NETLOGON_VALIDATION_SAM_INFO4 RPC structure.

The NETLOGON_VALIDATION_SAM_INFO4 structure extends NETLOGON_VALIDATION_SAM_INFO2, as specified in section 2.2.1.4.12, by storing the FQDN of the domain of the user account and the user principal.

All fields of this structure, except the fields detailed following the structure definition, have the same meaning as the identically named fields in the KERB_VALIDATION_INFO structure, as specified in [MS-PAC] section 2.5. Additionally, fields of this structure that are defined as OLD_LARGE_INTEGER are 64-bit timestamps equivalent to the identically named fields in the KERB_VALIDATION_INFO structure of FILETIME type ([MS-DTYP] section 2.3.3).

func (*ValidationSAMInfo4) MarshalNDR

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

func (*ValidationSAMInfo4) UnmarshalNDR

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

type ValidationUASInfo

type ValidationUASInfo struct {
	EffectiveName      string `idl:"name:usrlog1_eff_name;string" json:"effective_name"`
	Priv               uint32 `idl:"name:usrlog1_priv" json:"priv"`
	AuthFlags          uint32 `idl:"name:usrlog1_auth_flags" json:"auth_flags"`
	NumLogons          uint32 `idl:"name:usrlog1_num_logons" json:"num_logons"`
	BadPasswordCount   uint32 `idl:"name:usrlog1_bad_pw_count" json:"bad_password_count"`
	LastLogon          uint32 `idl:"name:usrlog1_last_logon" json:"last_logon"`
	LastLogoff         uint32 `idl:"name:usrlog1_last_logoff" json:"last_logoff"`
	LogoffTime         uint32 `idl:"name:usrlog1_logoff_time" json:"logoff_time"`
	KickoffTime        uint32 `idl:"name:usrlog1_kickoff_time" json:"kickoff_time"`
	PasswordAge        uint32 `idl:"name:usrlog1_password_age" json:"password_age"`
	PasswordCanChange  uint32 `idl:"name:usrlog1_pw_can_change" json:"password_can_change"`
	PasswordMustChange uint32 `idl:"name:usrlog1_pw_must_change" json:"password_must_change"`
	Computer           string `idl:"name:usrlog1_computer;string" json:"computer"`
	Domain             string `idl:"name:usrlog1_domain;string" json:"domain"`
	ScriptPath         string `idl:"name:usrlog1_script_path;string" json:"script_path"`
	// contains filtered or unexported fields
}

ValidationUASInfo structure represents NETLOGON_VALIDATION_UAS_INFO RPC structure.

The NETLOGON_VALIDATION_UAS_INFO structure was for the support of LAN Manager products and is beyond the scope of this document.

func (*ValidationUASInfo) MarshalNDR

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

func (*ValidationUASInfo) UnmarshalNDR

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

type Validation_DefaultValidation

type Validation_DefaultValidation struct {
}

Validation_DefaultValidation structure represents NETLOGON_VALIDATION RPC default union arm.

func (*Validation_DefaultValidation) MarshalNDR

func (*Validation_DefaultValidation) UnmarshalNDR

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

type Validation_Generic2

type Validation_Generic2 struct {
	// ValidationGeneric2: This field is selected when the validation information type is
	// NetlogonValidationGenericInfo2. The selected data type is NETLOGON_VALIDATION_GENERIC_INFO2,
	// as specified in section 2.2.1.4.8.
	ValidationGeneric2 *ValidationGenericInfo2 `idl:"name:ValidationGeneric2" json:"validation_generic2"`
}

Validation_Generic2 structure represents NETLOGON_VALIDATION RPC union arm.

It has following labels: 5

func (*Validation_Generic2) MarshalNDR

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

func (*Validation_Generic2) UnmarshalNDR

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

type Validation_SAM

type Validation_SAM struct {
	// ValidationSam: This field is selected when the validation information type is NetlogonValidationSamInfo.
	// The selected data type is NETLOGON_VALIDATION_SAM_INFO, as specified in section 2.2.1.4.11.
	ValidationSAM *ValidationSAMInfo `idl:"name:ValidationSam" json:"validation_sam"`
}

Validation_SAM structure represents NETLOGON_VALIDATION RPC union arm.

It has following labels: 2

func (*Validation_SAM) MarshalNDR

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

func (*Validation_SAM) UnmarshalNDR

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

type Validation_SAM2

type Validation_SAM2 struct {
	// ValidationSam2: This field is selected when the validation information type is NetlogonValidationSamInfo2.
	// The selected data type is NETLOGON_VALIDATION_SAM_INFO2, as specified in section
	// 2.2.1.4.12.
	ValidationSAM2 *ValidationSAMInfo2 `idl:"name:ValidationSam2" json:"validation_sam2"`
}

Validation_SAM2 structure represents NETLOGON_VALIDATION RPC union arm.

It has following labels: 3

func (*Validation_SAM2) MarshalNDR

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

func (*Validation_SAM2) UnmarshalNDR

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

type Validation_SAM4

type Validation_SAM4 struct {
	// ValidationSam4: This field is selected when the validation information type is NetlogonValidationSamInfo4.
	// The selected data type is NETLOGON_VALIDATION_SAM_INFO4, as specified in section
	// 2.2.1.4.13.
	ValidationSAM4 *ValidationSAMInfo4 `idl:"name:ValidationSam4" json:"validation_sam4"`
}

Validation_SAM4 structure represents NETLOGON_VALIDATION RPC union arm.

It has following labels: 6

func (*Validation_SAM4) MarshalNDR

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

func (*Validation_SAM4) UnmarshalNDR

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

type WorkstationInfo

type WorkstationInfo struct {
	// LsaPolicy: A NETLOGON_LSA_POLICY_INFO structure, as specified in section 2.2.1.3.5,
	// that contains the LSA policy for this domain.
	LSAPolicy *LSAPolicyInfo `idl:"name:LsaPolicy" json:"lsa_policy"`
	// DnsHostName: A null-terminated Unicode string that contains the DNS host name of
	// the client.
	DNSHostName string `idl:"name:DnsHostName;string" json:"dns_host_name"`
	// SiteName: A null-terminated Unicode string that contains the name of the site where
	// the workstation resides.
	SiteName string `idl:"name:SiteName;string" json:"site_name"`

	// OsVersion: An RPC_UNICODE_STRING structure (as defined in [MS-DTYP] section 2.3.10)
	// in which the Length and MaximumLength fields are set to the size of an OSVERSIONINFOEX
	// structure and the Buffer field points to an OSVERSIONINFOEX ([MS-RPRN] section 2.2.3.10.2)
	// structure. OsVersion contains the version number of the operating system installed
	// on the client machine.
	OSVersion *dtyp.UnicodeString `idl:"name:OsVersion" json:"os_version"`
	// OsName: A null-terminated Unicode string that SHOULD<21> contain the name of the
	// operating system installed on the client machine. The DC that receives this data
	// structure updates the operatingSystem attribute of the client's machine account object
	// in Active Directory, as specified in [MS-ADA3] section 2.53.
	OSName *dtyp.UnicodeString `idl:"name:OsName" json:"os_name"`

	// WorkstationFlags: A set of bit flags specifying workstation behavior. A flag is TRUE
	// (or set) if its value is equal to 1. The value is constructed from zero or more bit
	// flags from the following table.
	//
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 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 |   |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//	| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | B | A |
	//	+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
	//
	// Where the bits are defined as:
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                   DESCRIPTION                                    |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| A     | Client will receive inbound trusts as specified in [MS-LSAD] section 2.2.7.9.    |
	//	|       | The client sets this bit in order to receive the inbound trusts.                 |
	//	+-------+----------------------------------------------------------------------------------+
	//	| B     | Client handles the update of the service principal name (SPN).                   |
	//	+-------+----------------------------------------------------------------------------------+
	WorkstationFlags uint32 `idl:"name:WorkstationFlags" json:"workstation_flags"`
	// KerberosSupportedEncryptionTypes: The msDS-SupportedEncryptionTypes attribute of
	// the client's machine account object in Active Directory, as specified in [MS-ADA2]
	// section 2.473.<22>
	KerberosSupportedEncryptionTypes uint32 `idl:"name:KerberosSupportedEncryptionTypes" json:"kerberos_supported_encryption_types"`
	// contains filtered or unexported fields
}

WorkstationInfo structure represents NETLOGON_WORKSTATION_INFO RPC structure.

The NETLOGON_WORKSTATION_INFO structure defines information passed into the NetrLogonGetDomainInfo method, as specified in 3.5.4.4.9. It SHOULD<20> be used to convey information about a member workstation from the client side to the server side.

func (*WorkstationInfo) MarshalNDR

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

func (*WorkstationInfo) UnmarshalNDR

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

type WorkstationInformation

type WorkstationInformation struct {
	// Types that are assignable to Value
	//
	// *WorkstationInformation_WorkstationInfo
	// *WorkstationInformation_LSAPolicyInfo
	Value is_WorkstationInformation `json:"value"`
}

WorkstationInformation structure represents NETLOGON_WORKSTATION_INFORMATION RPC union.

The NETLOGON_WORKSTATION_INFO structure defines information passed into the NetrLogonGetDomainInfo method, as specified in 3.5.4.4.9. It SHOULD<20> be used to convey information about a member workstation from the client side to the server side.

func (*WorkstationInformation) GetValue

func (o *WorkstationInformation) GetValue() any

func (*WorkstationInformation) MarshalUnionNDR

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

func (*WorkstationInformation) NDRSwitchValue

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

func (*WorkstationInformation) UnmarshalUnionNDR

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

type WorkstationInformation_LSAPolicyInfo

type WorkstationInformation_LSAPolicyInfo struct {
	LSAPolicyInfo *WorkstationInfo `idl:"name:LsaPolicyInfo" json:"lsa_policy_info"`
}

WorkstationInformation_LSAPolicyInfo structure represents NETLOGON_WORKSTATION_INFORMATION RPC union arm.

It has following labels: 2

func (*WorkstationInformation_LSAPolicyInfo) MarshalNDR

func (*WorkstationInformation_LSAPolicyInfo) UnmarshalNDR

type WorkstationInformation_WorkstationInfo

type WorkstationInformation_WorkstationInfo struct {
	WorkstationInfo *WorkstationInfo `idl:"name:WorkstationInfo" json:"workstation_info"`
}

WorkstationInformation_WorkstationInfo structure represents NETLOGON_WORKSTATION_INFORMATION RPC union arm.

It has following labels: 1

func (*WorkstationInformation_WorkstationInfo) MarshalNDR

func (*WorkstationInformation_WorkstationInfo) UnmarshalNDR

Jump to

Keyboard shortcuts

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