msnrpc
import "github.com/TheManticoreProject/Manticore/windows/protocols/ms-nrpc"
Package msnrpc holds the NDR wire structures of the Netlogon Remote Protocol ([MS-NRPC], interface 12345678-1234-abcd-ef00-01234567cffb version 1.0).
Index
- Constants
- type CYPHER_BLOCK
- type DOMAIN_CONTROLLER_INFOW
- type DOMAIN_NAME_BUFFER
- type DS_DOMAIN_TRUSTSW
- type ENCRYPTED_LM_OWF_PASSWORD
- type ENCRYPTED_NT_OWF_PASSWORD
- type GROUP_MEMBERSHIP
- type LM_CHALLENGE
- type LM_OWF_PASSWORD
- type LSA_FOREST_TRUST_BINARY_DATA
- type LSA_FOREST_TRUST_DOMAIN_INFO
- type LSA_FOREST_TRUST_INFORMATION
- type LSA_FOREST_TRUST_RECORD
- type LSA_FOREST_TRUST_RECORD_ForestTrustData
- type LSA_FOREST_TRUST_RECORD_TYPE
- type LSA_UNICODE_STRING
- type NETLOGON_AUTHENTICATOR
- type NETLOGON_CAPABILITIES
- type NETLOGON_CONTROL_DATA_INFORMATION
- type NETLOGON_CONTROL_QUERY_INFORMATION
- type NETLOGON_CREDENTIAL
- type NETLOGON_DELTA_ACCOUNTS
- type NETLOGON_DELTA_ALIAS
- type NETLOGON_DELTA_ALIAS_MEMBER
- type NETLOGON_DELTA_DELETE_GROUP
- type NETLOGON_DELTA_DELETE_USER
- type NETLOGON_DELTA_DOMAIN
- type NETLOGON_DELTA_ENUM
- type NETLOGON_DELTA_ENUM_ARRAY
- type NETLOGON_DELTA_GROUP
- type NETLOGON_DELTA_GROUP_MEMBER
- type NETLOGON_DELTA_ID_UNION
- type NETLOGON_DELTA_POLICY
- type NETLOGON_DELTA_SECRET
- type NETLOGON_DELTA_TRUSTED_DOMAINS
- type NETLOGON_DELTA_TYPE
- type NETLOGON_DELTA_UNION
- type NETLOGON_DELTA_USER
- type NETLOGON_DOMAIN_INFO
- type NETLOGON_DOMAIN_INFORMATION
- type NETLOGON_GENERIC_INFO
- type NETLOGON_INFO_1
- type NETLOGON_INFO_2
- type NETLOGON_INFO_3
- type NETLOGON_INFO_4
- type NETLOGON_INTERACTIVE_INFO
- type NETLOGON_LEVEL
- type NETLOGON_LOGOFF_UAS_INFO
- type NETLOGON_LOGON_IDENTITY_INFO
- type NETLOGON_LOGON_INFO_CLASS
- type NETLOGON_LSA_POLICY_INFO
- type NETLOGON_NETWORK_INFO
- type NETLOGON_ONE_DOMAIN_INFO
- type NETLOGON_RENAME_ALIAS
- type NETLOGON_RENAME_GROUP
- type NETLOGON_RENAME_USER
- type NETLOGON_SECURE_CHANNEL_TYPE
- type NETLOGON_SERVICE_INFO
- type NETLOGON_SID_AND_ATTRIBUTES
- type NETLOGON_TICKET_LOGON_INFO
- type NETLOGON_TRUSTED_DOMAIN_ARRAY
- type NETLOGON_VALIDATION
- type NETLOGON_VALIDATION_GENERIC_INFO2
- type NETLOGON_VALIDATION_INFO_CLASS
- type NETLOGON_VALIDATION_SAM_INFO
- type NETLOGON_VALIDATION_SAM_INFO2
- type NETLOGON_VALIDATION_SAM_INFO4
- type NETLOGON_VALIDATION_TICKET_LOGON
- type NETLOGON_VALIDATION_UAS_INFO
- type NETLOGON_WORKSTATION_INFO
- type NETLOGON_WORKSTATION_INFORMATION
- type NLPR_CR_CIPHER_VALUE
- type NLPR_LOGON_HOURS
- type NLPR_MODIFIED_COUNT
- type NLPR_QUOTA_LIMITS
- type NLPR_SID_ARRAY
- type NLPR_SID_INFORMATION
- type NLPR_USER_PRIVATE_INFO
- type NL_AUTH_MESSAGE
- type NL_AUTH_SHA2_SIGNATURE
- type NL_AUTH_SIGNATURE
- type NL_DNS_NAME_INFO
- type NL_DNS_NAME_INFO_ARRAY
- type NL_GENERIC_RPC_DATA
- type NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES
- type NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1
- type NL_OSVERSIONINFO_V1
- type NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES
- type NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1
- type NL_PASSWORD_VERSION
- type NL_SITE_NAME_ARRAY
- type NL_SITE_NAME_EX_ARRAY
- type NL_SOCKET_ADDRESS
- type NL_TRUST_PASSWORD
- type NT_OWF_PASSWORD
- type OLD_LARGE_INTEGER
- type STRING
- type SYNC_STATE
- type UAS_INFO_0
- type UNICODE_STRING
- type USER_SESSION_KEY
Constants
NL_AUTH_MESSAGE message types and flag bits ([MS-NRPC] 2.2.1.3.1). The client sends a request message in the RPC bind auth_value; the server replies with a response message in the bind_ack. The flags describe which name fields the Buffer carries, in the fixed order NetBIOS domain, NetBIOS host, DNS domain, DNS host, then (last) the UTF-8 NetBIOS host.
const (
NlAuthMessageNetbiosDomain uint32 = 0x00000001
NlAuthMessageNetbiosHost uint32 = 0x00000002
NlAuthMessageDNSDomain uint32 = 0x00000004
NlAuthMessageDNSHost uint32 = 0x00000008
NlAuthMessageNetbiosHostUTF8 uint32 = 0x00000010
NlAuthMessageTypeRequest uint32 = 0x00000000
NlAuthMessageTypeResponse uint32 = 0x00000001
)
Netlogon signature and seal algorithm identifiers ([MS-NRPC] 2.2.1.3.2/2.2.1.3.3), the 16-bit little-endian values placed in the SignatureAlgorithm and SealAlgorithm fields of the per-message tokens. HMAC-SHA256/AES-128 are the AES-negotiated pair; HMAC-MD5/RC4 the legacy pair. NlSealNotEncrypted marks an integrity-only (signed, not sealed) token, in which case the Confounder is omitted from the wire structure.
const (
NlSignatureHMACMD5 uint16 = 0x0077 // HMAC-MD5 (legacy)
NlSignatureHMACSHA256 uint16 = 0x0013 // HMAC-SHA256 (AES)
NlSealNotEncrypted uint16 = 0xffff // not sealed; Confounder absent
NlSealRC4 uint16 = 0x007a // RC4 (legacy)
NlSealAES128 uint16 = 0x001a // AES-128 CFB8
)
type CYPHER\_BLOCK
CYPHER_BLOCK ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type CYPHER_BLOCK struct {
Data [8]int8
}
type DOMAIN\_CONTROLLER\_INFOW
DOMAIN_CONTROLLER_INFOW ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type DOMAIN_CONTROLLER_INFOW struct {
DomainControllerName *ndr.WSTR `ndr:"unique"`
DomainControllerAddress *ndr.WSTR `ndr:"unique"`
DomainControllerAddressType ndr.DWORD
DomainGuid guid.GUID
DomainName *ndr.WSTR `ndr:"unique"`
DnsForestName *ndr.WSTR `ndr:"unique"`
Flags ndr.DWORD
DcSiteName *ndr.WSTR `ndr:"unique"`
ClientSiteName *ndr.WSTR `ndr:"unique"`
}
type DOMAIN\_NAME\_BUFFER
DOMAIN_NAME_BUFFER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type DOMAIN_NAME_BUFFER struct {
DomainNameByteCount ndr.DWORD
DomainNames []uint8 `ndr:"unique,size_is=DomainNameByteCount"`
}
type DS\_DOMAIN\_TRUSTSW
DS_DOMAIN_TRUSTSW ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type DS_DOMAIN_TRUSTSW struct {
NetbiosDomainName *ndr.WSTR `ndr:"unique"`
DnsDomainName *ndr.WSTR `ndr:"unique"`
Flags ndr.DWORD
ParentIndex ndr.DWORD
TrustType ndr.DWORD
TrustAttributes ndr.DWORD
DomainSid *msdtyp.RPC_SID `ndr:"unique"`
DomainGuid guid.GUID
}
type ENCRYPTED\_LM\_OWF\_PASSWORD
ENCRYPTED_LM_OWF_PASSWORD is an alias for LM_OWF_PASSWORD (same IDL typedef).
type ENCRYPTED_LM_OWF_PASSWORD = LM_OWF_PASSWORD
type ENCRYPTED\_NT\_OWF\_PASSWORD
ENCRYPTED_NT_OWF_PASSWORD is an alias for NT_OWF_PASSWORD (same IDL typedef).
type ENCRYPTED_NT_OWF_PASSWORD = NT_OWF_PASSWORD
type GROUP\_MEMBERSHIP
GROUP_MEMBERSHIP ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type GROUP_MEMBERSHIP struct {
RelativeId ndr.DWORD
Attributes ndr.DWORD
}
type LM\_CHALLENGE
LM_CHALLENGE ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type LM_CHALLENGE struct {
Data [8]int8
}
type LM\_OWF\_PASSWORD
LM_OWF_PASSWORD ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type LM_OWF_PASSWORD struct {
Data [2]CYPHER_BLOCK
}
type LSA\_FOREST\_TRUST\_BINARY\_DATA
LSA_FOREST_TRUST_BINARY_DATA ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type LSA_FOREST_TRUST_BINARY_DATA struct {
Length ndr.DWORD
Buffer []uint8 `ndr:"unique,size_is=Length"`
}
type LSA\_FOREST\_TRUST\_DOMAIN\_INFO
LSA_FOREST_TRUST_DOMAIN_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type LSA_FOREST_TRUST_DOMAIN_INFO struct {
Sid *msdtyp.RPC_SID `ndr:"unique"`
DnsName LSA_UNICODE_STRING
NetbiosName LSA_UNICODE_STRING
}
type LSA\_FOREST\_TRUST\_INFORMATION
LSA_FOREST_TRUST_INFORMATION ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type LSA_FOREST_TRUST_INFORMATION struct {
RecordCount ndr.DWORD
Entries []*LSA_FOREST_TRUST_RECORD `ndr:"elem=unique,unique,size_is=RecordCount"`
}
type LSA\_FOREST\_TRUST\_RECORD
LSA_FOREST_TRUST_RECORD ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type LSA_FOREST_TRUST_RECORD struct {
Flags ndr.DWORD
ForestTrustType LSA_FOREST_TRUST_RECORD_TYPE
Time msdtyp.LARGE_INTEGER
ForestTrustData LSA_FOREST_TRUST_RECORD_ForestTrustData
}
type LSA\_FOREST\_TRUST\_RECORD\_ForestTrustData
LSA_FOREST_TRUST_RECORD_ForestTrustData is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type LSA_FOREST_TRUST_RECORD_ForestTrustData struct {
Tag LSA_FOREST_TRUST_RECORD_TYPE `ndr:"switch"`
TopLevelName LSA_UNICODE_STRING `ndr:"case=0"`
DomainInfo LSA_FOREST_TRUST_DOMAIN_INFO `ndr:"case=2"`
Data LSA_FOREST_TRUST_BINARY_DATA `ndr:"default"`
}
type LSA\_FOREST\_TRUST\_RECORD\_TYPE
LSA_FOREST_TRUST_RECORD_TYPE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-NRPC]).
type LSA_FOREST_TRUST_RECORD_TYPE uint16
const (
ForestTrustTopLevelName LSA_FOREST_TRUST_RECORD_TYPE = 0
ForestTrustTopLevelNameEx LSA_FOREST_TRUST_RECORD_TYPE = 1
ForestTrustDomainInfo LSA_FOREST_TRUST_RECORD_TYPE = 2
ForestTrustRecordTypeLast LSA_FOREST_TRUST_RECORD_TYPE = ForestTrustDomainInfo
)
type LSA\_UNICODE\_STRING
LSA_UNICODE_STRING is an alias for UNICODE_STRING ([MS-NRPC]).
type LSA_UNICODE_STRING = UNICODE_STRING
type NETLOGON\_AUTHENTICATOR
NETLOGON_AUTHENTICATOR ([MS-NRPC] 2.2.1.3.5) carries a client/server credential and a timestamp. The 8-byte credential needs no alignment; the ULONG timestamp is 4-aligned, landing at offset 8 (already aligned), for a 12-octet structure.
type NETLOGON_AUTHENTICATOR struct {
Credential NETLOGON_CREDENTIAL
Timestamp uint32
}
type NETLOGON\_CAPABILITIES
NETLOGON_CAPABILITIES is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_CAPABILITIES struct {
Tag ndr.DWORD `ndr:"switch"`
ServerCapabilities ndr.DWORD `ndr:"case=1"`
RequestedFlags ndr.DWORD `ndr:"case=2"`
}
type NETLOGON\_CONTROL\_DATA\_INFORMATION
NETLOGON_CONTROL_DATA_INFORMATION ([MS-NRPC] 2.2.1.7.1) is the switch_type(DWORD) union carrying the input data for NetrLogonControl2/2Ex, selected by the FunctionCode ([C706] 14.3.8).
The IDL maps FunctionCodes 5, 6, 9, 10 to a trusted-domain name and 8 to a user name; because the declarative codec matches one numeric value per `case=` tag, each FunctionCode gets its own field of the same unique[string] type. The [string] wchar_t* arms are NDR strings (*ndr.WSTR), not a single UTF-16 code unit.
type NETLOGON_CONTROL_DATA_INFORMATION struct {
Tag ndr.DWORD `ndr:"switch"`
// TrustedDomainName arm — FunctionCodes 5, 6, 9, 10 ([string] wchar_t*).
TrustedDomainName5 *ndr.WSTR `ndr:"case=5,unique"`
TrustedDomainName6 *ndr.WSTR `ndr:"case=6,unique"`
TrustedDomainName9 *ndr.WSTR `ndr:"case=9,unique"`
TrustedDomainName10 *ndr.WSTR `ndr:"case=10,unique"`
// DebugFlag arm — FunctionCode 65534 (NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL).
DebugFlag ndr.DWORD `ndr:"case=65534"`
// UserName arm — FunctionCode 8 ([string] wchar_t*).
UserName *ndr.WSTR `ndr:"case=8,unique"`
}
type NETLOGON\_CONTROL\_QUERY\_INFORMATION
NETLOGON_CONTROL_QUERY_INFORMATION is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_CONTROL_QUERY_INFORMATION struct {
Tag ndr.DWORD `ndr:"switch"`
NetlogonInfo1 NETLOGON_INFO_1 `ndr:"case=1"`
NetlogonInfo2 NETLOGON_INFO_2 `ndr:"case=2"`
NetlogonInfo3 NETLOGON_INFO_3 `ndr:"case=3"`
NetlogonInfo4 NETLOGON_INFO_4 `ndr:"case=4"`
}
type NETLOGON\_CREDENTIAL
NETLOGON_CREDENTIAL ([MS-NRPC] 2.2.1.3.4) is an opaque 8-octet challenge or credential. The IDL declares it as a struct with a single CHAR data[8] field; on the wire that is a fixed array of 8 bytes with no NDR conformance framing, so a Go [8]byte marshals it exactly while staying ergonomic for the credential cryptography (indexable/sliceable).
type NETLOGON_CREDENTIAL [8]byte
type NETLOGON\_DELTA\_ACCOUNTS
NETLOGON_DELTA_ACCOUNTS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_ACCOUNTS struct {
PrivilegeEntries ndr.DWORD
PrivilegeControl ndr.DWORD
PrivilegeAttributes []ndr.DWORD `ndr:"unique,size_is=PrivilegeEntries"`
PrivilegeNames []UNICODE_STRING `ndr:"unique,size_is=PrivilegeEntries"`
QuotaLimits NLPR_QUOTA_LIMITS
SystemAccessFlags ndr.DWORD
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_ALIAS
NETLOGON_DELTA_ALIAS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_ALIAS struct {
Name UNICODE_STRING
RelativeId ndr.DWORD
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
Comment UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_ALIAS\_MEMBER
NETLOGON_DELTA_ALIAS_MEMBER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_ALIAS_MEMBER struct {
Members NLPR_SID_ARRAY
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_DELETE\_GROUP
NETLOGON_DELTA_DELETE_GROUP ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_DELETE_GROUP struct {
AccountName *ndr.WSTR `ndr:"unique"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_DELETE\_USER
NETLOGON_DELTA_DELETE_USER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_DELETE_USER struct {
AccountName *ndr.WSTR `ndr:"unique"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_DOMAIN
NETLOGON_DELTA_DOMAIN ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_DOMAIN struct {
DomainName UNICODE_STRING
OemInformation UNICODE_STRING
ForceLogoff OLD_LARGE_INTEGER
MinPasswordLength uint16
PasswordHistoryLength uint16
MaxPasswordAge OLD_LARGE_INTEGER
MinPasswordAge OLD_LARGE_INTEGER
DomainModifiedCount OLD_LARGE_INTEGER
DomainCreationTime OLD_LARGE_INTEGER
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
DomainLockoutInformation UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
PasswordProperties ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_ENUM
NETLOGON_DELTA_ENUM ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_ENUM struct {
DeltaType NETLOGON_DELTA_TYPE
DeltaID NETLOGON_DELTA_ID_UNION
DeltaUnion NETLOGON_DELTA_UNION
}
type NETLOGON\_DELTA\_ENUM\_ARRAY
NETLOGON_DELTA_ENUM_ARRAY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_ENUM_ARRAY struct {
CountReturned ndr.DWORD
Deltas []NETLOGON_DELTA_ENUM `ndr:"unique,size_is=CountReturned"`
}
type NETLOGON\_DELTA\_GROUP
NETLOGON_DELTA_GROUP ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_GROUP struct {
Name UNICODE_STRING
RelativeId ndr.DWORD
Attributes ndr.DWORD
AdminComment UNICODE_STRING
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_GROUP\_MEMBER
NETLOGON_DELTA_GROUP_MEMBER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_GROUP_MEMBER struct {
Members []ndr.DWORD `ndr:"unique,size_is=MemberCount"`
Attributes []ndr.DWORD `ndr:"unique,size_is=MemberCount"`
MemberCount ndr.DWORD
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_ID\_UNION
NETLOGON_DELTA_ID_UNION ([MS-NRPC] 2.2.1.5.18) is the discriminated union that identifies the object a NETLOGON_DELTA_ENUM refers to; the discriminant (NETLOGON_DELTA_TYPE) precedes the selected arm ([C706] 14.3.8).
The IDL groups many delta types onto three arms:
- Rid (ULONG) : cases 1-12, 20, 21 (account/group/alias deltas)
- Sid (PRPC_SID) : cases 13-17 (LSA policy/trusted-domain/account deltas)
- Name ([string]*) : cases 18, 19 (LSA secret deltas)
The declarative codec matches a single numeric value per `case=` tag, so each label that maps to an arm needs its own field of that arm’s type; exactly one field is on the wire for a given discriminant. Consumers select the populated field by switching on Tag.
type NETLOGON_DELTA_ID_UNION struct {
Tag NETLOGON_DELTA_TYPE `ndr:"switch"`
// Rid arm — a bare ULONG object relative identifier.
RidAddOrChangeDomain ndr.DWORD `ndr:"case=1"`
RidAddOrChangeGroup ndr.DWORD `ndr:"case=2"`
RidDeleteGroup ndr.DWORD `ndr:"case=3"`
RidRenameGroup ndr.DWORD `ndr:"case=4"`
RidAddOrChangeUser ndr.DWORD `ndr:"case=5"`
RidDeleteUser ndr.DWORD `ndr:"case=6"`
RidRenameUser ndr.DWORD `ndr:"case=7"`
RidChangeGroupMembership ndr.DWORD `ndr:"case=8"`
RidAddOrChangeAlias ndr.DWORD `ndr:"case=9"`
RidDeleteAlias ndr.DWORD `ndr:"case=10"`
RidRenameAlias ndr.DWORD `ndr:"case=11"`
RidChangeAliasMembership ndr.DWORD `ndr:"case=12"`
RidDeleteGroupByName ndr.DWORD `ndr:"case=20"`
RidDeleteUserByName ndr.DWORD `ndr:"case=21"`
// Sid arm — a [unique] pointer to an RPC_SID (IDL PRPC_SID).
SidAddOrChangeLsaPolicy *msdtyp.RPC_SID `ndr:"case=13,unique"`
SidAddOrChangeLsaTDomain *msdtyp.RPC_SID `ndr:"case=14,unique"`
SidDeleteLsaTDomain *msdtyp.RPC_SID `ndr:"case=15,unique"`
SidAddOrChangeLsaAccount *msdtyp.RPC_SID `ndr:"case=16,unique"`
SidDeleteLsaAccount *msdtyp.RPC_SID `ndr:"case=17,unique"`
// Name arm — a [unique][string] wide string (IDL wchar_t*).
NameAddOrChangeLsaSecret *ndr.WSTR `ndr:"case=18,unique"`
NameDeleteLsaSecret *ndr.WSTR `ndr:"case=19,unique"`
}
type NETLOGON\_DELTA\_POLICY
NETLOGON_DELTA_POLICY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_POLICY struct {
MaximumLogSize ndr.DWORD
AuditRetentionPeriod OLD_LARGE_INTEGER
AuditingMode uint8
MaximumAuditEventCount ndr.DWORD
EventAuditingOptions []ndr.DWORD `ndr:"unique,conformant"`
PrimaryDomainName UNICODE_STRING
PrimaryDomainSid *msdtyp.RPC_SID `ndr:"unique"`
QuotaLimits NLPR_QUOTA_LIMITS
ModifiedId OLD_LARGE_INTEGER
DatabaseCreationTime OLD_LARGE_INTEGER
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_SECRET
NETLOGON_DELTA_SECRET ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_SECRET struct {
CurrentValue NLPR_CR_CIPHER_VALUE
CurrentValueSetTime OLD_LARGE_INTEGER
OldValue NLPR_CR_CIPHER_VALUE
OldValueSetTime OLD_LARGE_INTEGER
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_TRUSTED\_DOMAINS
NETLOGON_DELTA_TRUSTED_DOMAINS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_TRUSTED_DOMAINS struct {
DomainName UNICODE_STRING
NumControllerEntries ndr.DWORD
ControllerNames []UNICODE_STRING `ndr:"unique,size_is=NumControllerEntries"`
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
TrustedPosixOffset ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DELTA\_TYPE
NETLOGON_DELTA_TYPE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-NRPC]).
type NETLOGON_DELTA_TYPE uint16
const (
AddOrChangeDomain NETLOGON_DELTA_TYPE = 1
AddOrChangeGroup NETLOGON_DELTA_TYPE = 2
DeleteGroup NETLOGON_DELTA_TYPE = 3
RenameGroup NETLOGON_DELTA_TYPE = 4
AddOrChangeUser NETLOGON_DELTA_TYPE = 5
DeleteUser NETLOGON_DELTA_TYPE = 6
RenameUser NETLOGON_DELTA_TYPE = 7
ChangeGroupMembership NETLOGON_DELTA_TYPE = 8
AddOrChangeAlias NETLOGON_DELTA_TYPE = 9
DeleteAlias NETLOGON_DELTA_TYPE = 10
RenameAlias NETLOGON_DELTA_TYPE = 11
ChangeAliasMembership NETLOGON_DELTA_TYPE = 12
AddOrChangeLsaPolicy NETLOGON_DELTA_TYPE = 13
AddOrChangeLsaTDomain NETLOGON_DELTA_TYPE = 14
DeleteLsaTDomain NETLOGON_DELTA_TYPE = 15
AddOrChangeLsaAccount NETLOGON_DELTA_TYPE = 16
DeleteLsaAccount NETLOGON_DELTA_TYPE = 17
AddOrChangeLsaSecret NETLOGON_DELTA_TYPE = 18
DeleteLsaSecret NETLOGON_DELTA_TYPE = 19
DeleteGroupByName NETLOGON_DELTA_TYPE = 20
DeleteUserByName NETLOGON_DELTA_TYPE = 21
SerialNumberSkip NETLOGON_DELTA_TYPE = 22
)
type NETLOGON\_DELTA\_UNION
NETLOGON_DELTA_UNION is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_DELTA_UNION struct {
Tag NETLOGON_DELTA_TYPE `ndr:"switch"`
DeltaDomain NETLOGON_DELTA_DOMAIN `ndr:"case=1"`
DeltaGroup NETLOGON_DELTA_GROUP `ndr:"case=2"`
DeltaRenameGroup NETLOGON_RENAME_GROUP `ndr:"case=4"`
DeltaUser NETLOGON_DELTA_USER `ndr:"case=5"`
DeltaRenameUser NETLOGON_RENAME_USER `ndr:"case=7"`
DeltaGroupMember NETLOGON_DELTA_GROUP_MEMBER `ndr:"case=8"`
DeltaAlias NETLOGON_DELTA_ALIAS `ndr:"case=9"`
DeltaRenameAlias NETLOGON_RENAME_ALIAS `ndr:"case=11"`
DeltaAliasMember NETLOGON_DELTA_ALIAS_MEMBER `ndr:"case=12"`
DeltaPolicy NETLOGON_DELTA_POLICY `ndr:"case=13"`
DeltaTDomains NETLOGON_DELTA_TRUSTED_DOMAINS `ndr:"case=14"`
DeltaAccounts NETLOGON_DELTA_ACCOUNTS `ndr:"case=16"`
DeltaSecret NETLOGON_DELTA_SECRET `ndr:"case=18"`
DeltaDeleteGroup NETLOGON_DELTA_DELETE_GROUP `ndr:"case=20"`
DeltaDeleteUser NETLOGON_DELTA_DELETE_USER `ndr:"case=21"`
DeltaSerialNumberSkip NLPR_MODIFIED_COUNT `ndr:"case=22"`
}
type NETLOGON\_DELTA\_USER
NETLOGON_DELTA_USER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DELTA_USER struct {
UserName UNICODE_STRING
FullName UNICODE_STRING
UserId ndr.DWORD
PrimaryGroupId ndr.DWORD
HomeDirectory UNICODE_STRING
HomeDirectoryDrive UNICODE_STRING
ScriptPath UNICODE_STRING
AdminComment UNICODE_STRING
WorkStations UNICODE_STRING
LastLogon OLD_LARGE_INTEGER
LastLogoff OLD_LARGE_INTEGER
LogonHours NLPR_LOGON_HOURS
BadPasswordCount uint16
LogonCount uint16
PasswordLastSet OLD_LARGE_INTEGER
AccountExpires OLD_LARGE_INTEGER
UserAccountControl ndr.DWORD
EncryptedNtOwfPassword ENCRYPTED_NT_OWF_PASSWORD
EncryptedLmOwfPassword ENCRYPTED_LM_OWF_PASSWORD
NtPasswordPresent uint8
LmPasswordPresent uint8
PasswordExpired uint8
UserComment UNICODE_STRING
Parameters UNICODE_STRING
CountryCode uint16
CodePage uint16
PrivateData NLPR_USER_PRIVATE_INFO
SecurityInformation ndr.DWORD
SecuritySize ndr.DWORD
SecurityDescriptor []uint8 `ndr:"unique,size_is=SecuritySize"`
ProfilePath UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DOMAIN\_INFO
NETLOGON_DOMAIN_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_DOMAIN_INFO struct {
PrimaryDomain NETLOGON_ONE_DOMAIN_INFO
TrustedDomainCount ndr.DWORD
TrustedDomains []NETLOGON_ONE_DOMAIN_INFO `ndr:"unique,size_is=TrustedDomainCount"`
LsaPolicy NETLOGON_LSA_POLICY_INFO
DnsHostNameInDs UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
WorkstationFlags ndr.DWORD
SupportedEncTypes ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_DOMAIN\_INFORMATION
NETLOGON_DOMAIN_INFORMATION is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_DOMAIN_INFORMATION struct {
Tag ndr.DWORD `ndr:"switch"`
DomainInfo NETLOGON_DOMAIN_INFO `ndr:"case=1"`
LsaPolicyInfo NETLOGON_LSA_POLICY_INFO `ndr:"case=2"`
}
type NETLOGON\_GENERIC\_INFO
NETLOGON_GENERIC_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_GENERIC_INFO struct {
Identity NETLOGON_LOGON_IDENTITY_INFO
PackageName UNICODE_STRING
DataLength ndr.DWORD
LogonData []uint8 `ndr:"unique,size_is=DataLength"`
}
type NETLOGON\_INFO\_1
NETLOGON_INFO_1 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_INFO_1 struct {
Netlog1_flags ndr.DWORD
Netlog1_pdc_connection_status ndr.DWORD
}
type NETLOGON\_INFO\_2
NETLOGON_INFO_2 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_INFO_2 struct {
Netlog2_flags ndr.DWORD
Netlog2_pdc_connection_status ndr.DWORD
Netlog2_trusted_dc_name *ndr.WSTR `ndr:"unique"`
Netlog2_tc_connection_status ndr.DWORD
}
type NETLOGON\_INFO\_3
NETLOGON_INFO_3 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_INFO_3 struct {
Netlog3_flags ndr.DWORD
Netlog3_logon_attempts ndr.DWORD
Netlog3_reserved1 ndr.DWORD
Netlog3_reserved2 ndr.DWORD
Netlog3_reserved3 ndr.DWORD
Netlog3_reserved4 ndr.DWORD
Netlog3_reserved5 ndr.DWORD
}
type NETLOGON\_INFO\_4
NETLOGON_INFO_4 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_INFO_4 struct {
Netlog4_trusted_dc_name *ndr.WSTR `ndr:"unique"`
Netlog4_trusted_domain_name *ndr.WSTR `ndr:"unique"`
}
type NETLOGON\_INTERACTIVE\_INFO
NETLOGON_INTERACTIVE_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_INTERACTIVE_INFO struct {
Identity NETLOGON_LOGON_IDENTITY_INFO
LmOwfPassword LM_OWF_PASSWORD
NtOwfPassword NT_OWF_PASSWORD
}
type NETLOGON\_LEVEL
NETLOGON_LEVEL is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_LEVEL struct {
Tag NETLOGON_LOGON_INFO_CLASS `ndr:"switch"`
LogonInteractive NETLOGON_INTERACTIVE_INFO `ndr:"case=1"`
LogonInteractiveTransitive NETLOGON_INTERACTIVE_INFO `ndr:"case=5"`
LogonService NETLOGON_SERVICE_INFO `ndr:"case=3"`
LogonServiceTransitive NETLOGON_SERVICE_INFO `ndr:"case=7"`
LogonNetwork NETLOGON_NETWORK_INFO `ndr:"case=2"`
LogonNetworkTransitive NETLOGON_NETWORK_INFO `ndr:"case=6"`
LogonGeneric NETLOGON_GENERIC_INFO `ndr:"case=4"`
LogonTicket NETLOGON_TICKET_LOGON_INFO `ndr:"case=8"`
}
type NETLOGON\_LOGOFF\_UAS\_INFO
NETLOGON_LOGOFF_UAS_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_LOGOFF_UAS_INFO struct {
Duration ndr.DWORD
LogonCount uint16
}
type NETLOGON\_LOGON\_IDENTITY\_INFO
NETLOGON_LOGON_IDENTITY_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_LOGON_IDENTITY_INFO struct {
LogonDomainName UNICODE_STRING
ParameterControl ndr.DWORD
Reserved OLD_LARGE_INTEGER
UserName UNICODE_STRING
Workstation UNICODE_STRING
}
type NETLOGON\_LOGON\_INFO\_CLASS
NETLOGON_LOGON_INFO_CLASS is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-NRPC]).
type NETLOGON_LOGON_INFO_CLASS uint16
const (
NetlogonInteractiveInformation NETLOGON_LOGON_INFO_CLASS = 1
NetlogonNetworkInformation NETLOGON_LOGON_INFO_CLASS = 2
NetlogonServiceInformation NETLOGON_LOGON_INFO_CLASS = 3
NetlogonGenericInformation NETLOGON_LOGON_INFO_CLASS = 4
NetlogonInteractiveTransitiveInformation NETLOGON_LOGON_INFO_CLASS = 5
NetlogonNetworkTransitiveInformation NETLOGON_LOGON_INFO_CLASS = 6
NetlogonServiceTransitiveInformation NETLOGON_LOGON_INFO_CLASS = 7
NetlogonTicketLogonInformation NETLOGON_LOGON_INFO_CLASS = 8
)
type NETLOGON\_LSA\_POLICY\_INFO
NETLOGON_LSA_POLICY_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_LSA_POLICY_INFO struct {
LsaPolicySize ndr.DWORD
LsaPolicy []uint8 `ndr:"unique,size_is=LsaPolicySize"`
}
type NETLOGON\_NETWORK\_INFO
NETLOGON_NETWORK_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_NETWORK_INFO struct {
Identity NETLOGON_LOGON_IDENTITY_INFO
LmChallenge LM_CHALLENGE
NtChallengeResponse STRING
LmChallengeResponse STRING
}
type NETLOGON\_ONE\_DOMAIN\_INFO
NETLOGON_ONE_DOMAIN_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_ONE_DOMAIN_INFO struct {
DomainName UNICODE_STRING
DnsDomainName UNICODE_STRING
DnsForestName UNICODE_STRING
DomainGuid guid.GUID
DomainSid *msdtyp.RPC_SID `ndr:"unique"`
TrustExtension UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_RENAME\_ALIAS
NETLOGON_RENAME_ALIAS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_RENAME_ALIAS struct {
OldName UNICODE_STRING
NewName UNICODE_STRING
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_RENAME\_GROUP
NETLOGON_RENAME_GROUP ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_RENAME_GROUP struct {
OldName UNICODE_STRING
NewName UNICODE_STRING
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_RENAME\_USER
NETLOGON_RENAME_USER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_RENAME_USER struct {
OldName UNICODE_STRING
NewName UNICODE_STRING
DummyString1 UNICODE_STRING
DummyString2 UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
DummyLong1 ndr.DWORD
DummyLong2 ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_SECURE\_CHANNEL\_TYPE
NETLOGON_SECURE_CHANNEL_TYPE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-NRPC]).
type NETLOGON_SECURE_CHANNEL_TYPE uint16
const (
NullSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 0
MsvApSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 1
WorkstationSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 2
TrustedDnsDomainSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 3
TrustedDomainSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 4
UasServerSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 5
ServerSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 6
CdcServerSecureChannel NETLOGON_SECURE_CHANNEL_TYPE = 7
)
type NETLOGON\_SERVICE\_INFO
NETLOGON_SERVICE_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_SERVICE_INFO struct {
Identity NETLOGON_LOGON_IDENTITY_INFO
LmOwfPassword LM_OWF_PASSWORD
NtOwfPassword NT_OWF_PASSWORD
}
type NETLOGON\_SID\_AND\_ATTRIBUTES
NETLOGON_SID_AND_ATTRIBUTES ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_SID_AND_ATTRIBUTES struct {
Sid *msdtyp.RPC_SID `ndr:"unique"`
Attributes ndr.DWORD
}
type NETLOGON\_TICKET\_LOGON\_INFO
NETLOGON_TICKET_LOGON_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_TICKET_LOGON_INFO struct {
Identity NETLOGON_LOGON_IDENTITY_INFO
RequestOptions uint64
ServiceTicketLength ndr.DWORD
ServiceTicket []uint8 `ndr:"unique,size_is=ServiceTicketLength"`
AdditionalTicketLength ndr.DWORD
AdditionalTicket []uint8 `ndr:"unique,size_is=AdditionalTicketLength"`
}
type NETLOGON\_TRUSTED\_DOMAIN\_ARRAY
NETLOGON_TRUSTED_DOMAIN_ARRAY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_TRUSTED_DOMAIN_ARRAY struct {
DomainCount ndr.DWORD
Domains []DS_DOMAIN_TRUSTSW `ndr:"unique,size_is=DomainCount"`
}
type NETLOGON\_VALIDATION
NETLOGON_VALIDATION is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_VALIDATION struct {
Tag NETLOGON_VALIDATION_INFO_CLASS `ndr:"switch"`
ValidationSam NETLOGON_VALIDATION_SAM_INFO `ndr:"case=2"`
ValidationSam2 NETLOGON_VALIDATION_SAM_INFO2 `ndr:"case=3"`
ValidationGeneric2 NETLOGON_VALIDATION_GENERIC_INFO2 `ndr:"case=5"`
ValidationSam4 NETLOGON_VALIDATION_SAM_INFO4 `ndr:"case=6"`
ValidationTicket NETLOGON_VALIDATION_TICKET_LOGON `ndr:"case=7"`
}
type NETLOGON\_VALIDATION\_GENERIC\_INFO2
NETLOGON_VALIDATION_GENERIC_INFO2 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_VALIDATION_GENERIC_INFO2 struct {
DataLength ndr.DWORD
ValidationData []uint8 `ndr:"unique,size_is=DataLength"`
}
type NETLOGON\_VALIDATION\_INFO\_CLASS
NETLOGON_VALIDATION_INFO_CLASS is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-NRPC]).
type NETLOGON_VALIDATION_INFO_CLASS uint16
const (
NetlogonValidationUasInfo NETLOGON_VALIDATION_INFO_CLASS = 1
NetlogonValidationSamInfo NETLOGON_VALIDATION_INFO_CLASS = 2
NetlogonValidationSamInfo2 NETLOGON_VALIDATION_INFO_CLASS = 3
NetlogonValidationGenericInfo NETLOGON_VALIDATION_INFO_CLASS = 4
NetlogonValidationGenericInfo2 NETLOGON_VALIDATION_INFO_CLASS = 5
NetlogonValidationSamInfo4 NETLOGON_VALIDATION_INFO_CLASS = 6
NetlogonValidationTicketLogon NETLOGON_VALIDATION_INFO_CLASS = 7
)
type NETLOGON\_VALIDATION\_SAM\_INFO
NETLOGON_VALIDATION_SAM_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_VALIDATION_SAM_INFO struct {
LogonTime OLD_LARGE_INTEGER
LogoffTime OLD_LARGE_INTEGER
KickOffTime OLD_LARGE_INTEGER
PasswordLastSet OLD_LARGE_INTEGER
PasswordCanChange OLD_LARGE_INTEGER
PasswordMustChange OLD_LARGE_INTEGER
EffectiveName UNICODE_STRING
FullName UNICODE_STRING
LogonScript UNICODE_STRING
ProfilePath UNICODE_STRING
HomeDirectory UNICODE_STRING
HomeDirectoryDrive UNICODE_STRING
LogonCount uint16
BadPasswordCount uint16
UserId ndr.DWORD
PrimaryGroupId ndr.DWORD
GroupCount ndr.DWORD
GroupIds []GROUP_MEMBERSHIP `ndr:"unique,size_is=GroupCount"`
UserFlags ndr.DWORD
UserSessionKey USER_SESSION_KEY
LogonServer UNICODE_STRING
LogonDomainName UNICODE_STRING
LogonDomainId *msdtyp.RPC_SID `ndr:"unique"`
ExpansionRoom [10]ndr.DWORD
}
type NETLOGON\_VALIDATION\_SAM\_INFO2
NETLOGON_VALIDATION_SAM_INFO2 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_VALIDATION_SAM_INFO2 struct {
LogonTime OLD_LARGE_INTEGER
LogoffTime OLD_LARGE_INTEGER
KickOffTime OLD_LARGE_INTEGER
PasswordLastSet OLD_LARGE_INTEGER
PasswordCanChange OLD_LARGE_INTEGER
PasswordMustChange OLD_LARGE_INTEGER
EffectiveName UNICODE_STRING
FullName UNICODE_STRING
LogonScript UNICODE_STRING
ProfilePath UNICODE_STRING
HomeDirectory UNICODE_STRING
HomeDirectoryDrive UNICODE_STRING
LogonCount uint16
BadPasswordCount uint16
UserId ndr.DWORD
PrimaryGroupId ndr.DWORD
GroupCount ndr.DWORD
GroupIds []GROUP_MEMBERSHIP `ndr:"unique,size_is=GroupCount"`
UserFlags ndr.DWORD
UserSessionKey USER_SESSION_KEY
LogonServer UNICODE_STRING
LogonDomainName UNICODE_STRING
LogonDomainId *msdtyp.RPC_SID `ndr:"unique"`
ExpansionRoom [10]ndr.DWORD
SidCount ndr.DWORD
ExtraSids []NETLOGON_SID_AND_ATTRIBUTES `ndr:"unique,size_is=SidCount"`
}
type NETLOGON\_VALIDATION\_SAM\_INFO4
NETLOGON_VALIDATION_SAM_INFO4 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_VALIDATION_SAM_INFO4 struct {
LogonTime OLD_LARGE_INTEGER
LogoffTime OLD_LARGE_INTEGER
KickOffTime OLD_LARGE_INTEGER
PasswordLastSet OLD_LARGE_INTEGER
PasswordCanChange OLD_LARGE_INTEGER
PasswordMustChange OLD_LARGE_INTEGER
EffectiveName UNICODE_STRING
FullName UNICODE_STRING
LogonScript UNICODE_STRING
ProfilePath UNICODE_STRING
HomeDirectory UNICODE_STRING
HomeDirectoryDrive UNICODE_STRING
LogonCount uint16
BadPasswordCount uint16
UserId ndr.DWORD
PrimaryGroupId ndr.DWORD
GroupCount ndr.DWORD
GroupIds []GROUP_MEMBERSHIP `ndr:"unique,size_is=GroupCount"`
UserFlags ndr.DWORD
UserSessionKey USER_SESSION_KEY
LogonServer UNICODE_STRING
LogonDomainName UNICODE_STRING
LogonDomainId *msdtyp.RPC_SID `ndr:"unique"`
LMKey [8]uint8
UserAccountControl ndr.DWORD
SubAuthStatus ndr.DWORD
LastSuccessfulILogon OLD_LARGE_INTEGER
LastFailedILogon OLD_LARGE_INTEGER
FailedILogonCount ndr.DWORD
Reserved4 [1]ndr.DWORD
SidCount ndr.DWORD
ExtraSids []NETLOGON_SID_AND_ATTRIBUTES `ndr:"unique,size_is=SidCount"`
DnsLogonDomainName UNICODE_STRING
Upn UNICODE_STRING
ExpansionString1 UNICODE_STRING
ExpansionString2 UNICODE_STRING
ExpansionString3 UNICODE_STRING
ExpansionString4 UNICODE_STRING
ExpansionString5 UNICODE_STRING
ExpansionString6 UNICODE_STRING
ExpansionString7 UNICODE_STRING
ExpansionString8 UNICODE_STRING
ExpansionString9 UNICODE_STRING
ExpansionString10 UNICODE_STRING
}
type NETLOGON\_VALIDATION\_TICKET\_LOGON
NETLOGON_VALIDATION_TICKET_LOGON ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_VALIDATION_TICKET_LOGON struct {
Results uint64
KerberosStatus ndr.DWORD
NetlogonStatus ndr.DWORD
SourceOfStatus UNICODE_STRING
UserInformation *NETLOGON_VALIDATION_SAM_INFO4 `ndr:"unique"`
DeviceInformation *NETLOGON_VALIDATION_SAM_INFO4 `ndr:"unique"`
UserClaimsLength ndr.DWORD
UserClaims []uint8 `ndr:"unique,size_is=UserClaimsLength"`
DeviceClaimsLength ndr.DWORD
DeviceClaims []uint8 `ndr:"unique,size_is=DeviceClaimsLength"`
}
type NETLOGON\_VALIDATION\_UAS\_INFO
NETLOGON_VALIDATION_UAS_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_VALIDATION_UAS_INFO struct {
Usrlog1_eff_name *ndr.WSTR `ndr:"unique"`
Usrlog1_priv ndr.DWORD
Usrlog1_auth_flags ndr.DWORD
Usrlog1_num_logons ndr.DWORD
Usrlog1_bad_pw_count ndr.DWORD
Usrlog1_last_logon ndr.DWORD
Usrlog1_last_logoff ndr.DWORD
Usrlog1_logoff_time ndr.DWORD
Usrlog1_kickoff_time ndr.DWORD
Usrlog1_password_age ndr.DWORD
Usrlog1_pw_can_change ndr.DWORD
Usrlog1_pw_must_change ndr.DWORD
Usrlog1_computer *ndr.WSTR `ndr:"unique"`
Usrlog1_domain *ndr.WSTR `ndr:"unique"`
Usrlog1_script_path *ndr.WSTR `ndr:"unique"`
Usrlog1_reserved1 ndr.DWORD
}
type NETLOGON\_WORKSTATION\_INFO
NETLOGON_WORKSTATION_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NETLOGON_WORKSTATION_INFO struct {
LsaPolicy NETLOGON_LSA_POLICY_INFO
DnsHostName *ndr.WSTR `ndr:"unique"`
SiteName *ndr.WSTR `ndr:"unique"`
Dummy1 *ndr.WSTR `ndr:"unique"`
Dummy2 *ndr.WSTR `ndr:"unique"`
Dummy3 *ndr.WSTR `ndr:"unique"`
Dummy4 *ndr.WSTR `ndr:"unique"`
OsVersion UNICODE_STRING
OsName UNICODE_STRING
DummyString3 UNICODE_STRING
DummyString4 UNICODE_STRING
WorkstationFlags ndr.DWORD
KerberosSupportedEncryptionTypes ndr.DWORD
DummyLong3 ndr.DWORD
DummyLong4 ndr.DWORD
}
type NETLOGON\_WORKSTATION\_INFORMATION
NETLOGON_WORKSTATION_INFORMATION is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NETLOGON_WORKSTATION_INFORMATION struct {
Tag ndr.DWORD `ndr:"switch"`
WorkstationInfo NETLOGON_WORKSTATION_INFO `ndr:"case=1"`
LsaPolicyInfo NETLOGON_WORKSTATION_INFO `ndr:"case=2"`
}
type NLPR\_CR\_CIPHER\_VALUE
NLPR_CR_CIPHER_VALUE ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_CR_CIPHER_VALUE struct {
Length ndr.DWORD
MaximumLength ndr.DWORD
Buffer []uint8 `ndr:"unique,size_is=MaximumLength,varying,length_is=Length"`
}
type NLPR\_LOGON\_HOURS
NLPR_LOGON_HOURS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_LOGON_HOURS struct {
UnitsPerWeek uint16
LogonHours []uint8 `ndr:"unique,size_is=1260,varying"`
}
type NLPR\_MODIFIED\_COUNT
NLPR_MODIFIED_COUNT ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_MODIFIED_COUNT struct {
ModifiedCount OLD_LARGE_INTEGER
}
type NLPR\_QUOTA\_LIMITS
NLPR_QUOTA_LIMITS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_QUOTA_LIMITS struct {
PagedPoolLimit ndr.DWORD
NonPagedPoolLimit ndr.DWORD
MinimumWorkingSetSize ndr.DWORD
MaximumWorkingSetSize ndr.DWORD
PagefileLimit ndr.DWORD
Reserved OLD_LARGE_INTEGER
}
type NLPR\_SID\_ARRAY
NLPR_SID_ARRAY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_SID_ARRAY struct {
Count ndr.DWORD
Sids []NLPR_SID_INFORMATION `ndr:"unique,size_is=Count"`
}
type NLPR\_SID\_INFORMATION
NLPR_SID_INFORMATION ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_SID_INFORMATION struct {
SidPointer *msdtyp.RPC_SID `ndr:"unique"`
}
type NLPR\_USER\_PRIVATE\_INFO
NLPR_USER_PRIVATE_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NLPR_USER_PRIVATE_INFO struct {
SensitiveData uint8
DataLength ndr.DWORD
Data []uint8 `ndr:"unique,size_is=DataLength"`
}
type NL\_AUTH\_MESSAGE
NL_AUTH_MESSAGE ([MS-NRPC] 2.2.1.3.1) is the token carried in the RPC bind/bind_ack auth_value when Netlogon is its own security provider (RPC_C_AUTHN_NETLOGON). It is a fixed 8-byte header (MessageType, Flags) followed by a variable Buffer of null-terminated name strings selected by Flags. It is not NDR — it carries its own Marshal/Unmarshal.
type NL_AUTH_MESSAGE struct {
MessageType uint32
Flags uint32
Buffer []byte
}
func BuildClientNlAuthMessage
func BuildClientNlAuthMessage(computerName, domain string) *NL_AUTH_MESSAGE
BuildClientNlAuthMessage builds the client request NL_AUTH_MESSAGE for the RPC bind ([MS-NRPC] 3.1.4.1). computerName is the client NetBIOS host name (no trailing ‘$’). A domain containing a ‘.’ is treated as a DNS domain (NetBIOS host + DNS domain fields); otherwise it is treated as a NetBIOS domain (NetBIOS domain + host fields). Both forms additionally append the UTF-8 NetBIOS host field, matching what Windows and impacket send.
func (*NL_AUTH_MESSAGE) Marshal
func (m *NL_AUTH_MESSAGE) Marshal() []byte
Marshal serializes the token: the two little-endian header DWORDs then the Buffer.
func (*NL_AUTH_MESSAGE) Unmarshal
func (m *NL_AUTH_MESSAGE) Unmarshal(data []byte) error
Unmarshal parses a token from data. The Buffer is the remainder after the 8-byte header; its interpretation follows Flags, but a client only needs to confirm the server returned a response, so the fields are not further decoded here.
type NL\_AUTH\_SHA2\_SIGNATURE
NL_AUTH_SHA2_SIGNATURE ([MS-NRPC] 2.2.1.3.3) is the per-message security token Netlogon places after the RPC sec_trailer when acting as its own security provider with the AES cipher suite negotiated: an HMAC-SHA256 checksum with AES-128 CFB8 sealing. Like NL_AUTH_SIGNATURE it is a fixed little-endian layout (not NDR) and carries its own Marshal/Unmarshal. It differs from the legacy token by the algorithm identifiers and a trailing 24-octet Reserved field.
The Confounder is present on the wire only when the token seals the message (SealAlgorithm != NlSealNotEncrypted). On the wire the SequenceNumber and (when sealing) the Confounder are encrypted; the Checksum is carried in the clear ([MS-NRPC] 3.3.4.2.1).
type NL_AUTH_SHA2_SIGNATURE struct {
SignatureAlgorithm uint16
SealAlgorithm uint16
Pad uint16 // MUST be 0xFFFF
Flags uint16 // MUST be 0x0000
SequenceNumber [8]byte
Checksum [8]byte
Confounder [8]byte // present on the wire only when Sealed() is true
}
func (*NL_AUTH_SHA2_SIGNATURE) Header
func (s *NL_AUTH_SHA2_SIGNATURE) Header() []byte
Header returns the eight header octets (the four little-endian uint16s). These are the bytes fed to the HMAC-SHA256 checksum computation ([MS-NRPC] 3.3.4.2.1 step 7).
func (*NL_AUTH_SHA2_SIGNATURE) Marshal
func (s *NL_AUTH_SHA2_SIGNATURE) Marshal() []byte
Marshal serializes the token: the 8-byte header, the 8-byte SequenceNumber, the 8-byte Checksum, the 8-byte Confounder (only when Sealed()), and the trailing 24 zero octets of Reserved. The result is 48 octets for an integrity-only token and 56 octets for a sealing token.
func (*NL_AUTH_SHA2_SIGNATURE) Sealed
func (s *NL_AUTH_SHA2_SIGNATURE) Sealed() bool
Sealed reports whether the token seals (encrypts) the message, in which case the Confounder is part of the wire layout.
func (*NL_AUTH_SHA2_SIGNATURE) Unmarshal
func (s *NL_AUTH_SHA2_SIGNATURE) Unmarshal(data []byte) error
Unmarshal parses a token from the front of data. Whether the Confounder is expected is decided by SealAlgorithm, so the header is read first. The trailing Reserved field is not required to be present (the receiver ignores it), so it is not enforced.
type NL\_AUTH\_SIGNATURE
NL_AUTH_SIGNATURE ([MS-NRPC] 2.2.1.3.2) is the per-message security token Netlogon places after the RPC sec_trailer when acting as its own security provider with the legacy (non-AES) cipher suite: an HMAC-MD5 checksum with RC4 sealing. It is NOT an NDR structure — it is a fixed little-endian layout, so it carries its own Marshal/Unmarshal rather than relying on the ndr package. The AES cipher suite uses NL_AUTH_SHA2_SIGNATURE instead.
The Confounder is present on the wire only when the token seals (encrypts) the message, i.e. when SealAlgorithm != NlSealNotEncrypted; for an integrity-only token it is omitted. On the wire the SequenceNumber and (when sealing) the Confounder are encrypted, whereas the Checksum is carried in the clear ([MS-NRPC] 3.3.4.2.1).
type NL_AUTH_SIGNATURE struct {
SignatureAlgorithm uint16
SealAlgorithm uint16
Pad uint16 // MUST be 0xFFFF
Flags uint16 // MUST be 0x0000
SequenceNumber [8]byte
Checksum [8]byte
Confounder [8]byte // present on the wire only when Sealed() is true
}
func (*NL_AUTH_SIGNATURE) Header
func (s *NL_AUTH_SIGNATURE) Header() []byte
Header returns the eight header octets (the four little-endian uint16s). These are the bytes fed to the checksum computation ([MS-NRPC] 3.3.4.2.1 step 7).
func (*NL_AUTH_SIGNATURE) Marshal
func (s *NL_AUTH_SIGNATURE) Marshal() []byte
Marshal serializes the token: the 8-byte header, the 8-byte SequenceNumber, the 8-byte Checksum, and — only when Sealed() — the 8-byte Confounder. The result is 24 octets for an integrity-only token and 32 octets for a sealing token.
func (*NL_AUTH_SIGNATURE) Sealed
func (s *NL_AUTH_SIGNATURE) Sealed() bool
Sealed reports whether the token seals (encrypts) the message, in which case the Confounder is part of the wire layout.
func (*NL_AUTH_SIGNATURE) Unmarshal
func (s *NL_AUTH_SIGNATURE) Unmarshal(data []byte) error
Unmarshal parses a token from the front of data. Whether the Confounder is expected is decided by SealAlgorithm, so the header is read first.
type NL\_DNS\_NAME\_INFO
NL_DNS_NAME_INFO ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_DNS_NAME_INFO struct {
Type ndr.DWORD
DnsDomainInfo *ndr.WSTR `ndr:"unique"`
DnsDomainInfoType ndr.DWORD
Priority ndr.DWORD
Weight ndr.DWORD
Port ndr.DWORD
Register uint8
Status ndr.DWORD
}
type NL\_DNS\_NAME\_INFO\_ARRAY
NL_DNS_NAME_INFO_ARRAY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_DNS_NAME_INFO_ARRAY struct {
EntryCount ndr.DWORD
DnsNamesInfo []NL_DNS_NAME_INFO `ndr:"unique,size_is=EntryCount"`
}
type NL\_GENERIC\_RPC\_DATA
NL_GENERIC_RPC_DATA ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_GENERIC_RPC_DATA struct {
UlongEntryCount ndr.DWORD
UlongData []ndr.DWORD `ndr:"unique,size_is=UlongEntryCount"`
UnicodeStringEntryCount ndr.DWORD
UnicodeStringData []UNICODE_STRING `ndr:"unique,size_is=UnicodeStringEntryCount"`
}
type NL\_IN\_CHAIN\_SET\_CLIENT\_ATTRIBUTES
NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES struct {
Tag ndr.DWORD `ndr:"switch"`
V1 NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 `ndr:"case=1"`
}
type NL\_IN\_CHAIN\_SET\_CLIENT\_ATTRIBUTES\_V1
NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 struct {
ClientDnsHostName *ndr.WSTR `ndr:"unique"`
OsVersionInfo_V1 *NL_OSVERSIONINFO_V1 `ndr:"unique"`
OsName *ndr.WSTR `ndr:"unique"`
}
type NL\_OSVERSIONINFO\_V1
NL_OSVERSIONINFO_V1 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_OSVERSIONINFO_V1 struct {
DwOSVersionInfoSize ndr.DWORD
DwMajorVersion ndr.DWORD
DwMinorVersion ndr.DWORD
DwBuildNumber ndr.DWORD
DwPlatformId ndr.DWORD
SzCSDVersion [128]uint16
WServicePackMajor uint16
WServicePackMinor uint16
WSuiteMask uint16
WProductType uint8
WReserved uint8
}
type NL\_OUT\_CHAIN\_SET\_CLIENT\_ATTRIBUTES
NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES is a discriminated union ([MS-NRPC]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.
type NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES struct {
Tag ndr.DWORD `ndr:"switch"`
V1 NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 `ndr:"case=1"`
}
type NL\_OUT\_CHAIN\_SET\_CLIENT\_ATTRIBUTES\_V1
NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 ([MS-NRPC] 2.2.1.3.20) is the [out] payload of NetrChainSetClientAttributes (opnum 49).
NOTE: the IDL declares OldDnsHostName as `[unique,string] wchar_t**` — a unique pointer to a unique pointer to a string. The declarative NDR codec cannot express a double pointer (`**ndr.WSTR` is rejected as an unsupported scalar kind), so it is modelled here as a single `*ndr.WSTR`, which omits the outer referent id on the wire. This method is not live-validated; correct double-pointer support is deferred to an ndr codec enhancement.
type NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 struct {
HubName *ndr.WSTR `ndr:"unique"`
OldDnsHostName *ndr.WSTR `ndr:"unique"`
SupportedEncTypes *ndr.DWORD `ndr:"unique"`
}
type NL\_PASSWORD\_VERSION
NL_PASSWORD_VERSION ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_PASSWORD_VERSION struct {
ReservedField ndr.DWORD
PasswordVersionNumber ndr.DWORD
PasswordVersionPresent ndr.DWORD
}
type NL\_SITE\_NAME\_ARRAY
NL_SITE_NAME_ARRAY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_SITE_NAME_ARRAY struct {
EntryCount ndr.DWORD
SiteNames []UNICODE_STRING `ndr:"unique,size_is=EntryCount"`
}
type NL\_SITE\_NAME\_EX\_ARRAY
NL_SITE_NAME_EX_ARRAY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_SITE_NAME_EX_ARRAY struct {
EntryCount ndr.DWORD
SiteNames []UNICODE_STRING `ndr:"unique,size_is=EntryCount"`
SubnetNames []UNICODE_STRING `ndr:"unique,size_is=EntryCount"`
}
type NL\_SOCKET\_ADDRESS
NL_SOCKET_ADDRESS ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NL_SOCKET_ADDRESS struct {
LpSockaddr []uint8 `ndr:"unique,size_is=ISockaddrLength"`
ISockaddrLength ndr.DWORD
}
type NL\_TRUST\_PASSWORD
NL_TRUST_PASSWORD ([MS-NRPC] 2.2.1.3.7) holds a new machine/trust password as a fixed 256-WCHAR (512-octet) buffer followed by its byte length, for a 516-octet structure. The buffer is modelled as a fixed [512]byte (rather than [256]uint16) so callers can copy the clear-text/encrypted password bytes in directly; both marshal to the same 512 octets. An all-zero value (empty buffer, Length 0) sets the target account password to the empty string.
type NL_TRUST_PASSWORD struct {
Buffer [512]byte
Length uint32
}
type NT\_OWF\_PASSWORD
NT_OWF_PASSWORD ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type NT_OWF_PASSWORD struct {
Data [2]CYPHER_BLOCK
}
type OLD\_LARGE\_INTEGER
OLD_LARGE_INTEGER ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type OLD_LARGE_INTEGER struct {
LowPart ndr.DWORD
HighPart int32
}
type STRING
STRING ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type STRING struct {
Length uint16
MaximumLength uint16
Buffer []int8 `ndr:"unique,size_is=MaximumLength,varying,length_is=Length"`
}
type SYNC\_STATE
SYNC_STATE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-NRPC]).
type SYNC_STATE uint16
const (
NormalState SYNC_STATE = 0
DomainState SYNC_STATE = 1
GroupState SYNC_STATE = 2
UasBuiltInGroupState SYNC_STATE = 3
UserState SYNC_STATE = 4
GroupMemberState SYNC_STATE = 5
AliasState SYNC_STATE = 6
AliasMemberState SYNC_STATE = 7
SamDoneState SYNC_STATE = 8
)
type UAS\_INFO\_0
UAS_INFO_0 ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type UAS_INFO_0 struct {
ComputerName [16]int8
TimeCreated ndr.DWORD
SerialNumber ndr.DWORD
}
type UNICODE\_STRING
UNICODE_STRING ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type UNICODE_STRING struct {
Length uint16
MaximumLength uint16
Buffer []uint16 `ndr:"unique,varying"`
}
type USER\_SESSION\_KEY
USER_SESSION_KEY ([MS-NRPC]). Generated by tools/idlgen; verify pointer/array tags.
type USER_SESSION_KEY struct {
Data [2]CYPHER_BLOCK
}