Generated from Manticore v1.1.6 • 388 packages. View on pkg.go.dev

msdrsr

import "github.com/TheManticoreProject/Manticore/windows/protocols/ms-drsr"

Index

Constants

dwFlags capability bits ([MS-DRSR] 5.39).

const (
    DRS_EXT_BASE                     uint32 = 0x00000001
    DRS_EXT_ASYNCREPL                uint32 = 0x00000002
    DRS_EXT_REMOVEAPI                uint32 = 0x00000004
    DRS_EXT_MOVEREQ_V2               uint32 = 0x00000008
    DRS_EXT_GETCHG_DEFLATE           uint32 = 0x00000010
    DRS_EXT_DCINFO_V1                uint32 = 0x00000020
    DRS_EXT_RESTORE_USN_OPTIMIZATION uint32 = 0x00000040
    DRS_EXT_ADDENTRY                 uint32 = 0x00000080
    DRS_EXT_KCC_EXECUTE              uint32 = 0x00000100
    DRS_EXT_ADDENTRY_V2              uint32 = 0x00000200
    DRS_EXT_LINKED_VALUE_REPLICATION uint32 = 0x00000400
    DRS_EXT_DCINFO_V2                uint32 = 0x00000800
    DRS_EXT_INSTANCE_TYPE_NOT_REQ    uint32 = 0x00001000
    DRS_EXT_CRYPTO_BIND              uint32 = 0x00002000
    DRS_EXT_GET_REPL_INFO            uint32 = 0x00004000
    DRS_EXT_STRONG_ENCRYPTION        uint32 = 0x00008000
    DRS_EXT_DCINFO_VFFFFFFFF         uint32 = 0x00010000
    DRS_EXT_TRANSITIVE_MEMBERSHIP    uint32 = 0x00020000
    DRS_EXT_ADD_SID_HISTORY          uint32 = 0x00040000
    DRS_EXT_POST_BETA3               uint32 = 0x00080000
    DRS_EXT_GETCHGREQ_V5             uint32 = 0x00100000
    DRS_EXT_GETMEMBERSHIPS2          uint32 = 0x00200000
    DRS_EXT_GETCHGREQ_V6             uint32 = 0x00400000
    DRS_EXT_NONDOMAIN_NCS            uint32 = 0x00800000
    DRS_EXT_GETCHGREQ_V8             uint32 = 0x01000000
    DRS_EXT_GETCHGREPLY_V5           uint32 = 0x02000000
    DRS_EXT_GETCHGREPLY_V6           uint32 = 0x04000000
    DRS_EXT_WHISTLER_BETA3           uint32 = 0x08000000
    DRS_EXT_W2K3_DEFLATE             uint32 = 0x10000000
    DRS_EXT_GETCHGREQ_V10            uint32 = 0x20000000
)

dwFlagsExt capability bits ([MS-DRSR] 5.39).

const (
    DRS_EXT_ADAM                uint32 = 0x00000001
    DRS_EXT_LH_BETA2            uint32 = 0x00000002
    DRS_EXT_RECYCLE_BIN         uint32 = 0x00000004
    DRS_EXT_GETCHGREPLY_V9      uint32 = 0x00000100
    DRS_EXT_RPC_CORRELATIONID_1 uint32 = 0x00000400
)

DS_NAME_FORMAT selects how a name is expressed in IDL_DRSCrackNames’ formatOffered/formatDesired ([MS-DRSR] 4.1.4.1.3). DCSync resolves an account name by offering DS_NT4_ACCOUNT_NAME (or DS_USER_PRINCIPAL_NAME / DS_SID_OR_SID_HISTORY_NAME) and requesting DS_UNIQUE_ID_NAME, whose result is the objectGUID in “{…}” form.

const (
    DS_UNKNOWN_NAME            uint32 = 0
    DS_FQDN_1779_NAME          uint32 = 1
    DS_NT4_ACCOUNT_NAME        uint32 = 2
    DS_DISPLAY_NAME            uint32 = 3
    DS_UNIQUE_ID_NAME          uint32 = 6
    DS_CANONICAL_NAME          uint32 = 7
    DS_USER_PRINCIPAL_NAME     uint32 = 8
    DS_CANONICAL_NAME_EX       uint32 = 9
    DS_SERVICE_PRINCIPAL_NAME  uint32 = 10
    DS_SID_OR_SID_HISTORY_NAME uint32 = 11
    DS_DNS_DOMAIN_NAME         uint32 = 12
)

DS_NAME_ERROR is the per-item status in DS_NAME_RESULT_ITEMW.Status ([MS-DRSR] 4.1.4.1.2). DS_NAME_NO_ERROR (0) means the item resolved.

const (
    DS_NAME_NO_ERROR                     uint32 = 0
    DS_NAME_ERROR_RESOLVING              uint32 = 1
    DS_NAME_ERROR_NOT_FOUND              uint32 = 2
    DS_NAME_ERROR_NOT_UNIQUE             uint32 = 3
    DS_NAME_ERROR_NO_MAPPING             uint32 = 4
    DS_NAME_ERROR_DOMAIN_ONLY            uint32 = 5
    DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING uint32 = 6
    DS_NAME_ERROR_TRUST_REFERRAL         uint32 = 7
)

EXOP is the extended operation in DRS_MSG_GETCHGREQ_V8.UlExtendedOp ([MS-DRSR] 5.40, “EXOP_REQ Codes”). EXOP_REPL_OBJ replicates a single object by GUID (the DCSync path); EXOP_REPL_SECRETS additionally forces secret values even without recent changes.

const (
    EXOP_FSMO_REQ_ROLE      uint32 = 0x00000001
    EXOP_FSMO_REQ_RID_ALLOC uint32 = 0x00000002
    EXOP_FSMO_RID_REQ_ROLE  uint32 = 0x00000003
    EXOP_FSMO_REQ_PDC       uint32 = 0x00000004
    EXOP_FSMO_ABANDON_ROLE  uint32 = 0x00000005
    EXOP_REPL_OBJ           uint32 = 0x00000006
    EXOP_REPL_SECRETS       uint32 = 0x00000007
)

DS_REPL_INFO_TYPE selects which replication information IDL_DRSGetReplInfo returns ([MS-DRSR] 4.1.13.3); it is both the request InfoType and the reply union discriminant.

const (
    DS_REPL_INFO_NEIGHBORS                 uint32 = 0
    DS_REPL_INFO_CURSORS_FOR_NC            uint32 = 1
    DS_REPL_INFO_METADATA_FOR_OBJ          uint32 = 2
    DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES  uint32 = 3
    DS_REPL_INFO_KCC_DSA_LINK_FAILURES     uint32 = 4
    DS_REPL_INFO_PENDING_OPS               uint32 = 5
    DS_REPL_INFO_METADATA_FOR_ATTR_VALUE   uint32 = 6
    DS_REPL_INFO_CURSORS_2_FOR_NC          uint32 = 7
    DS_REPL_INFO_CURSORS_3_FOR_NC          uint32 = 8
    DS_REPL_INFO_METADATA_2_FOR_OBJ        uint32 = 9
    DS_REPL_INFO_METADATA_2_FOR_ATTR_VALUE uint32 = 10
)

DRS_OPTIONS are the ulFlags bits of IDL_DRSGetNCChanges and related calls ([MS-DRSR] 5.41). A single-object replication uses DRS_INIT_SYNC | DRS_WRIT_REP.

const (
    DRS_ASYNC_OP                  uint32 = 0x00000001
    DRS_WRIT_REP                  uint32 = 0x00000010
    DRS_INIT_SYNC                 uint32 = 0x00000020
    DRS_PER_SYNC                  uint32 = 0x00000040
    DRS_GET_ANC                   uint32 = 0x00000800
    DRS_GET_NC_SIZE               uint32 = 0x00001000
    DRS_FULL_SYNC_NOW             uint32 = 0x00008000
    DRS_SYNC_URGENT               uint32 = 0x00080000
    DRS_NEVER_SYNCED              uint32 = 0x00200000
    DRS_SPECIAL_SECRET_PROCESSING uint32 = 0x00400000
)

DRSHandleSize is the wire size of an RPC context handle: a 4-octet attributes field plus a 16-octet UUID ([C706] 4.2.16.6, [MS-RPCE] 2.3.2.2).

const DRSHandleSize = 20

DRS_REVMEMB_FLAG_GET_ATTRIBUTES requests the SE_GROUP attributes associated with each group returned by IDL_DRSGetMemberships ([MS-DRSR] 4.1.7.2.1).

const DRS_REVMEMB_FLAG_GET_ATTRIBUTES uint32 = 0x00000001

type ADDENTRY\_REPLY\_INFO

ADDENTRY_REPLY_INFO ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ADDENTRY_REPLY_INFO struct {
    ObjGuid UUID
    ObjSid  NT4SID
}

type ATRERR\_DRS\_WIRE\_V1

ATRERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ATRERR_DRS_WIRE_V1 struct {
    PObject      *DSNAME `ndr:"unique"`
    Count        ndr.DWORD
    FirstProblem PROBLEMLIST_DRS_WIRE_V1
}

type ATTR

ATTR ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ATTR struct {
    AttrTyp ndr.DWORD
    AttrVal ATTRVALBLOCK
}

type ATTRBLOCK

ATTRBLOCK ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ATTRBLOCK struct {
    AttrCount ndr.DWORD
    PAttr     []ATTR `ndr:"unique,size_is=AttrCount"`
}

type ATTRTYP

ATTRTYP is a scalar typedef ([MS-DRSR]).

type ATTRTYP ndr.DWORD

type ATTRVAL

ATTRVAL ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ATTRVAL struct {
    ValLen ndr.DWORD
    PVal   []uint8 `ndr:"unique,size_is=ValLen"`
}

type ATTRVALBLOCK

ATTRVALBLOCK ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ATTRVALBLOCK struct {
    ValCount ndr.DWORD
    PAVal    []ATTRVAL `ndr:"unique,size_is=ValCount"`
}

type CONTREF\_DRS\_WIRE\_V1

CONTREF_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type CONTREF_DRS_WIRE_V1 struct {
    PTarget      *DSNAME `ndr:"unique"`
    OpState      NAMERESOP_DRS_WIRE_V1
    AliasRDN     uint16
    RDNsInternal uint16
    RefType      uint16
    Count        uint16
    PDAL         *DSA_ADDRESS_LIST_DRS_WIRE_V1 `ndr:"unique"`
    PNextContRef *CONTREF_DRS_WIRE_V1          `ndr:"unique"`
    BNewChoice   ndr.BOOL
    Choice       uint8
}

type DIRERR\_DRS\_WIRE\_V1

DIRERR_DRS_WIRE_V1 is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DIRERR_DRS_WIRE_V1 struct {
    Tag    ndr.DWORD          `ndr:"switch"`
    AtrErr ATRERR_DRS_WIRE_V1 `ndr:"case=1"`
    NamErr NAMERR_DRS_WIRE_V1 `ndr:"case=2"`
    RefErr REFERR_DRS_WIRE_V1 `ndr:"case=3"`
    SecErr SECERR_DRS_WIRE_V1 `ndr:"case=4"`
    SvcErr SVCERR_DRS_WIRE_V1 `ndr:"case=5"`
    UpdErr UPDERR_DRS_WIRE_V1 `ndr:"case=6"`
    SysErr SYSERR_DRS_WIRE_V1 `ndr:"case=7"`
}

type DRS\_COMPRESSED\_BLOB

DRS_COMPRESSED_BLOB ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_COMPRESSED_BLOB struct {
    CbUncompressedSize ndr.DWORD
    CbCompressedSize   ndr.DWORD
    PbCompressedData   []uint8 `ndr:"unique,size_is=CbCompressedSize"`
}

type DRS\_COMP\_ALG\_TYPE

DRS_COMP_ALG_TYPE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-DRSR]).

type DRS_COMP_ALG_TYPE uint16
const (
    DRS_COMP_ALG_NONE   DRS_COMP_ALG_TYPE = 0
    DRS_COMP_ALG_UNUSED DRS_COMP_ALG_TYPE = 1
    DRS_COMP_ALG_MSZIP  DRS_COMP_ALG_TYPE = 2
    DRS_COMP_ALG_WIN2K3 DRS_COMP_ALG_TYPE = 3
)

type DRS\_ERROR\_DATA

DRS_ERROR_DATA is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_ERROR_DATA struct {
    Tag ndr.DWORD         `ndr:"switch"`
    V1  DRS_ERROR_DATA_V1 `ndr:"case=1"`
}

type DRS\_ERROR\_DATA\_V1

DRS_ERROR_DATA_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_ERROR_DATA_V1 struct {
    DwRepError ndr.DWORD
    ErrCode    ndr.DWORD
    PErrInfo   *DIRERR_DRS_WIRE_V1 `ndr:"unique"`
}

type DRS\_EXTENSIONS

DRS_EXTENSIONS is the variable-length capability blob exchanged at IDL_DRSBind ([MS-DRSR] 5.38): a byte count followed by Cb opaque bytes. The bytes carry a DRS_EXTENSIONS_INT (5.39) — see DRS_EXTENSIONS_INT and BuildClientExtensions.

Rgb is an INLINE conformant array (`[size_is(cb)] BYTE rgb[]`), not a pointer to one: the maximum_count is hoisted ahead of Cb and no referent id is emitted. (idlgen defaulted this to `unique`, which would emit a stray referent id and fault the bind.)

type DRS_EXTENSIONS struct {
    Cb  ndr.DWORD
    Rgb []uint8 `ndr:"conformant,size_is=Cb"`
}

func (DRS_EXTENSIONS) ParseInt

func (x DRS_EXTENSIONS) ParseInt() (*DRS_EXTENSIONS_INT, error)

ParseInt decodes the DRS_EXTENSIONS_INT carried in a DRS_EXTENSIONS blob (e.g. the server’s negotiated extensions returned by IDL_DRSBind).

type DRS\_EXTENSIONS\_INT

DRS_EXTENSIONS_INT is the capability structure carried by DRS_EXTENSIONS at IDL_DRSBind ([MS-DRSR] 5.39). It is NOT an NDR type: it is a fixed little-endian byte layout, (un)marshalled by hand. Both peers send it to negotiate which request/reply message versions and capabilities they support.

Wire relationship (verified against a live DC): DRS_EXTENSIONS is { DWORD cb; BYTE rgb[cb]; }, and the DRS_EXTENSIONS_INT.cb field IS that same DRS_EXTENSIONS.cb — it is NOT repeated inside rgb. So rgb holds only dwFlags..dwExtCaps (52 bytes) and Cb counts exactly those bytes. (An earlier revision wrongly prepended cb to rgb, which shifted dwFlags and made the server miss the client’s STRONG_ENCRYPTION flag.) Cb here is informational; Marshal/ToExtensions derive it from the field block length.

GUID fields are raw 16-octet RPC-wire values (guid.GUID.ToBytes order); a non-DC client leaves them zero.

type DRS_EXTENSIONS_INT struct {
    Cb            uint32
    DwFlags       uint32
    SiteObjGuid   [16]byte
    Pid           int32
    DwReplEpoch   uint32
    DwFlagsExt    uint32
    ConfigObjGUID [16]byte
    DwExtCaps     uint32
}

func DefaultClientExtensions

func DefaultClientExtensions() *DRS_EXTENSIONS_INT

DefaultClientExtensions returns the DRS_EXTENSIONS_INT a replication client (DCSync) sends at bind. The flags ask the server for the message versions IDL_DRSGetNCChanges needs and assert support for on-wire secret encryption:

  • GETCHGREQ_V8 + RESTORE_USN_OPTIMIZATION — issue V8 change requests ([MS-DRSR] 4.1.3.2)
  • GETCHGREPLY_V6 — receive the V6 reply DCSync parses ([MS-DRSR] 4.1.3.1)
  • STRONG_ENCRYPTION — required for the DC to send secrets over the wire
  • GETCHGREQ_V6, NONDOMAIN_NCS — match the widely-deployed impacket client set

dwExtCaps is set to all-ones (impacket’s choice) to assert every extended capability. SiteObjGuid/ConfigObjGUID/Pid/dwReplEpoch stay zero, as a non-DC client has none.

func ParseExtensionsInt

func ParseExtensionsInt(b []byte) (*DRS_EXTENSIONS_INT, error)

ParseExtensionsInt decodes a DRS_EXTENSIONS_INT from a DRS_EXTENSIONS rgb block (which begins at dwFlags, not at cb). Trailing fields a shorter peer omitted are left zero (the structure is forward-extensible). Cb is set to the block length.

func (*DRS_EXTENSIONS_INT) Marshal

func (e *DRS_EXTENSIONS_INT) Marshal() []byte

Marshal serializes the field block dwFlags..dwExtCaps to its [MS-DRSR] 5.39 little-endian wire bytes (52 octets). This is the rgb content of DRS_EXTENSIONS; the cb that precedes rgb is the DRS_EXTENSIONS.Cb field, not part of this block.

func (*DRS_EXTENSIONS_INT) ToExtensions

func (e *DRS_EXTENSIONS_INT) ToExtensions() DRS_EXTENSIONS

ToExtensions wraps the marshalled field block in a DRS_EXTENSIONS, setting Cb to the block length (the value the [size_is(cb)] rgb array is sized by).

type DRS\_HANDLE

DRS_HANDLE is the drsuapi RPC context handle (the IDL’s [context_handle] void*). It is transmitted inline as its 20 octets — not as an NDR pointer referent — and aligned to 4 octets because it begins with the 4-octet attributes word. It is a Marshaler so the codec applies that alignment regardless of what precedes it; the zero value is the null handle. IDL_DRSBind returns it and every subsequent drsuapi call passes it back.

type DRS_HANDLE [DRSHandleSize]byte

func (*DRS_HANDLE) AlignmentNDR

func (*DRS_HANDLE) AlignmentNDR() int

AlignmentNDR reports the 4-octet alignment of a context handle.

func (DRS_HANDLE) IsNull

func (h DRS_HANDLE) IsNull() bool

IsNull reports whether the handle is the null context handle, i.e. its 16-octet UUID (the octets after the 4-octet attributes word) is all zero.

func (*DRS_HANDLE) MarshalNDR

func (h *DRS_HANDLE) MarshalNDR(e *ndr.Encoder) error

MarshalNDR writes the 20 octets of the context handle.

func (*DRS_HANDLE) UnmarshalNDR

func (h *DRS_HANDLE) UnmarshalNDR(d *ndr.Decoder) error

UnmarshalNDR reads the 20 octets of the context handle.

type DRS\_MSG\_ADDCLONEDCREPLY

DRS_MSG_ADDCLONEDCREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_ADDCLONEDCREPLY struct {
    Tag ndr.DWORD                  `ndr:"switch"`
    V1  DRS_MSG_ADDCLONEDCREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_ADDCLONEDCREPLY\_V1

DRS_MSG_ADDCLONEDCREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDCLONEDCREPLY_V1 struct {
    PwszCloneDCName         *ndr.WSTR `ndr:"unique"`
    PwszSite                *ndr.WSTR `ndr:"unique"`
    CPasswordLength         ndr.DWORD
    PwsNewDCAccountPassword []uint16 `ndr:"unique,size_is=CPasswordLength"`
}

type DRS\_MSG\_ADDCLONEDCREQ

DRS_MSG_ADDCLONEDCREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_ADDCLONEDCREQ struct {
    Tag ndr.DWORD                `ndr:"switch"`
    V1  DRS_MSG_ADDCLONEDCREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_ADDCLONEDCREQ\_V1

DRS_MSG_ADDCLONEDCREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDCLONEDCREQ_V1 struct {
    PwszCloneDCName *ndr.WSTR `ndr:"unique"`
    PwszSite        *ndr.WSTR `ndr:"unique"`
}

type DRS\_MSG\_ADDENTRYREPLY

DRS_MSG_ADDENTRYREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_ADDENTRYREPLY struct {
    Tag ndr.DWORD                `ndr:"switch"`
    V1  DRS_MSG_ADDENTRYREPLY_V1 `ndr:"case=1"`
    V2  DRS_MSG_ADDENTRYREPLY_V2 `ndr:"case=2"`
    V3  DRS_MSG_ADDENTRYREPLY_V3 `ndr:"case=3"`
}

type DRS\_MSG\_ADDENTRYREPLY\_V1

DRS_MSG_ADDENTRYREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDENTRYREPLY_V1 struct {
    Guid         UUID
    Sid          NT4SID
    ErrCode      ndr.DWORD
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
}

type DRS\_MSG\_ADDENTRYREPLY\_V2

DRS_MSG_ADDENTRYREPLY_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDENTRYREPLY_V2 struct {
    PErrorObject  *DSNAME `ndr:"unique"`
    ErrCode       ndr.DWORD
    Dsid          ndr.DWORD
    ExtendedErr   ndr.DWORD
    ExtendedData  ndr.DWORD
    Problem       uint16
    CObjectsAdded ndr.DWORD
    InfoList      []ADDENTRY_REPLY_INFO `ndr:"unique,size_is=CObjectsAdded"`
}

type DRS\_MSG\_ADDENTRYREPLY\_V3

DRS_MSG_ADDENTRYREPLY_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDENTRYREPLY_V3 struct {
    PdsErrObject  *DSNAME `ndr:"unique"`
    DwErrVer      ndr.DWORD
    PErrData      *DRS_ERROR_DATA `ndr:"unique"`
    CObjectsAdded ndr.DWORD
    InfoList      []ADDENTRY_REPLY_INFO `ndr:"unique,size_is=CObjectsAdded"`
}

type DRS\_MSG\_ADDENTRYREQ

DRS_MSG_ADDENTRYREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_ADDENTRYREQ struct {
    Tag ndr.DWORD              `ndr:"switch"`
    V1  DRS_MSG_ADDENTRYREQ_V1 `ndr:"case=1"`
    V2  DRS_MSG_ADDENTRYREQ_V2 `ndr:"case=2"`
    V3  DRS_MSG_ADDENTRYREQ_V3 `ndr:"case=3"`
}

type DRS\_MSG\_ADDENTRYREQ\_V1

DRS_MSG_ADDENTRYREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDENTRYREQ_V1 struct {
    PObject   *DSNAME `ndr:"unique"`
    AttrBlock ATTRBLOCK
}

type DRS\_MSG\_ADDENTRYREQ\_V2

DRS_MSG_ADDENTRYREQ_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDENTRYREQ_V2 struct {
    EntInfList ENTINFLIST
}

type DRS\_MSG\_ADDENTRYREQ\_V3

DRS_MSG_ADDENTRYREQ_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDENTRYREQ_V3 struct {
    EntInfList   ENTINFLIST
    PClientCreds *DRS_SecBufferDesc `ndr:"unique"`
}

type DRS\_MSG\_ADDSIDREPLY

DRS_MSG_ADDSIDREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_ADDSIDREPLY struct {
    Tag ndr.DWORD              `ndr:"switch"`
    V1  DRS_MSG_ADDSIDREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_ADDSIDREPLY\_V1

DRS_MSG_ADDSIDREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDSIDREPLY_V1 struct {
    DwWin32Error ndr.DWORD
}

type DRS\_MSG\_ADDSIDREQ

DRS_MSG_ADDSIDREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_ADDSIDREQ struct {
    Tag ndr.DWORD            `ndr:"switch"`
    V1  DRS_MSG_ADDSIDREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_ADDSIDREQ\_V1

DRS_MSG_ADDSIDREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_ADDSIDREQ_V1 struct {
    Flags                  ndr.DWORD
    SrcDomain              *ndr.WSTR `ndr:"unique"`
    SrcPrincipal           *ndr.WSTR `ndr:"unique"`
    SrcDomainController    *ndr.WSTR `ndr:"unique"`
    SrcCredsUserLength     ndr.DWORD
    SrcCredsUser           []uint16 `ndr:"unique,size_is=SrcCredsUserLength"`
    SrcCredsDomainLength   ndr.DWORD
    SrcCredsDomain         []uint16 `ndr:"unique,size_is=SrcCredsDomainLength"`
    SrcCredsPasswordLength ndr.DWORD
    SrcCredsPassword       []uint16  `ndr:"unique,size_is=SrcCredsPasswordLength"`
    DstDomain              *ndr.WSTR `ndr:"unique"`
    DstPrincipal           *ndr.WSTR `ndr:"unique"`
}

type DRS\_MSG\_CRACKREPLY

DRS_MSG_CRACKREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_CRACKREPLY struct {
    Tag ndr.DWORD             `ndr:"switch"`
    V1  DRS_MSG_CRACKREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_CRACKREPLY\_V1

DRS_MSG_CRACKREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_CRACKREPLY_V1 struct {
    PResult *DS_NAME_RESULTW `ndr:"unique"`
}

type DRS\_MSG\_CRACKREQ

DRS_MSG_CRACKREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_CRACKREQ struct {
    Tag ndr.DWORD           `ndr:"switch"`
    V1  DRS_MSG_CRACKREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_CRACKREQ\_V1

DRS_MSG_CRACKREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_CRACKREQ_V1 struct {
    CodePage      ndr.DWORD
    LocaleId      ndr.DWORD
    DwFlags       ndr.DWORD
    FormatOffered ndr.DWORD
    FormatDesired ndr.DWORD
    CNames        ndr.DWORD
    RpNames       []*ndr.WSTR `ndr:"unique,size_is=CNames"` // IDL: [string] WCHAR **rpNames (array of strings)
}

type DRS\_MSG\_DCINFOREPLY

DRS_MSG_DCINFOREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_DCINFOREPLY struct {
    Tag       ndr.DWORD                     `ndr:"switch"`
    V1        DRS_MSG_DCINFOREPLY_V1        `ndr:"case=1"`
    V2        DRS_MSG_DCINFOREPLY_V2        `ndr:"case=2"`
    V3        DRS_MSG_DCINFOREPLY_V3        `ndr:"case=3"`
    VFFFFFFFF DRS_MSG_DCINFOREPLY_VFFFFFFFF `ndr:"case=4294967295"`
}

type DRS\_MSG\_DCINFOREPLY\_V1

DRS_MSG_DCINFOREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_DCINFOREPLY_V1 struct {
    CItems ndr.DWORD
    RItems []DS_DOMAIN_CONTROLLER_INFO_1W `ndr:"unique,size_is=CItems"`
}

type DRS\_MSG\_DCINFOREPLY\_V2

DRS_MSG_DCINFOREPLY_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_DCINFOREPLY_V2 struct {
    CItems ndr.DWORD
    RItems []DS_DOMAIN_CONTROLLER_INFO_2W `ndr:"unique,size_is=CItems"`
}

type DRS\_MSG\_DCINFOREPLY\_V3

DRS_MSG_DCINFOREPLY_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_DCINFOREPLY_V3 struct {
    CItems ndr.DWORD
    RItems []DS_DOMAIN_CONTROLLER_INFO_3W `ndr:"unique,size_is=CItems"`
}

type DRS\_MSG\_DCINFOREPLY\_VFFFFFFFF

DRS_MSG_DCINFOREPLY_VFFFFFFFF ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_DCINFOREPLY_VFFFFFFFF struct {
    CItems ndr.DWORD
    RItems []DS_DOMAIN_CONTROLLER_INFO_FFFFFFFFW `ndr:"unique,size_is=CItems"`
}

type DRS\_MSG\_DCINFOREQ

DRS_MSG_DCINFOREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_DCINFOREQ struct {
    Tag ndr.DWORD            `ndr:"switch"`
    V1  DRS_MSG_DCINFOREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_DCINFOREQ\_V1

DRS_MSG_DCINFOREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_DCINFOREQ_V1 struct {
    Domain    *ndr.WSTR `ndr:"unique"`
    InfoLevel ndr.DWORD
}

type DRS\_MSG\_EXISTREPLY

DRS_MSG_EXISTREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_EXISTREPLY struct {
    Tag ndr.DWORD             `ndr:"switch"`
    V1  DRS_MSG_EXISTREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_EXISTREPLY\_V1

DRS_MSG_EXISTREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_EXISTREPLY_V1 struct {
    DwStatusFlags ndr.DWORD
    CNumGuids     ndr.DWORD
    RgGuids       []UUID `ndr:"unique,size_is=CNumGuids"`
}

type DRS\_MSG\_EXISTREQ

DRS_MSG_EXISTREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_EXISTREQ struct {
    Tag ndr.DWORD           `ndr:"switch"`
    V1  DRS_MSG_EXISTREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_EXISTREQ\_V1

DRS_MSG_EXISTREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_EXISTREQ_V1 struct {
    GuidStart            UUID
    CGuids               ndr.DWORD
    PNC                  *DSNAME                 `ndr:"unique"`
    PUpToDateVecCommonV1 *UPTODATE_VECTOR_V1_EXT `ndr:"unique"`
    Md5Digest            [16]uint8
}

type DRS\_MSG\_FINISH\_DEMOTIONREPLY

DRS_MSG_FINISH_DEMOTIONREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_FINISH_DEMOTIONREPLY struct {
    Tag ndr.DWORD                       `ndr:"switch"`
    V1  DRS_MSG_FINISH_DEMOTIONREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_FINISH\_DEMOTIONREPLY\_V1

DRS_MSG_FINISH_DEMOTIONREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_FINISH_DEMOTIONREPLY_V1 struct {
    DwOperationsDone ndr.DWORD
    DwOpFailed       ndr.DWORD
    DwOpError        ndr.DWORD
}

type DRS\_MSG\_FINISH\_DEMOTIONREQ

DRS_MSG_FINISH_DEMOTIONREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_FINISH_DEMOTIONREQ struct {
    Tag ndr.DWORD                     `ndr:"switch"`
    V1  DRS_MSG_FINISH_DEMOTIONREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_FINISH\_DEMOTIONREQ\_V1

DRS_MSG_FINISH_DEMOTIONREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_FINISH_DEMOTIONREQ_V1 struct {
    DwOperations   ndr.DWORD
    UuidHelperDest UUID
    SzScriptBase   *ndr.WSTR `ndr:"unique"`
}

type DRS\_MSG\_GETCHGREPLY

DRS_MSG_GETCHGREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_GETCHGREPLY struct {
    Tag ndr.DWORD              `ndr:"switch"`
    V1  DRS_MSG_GETCHGREPLY_V1 `ndr:"case=1"`
    V2  DRS_MSG_GETCHGREPLY_V2 `ndr:"case=2"`
    V6  DRS_MSG_GETCHGREPLY_V6 `ndr:"case=6"`
    V7  DRS_MSG_GETCHGREPLY_V7 `ndr:"case=7"`
    V9  DRS_MSG_GETCHGREPLY_V9 `ndr:"case=9"`
}

type DRS\_MSG\_GETCHGREPLY\_V1

DRS_MSG_GETCHGREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREPLY_V1 struct {
    UuidDsaObjSrc     UUID
    UuidInvocIdSrc    UUID
    PNC               *DSNAME `ndr:"unique"`
    UsnvecFrom        USN_VECTOR
    UsnvecTo          USN_VECTOR
    PUpToDateVecSrcV1 *UPTODATE_VECTOR_V1_EXT `ndr:"unique"`
    PrefixTableSrc    SCHEMA_PREFIX_TABLE
    UlExtendedRet     ndr.DWORD
    CNumObjects       ndr.DWORD
    CNumBytes         ndr.DWORD
    PObjects          *REPLENTINFLIST `ndr:"unique"`
    FMoreData         ndr.BOOL
}

type DRS\_MSG\_GETCHGREPLY\_V2

DRS_MSG_GETCHGREPLY_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREPLY_V2 struct {
    CompressedV1 DRS_COMPRESSED_BLOB
}

type DRS\_MSG\_GETCHGREPLY\_V6

DRS_MSG_GETCHGREPLY_V6 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREPLY_V6 struct {
    UuidDsaObjSrc     UUID
    UuidInvocIdSrc    UUID
    PNC               *DSNAME `ndr:"unique"`
    UsnvecFrom        USN_VECTOR
    UsnvecTo          USN_VECTOR
    PUpToDateVecSrc   *UPTODATE_VECTOR_V2_EXT `ndr:"unique"`
    PrefixTableSrc    SCHEMA_PREFIX_TABLE
    UlExtendedRet     ndr.DWORD
    CNumObjects       ndr.DWORD
    CNumBytes         ndr.DWORD
    PObjects          *REPLENTINFLIST `ndr:"unique"`
    FMoreData         ndr.BOOL
    CNumNcSizeObjects ndr.DWORD
    CNumNcSizeValues  ndr.DWORD
    CNumValues        ndr.DWORD
    RgValues          []REPLVALINF_V1 `ndr:"unique,size_is=CNumValues"`
    DwDRSError        ndr.DWORD
}

type DRS\_MSG\_GETCHGREPLY\_V7

DRS_MSG_GETCHGREPLY_V7 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREPLY_V7 struct {
    DwCompressedVersion ndr.DWORD
    CompressionAlg      DRS_COMP_ALG_TYPE
    CompressedAny       DRS_COMPRESSED_BLOB
}

type DRS\_MSG\_GETCHGREPLY\_V9

DRS_MSG_GETCHGREPLY_V9 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREPLY_V9 struct {
    UuidDsaObjSrc     UUID
    UuidInvocIdSrc    UUID
    PNC               *DSNAME `ndr:"unique"`
    UsnvecFrom        USN_VECTOR
    UsnvecTo          USN_VECTOR
    PUpToDateVecSrc   *UPTODATE_VECTOR_V2_EXT `ndr:"unique"`
    PrefixTableSrc    SCHEMA_PREFIX_TABLE
    UlExtendedRet     ndr.DWORD
    CNumObjects       ndr.DWORD
    CNumBytes         ndr.DWORD
    PObjects          *REPLENTINFLIST `ndr:"unique"`
    FMoreData         ndr.BOOL
    CNumNcSizeObjects ndr.DWORD
    CNumNcSizeValues  ndr.DWORD
    CNumValues        ndr.DWORD
    RgValues          []REPLVALINF_V3 `ndr:"unique,size_is=CNumValues"`
    DwDRSError        ndr.DWORD
}

type DRS\_MSG\_GETCHGREQ

DRS_MSG_GETCHGREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_GETCHGREQ struct {
    Tag ndr.DWORD             `ndr:"switch"`
    V4  DRS_MSG_GETCHGREQ_V4  `ndr:"case=4"`
    V5  DRS_MSG_GETCHGREQ_V5  `ndr:"case=5"`
    V7  DRS_MSG_GETCHGREQ_V7  `ndr:"case=7"`
    V8  DRS_MSG_GETCHGREQ_V8  `ndr:"case=8"`
    V10 DRS_MSG_GETCHGREQ_V10 `ndr:"case=10"`
    V11 DRS_MSG_GETCHGREQ_V11 `ndr:"case=11"`
}

type DRS\_MSG\_GETCHGREQ\_V10

DRS_MSG_GETCHGREQ_V10 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V10 struct {
    UuidDsaObjDest    UUID
    UuidInvocIdSrc    UUID
    PNC               *DSNAME `ndr:"unique"`
    UsnvecFrom        USN_VECTOR
    PUpToDateVecDest  *UPTODATE_VECTOR_V1_EXT `ndr:"unique"`
    UlFlags           ndr.DWORD
    CMaxObjects       ndr.DWORD
    CMaxBytes         ndr.DWORD
    UlExtendedOp      ndr.DWORD
    LiFsmoInfo        msdtyp.ULARGE_INTEGER
    PPartialAttrSet   *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PPartialAttrSetEx *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PrefixTableDest   SCHEMA_PREFIX_TABLE
    UlMoreFlags       ndr.DWORD
}

type DRS\_MSG\_GETCHGREQ\_V11

DRS_MSG_GETCHGREQ_V11 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V11 struct {
    UuidDsaObjDest    UUID
    UuidInvocIdSrc    UUID
    PNC               *DSNAME `ndr:"unique"`
    UsnvecFrom        USN_VECTOR
    PUpToDateVecDest  *UPTODATE_VECTOR_V1_EXT `ndr:"unique"`
    UlFlags           ndr.DWORD
    CMaxObjects       ndr.DWORD
    CMaxBytes         ndr.DWORD
    UlExtendedOp      ndr.DWORD
    LiFsmoInfo        msdtyp.ULARGE_INTEGER
    PPartialAttrSet   *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PPartialAttrSetEx *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PrefixTableDest   SCHEMA_PREFIX_TABLE
    UlMoreFlags       ndr.DWORD
    CorrelationID     UUID
    PReservedBuffer   *VAR_SIZE_BUFFER_WITH_VERSION `ndr:"unique"`
}

type DRS\_MSG\_GETCHGREQ\_V3

DRS_MSG_GETCHGREQ_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V3 struct {
    UuidDsaObjDest        UUID
    UuidInvocIdSrc        UUID
    PNC                   *DSNAME `ndr:"unique"`
    UsnvecFrom            USN_VECTOR
    PUpToDateVecDestV1    *UPTODATE_VECTOR_V1_EXT     `ndr:"unique"`
    PPartialAttrVecDestV1 *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PrefixTableDest       SCHEMA_PREFIX_TABLE
    UlFlags               ndr.DWORD
    CMaxObjects           ndr.DWORD
    CMaxBytes             ndr.DWORD
    UlExtendedOp          ndr.DWORD
}

type DRS\_MSG\_GETCHGREQ\_V4

DRS_MSG_GETCHGREQ_V4 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V4 struct {
    UuidTransportObj  UUID
    PmtxReturnAddress *MTX_ADDR `ndr:"unique"`
    V3                DRS_MSG_GETCHGREQ_V3
}

type DRS\_MSG\_GETCHGREQ\_V5

DRS_MSG_GETCHGREQ_V5 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V5 struct {
    UuidDsaObjDest     UUID
    UuidInvocIdSrc     UUID
    PNC                *DSNAME `ndr:"unique"`
    UsnvecFrom         USN_VECTOR
    PUpToDateVecDestV1 *UPTODATE_VECTOR_V1_EXT `ndr:"unique"`
    UlFlags            ndr.DWORD
    CMaxObjects        ndr.DWORD
    CMaxBytes          ndr.DWORD
    UlExtendedOp       ndr.DWORD
    LiFsmoInfo         msdtyp.ULARGE_INTEGER
}

type DRS\_MSG\_GETCHGREQ\_V7

DRS_MSG_GETCHGREQ_V7 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V7 struct {
    UuidTransportObj  UUID
    PmtxReturnAddress *MTX_ADDR `ndr:"unique"`
    V3                DRS_MSG_GETCHGREQ_V3
    PPartialAttrSet   *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PPartialAttrSetEx *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PrefixTableDest   SCHEMA_PREFIX_TABLE
}

type DRS\_MSG\_GETCHGREQ\_V8

DRS_MSG_GETCHGREQ_V8 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETCHGREQ_V8 struct {
    UuidDsaObjDest    UUID
    UuidInvocIdSrc    UUID
    PNC               *DSNAME `ndr:"unique"`
    UsnvecFrom        USN_VECTOR
    PUpToDateVecDest  *UPTODATE_VECTOR_V1_EXT `ndr:"unique"`
    UlFlags           ndr.DWORD
    CMaxObjects       ndr.DWORD
    CMaxBytes         ndr.DWORD
    UlExtendedOp      ndr.DWORD
    LiFsmoInfo        msdtyp.ULARGE_INTEGER
    PPartialAttrSet   *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PPartialAttrSetEx *PARTIAL_ATTR_VECTOR_V1_EXT `ndr:"unique"`
    PrefixTableDest   SCHEMA_PREFIX_TABLE
}

type DRS\_MSG\_GETMEMBERSHIPS2\_REPLY

DRS_MSG_GETMEMBERSHIPS2_REPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_GETMEMBERSHIPS2_REPLY struct {
    Tag ndr.DWORD                        `ndr:"switch"`
    V1  DRS_MSG_GETMEMBERSHIPS2_REPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_GETMEMBERSHIPS2\_REPLY\_V1

DRS_MSG_GETMEMBERSHIPS2_REPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETMEMBERSHIPS2_REPLY_V1 struct {
    Count   ndr.DWORD
    Replies []DRS_MSG_REVMEMB_REPLY_V1 `ndr:"unique,size_is=Count"`
}

type DRS\_MSG\_GETMEMBERSHIPS2\_REQ

DRS_MSG_GETMEMBERSHIPS2_REQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_GETMEMBERSHIPS2_REQ struct {
    Tag ndr.DWORD                      `ndr:"switch"`
    V1  DRS_MSG_GETMEMBERSHIPS2_REQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_GETMEMBERSHIPS2\_REQ\_V1

DRS_MSG_GETMEMBERSHIPS2_REQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETMEMBERSHIPS2_REQ_V1 struct {
    Count    ndr.DWORD
    Requests []DRS_MSG_REVMEMB_REQ_V1 `ndr:"unique,size_is=Count"`
}

type DRS\_MSG\_GETREPLINFO\_REPLY

DRS_MSG_GETREPLINFO_REPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_GETREPLINFO_REPLY struct {
    Tag                  ndr.DWORD                       `ndr:"switch"`
    PNeighbors           *DS_REPL_NEIGHBORSW             `ndr:"case=0,unique"`
    PCursors             *DS_REPL_CURSORS                `ndr:"case=1,unique"`
    PObjMetaData         *DS_REPL_OBJ_META_DATA          `ndr:"case=2,unique"`
    PConnectFailures     *DS_REPL_KCC_DSA_FAILURESW      `ndr:"case=3,unique"`
    PLinkFailures        *DS_REPL_KCC_DSA_FAILURESW      `ndr:"case=4,unique"`
    PPendingOps          *DS_REPL_PENDING_OPSW           `ndr:"case=5,unique"`
    PAttrValueMetaData   *DS_REPL_ATTR_VALUE_META_DATA   `ndr:"case=6,unique"`
    PCursors2            *DS_REPL_CURSORS_2              `ndr:"case=7,unique"`
    PCursors3            *DS_REPL_CURSORS_3W             `ndr:"case=8,unique"`
    PObjMetaData2        *DS_REPL_OBJ_META_DATA_2        `ndr:"case=9,unique"`
    PAttrValueMetaData2  *DS_REPL_ATTR_VALUE_META_DATA_2 `ndr:"case=10,unique"`
    PServerOutgoingCalls *DS_REPL_SERVER_OUTGOING_CALLS  `ndr:"case=4294967290,unique"`
    PUpToDateVec         *UPTODATE_VECTOR_V1_EXT         `ndr:"case=4294967291,unique"`
    PClientContexts      *DS_REPL_CLIENT_CONTEXTS        `ndr:"case=4294967292,unique"`
    PRepsTo              *DS_REPL_NEIGHBORSW             `ndr:"case=4294967294,unique"`
}

type DRS\_MSG\_GETREPLINFO\_REQ

DRS_MSG_GETREPLINFO_REQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_GETREPLINFO_REQ struct {
    Tag ndr.DWORD                  `ndr:"switch"`
    V1  DRS_MSG_GETREPLINFO_REQ_V1 `ndr:"case=1"`
    V2  DRS_MSG_GETREPLINFO_REQ_V2 `ndr:"case=2"`
}

type DRS\_MSG\_GETREPLINFO\_REQ\_V1

DRS_MSG_GETREPLINFO_REQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETREPLINFO_REQ_V1 struct {
    InfoType             ndr.DWORD
    PszObjectDN          *ndr.WSTR `ndr:"unique"`
    UuidSourceDsaObjGuid UUID
}

type DRS\_MSG\_GETREPLINFO\_REQ\_V2

DRS_MSG_GETREPLINFO_REQ_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_GETREPLINFO_REQ_V2 struct {
    InfoType             ndr.DWORD
    PszObjectDN          *ndr.WSTR `ndr:"unique"`
    UuidSourceDsaObjGuid UUID
    UlFlags              ndr.DWORD
    PszAttributeName     *ndr.WSTR `ndr:"unique"`
    PszValueDN           *ndr.WSTR `ndr:"unique"`
    DwEnumerationContext ndr.DWORD
}

type DRS\_MSG\_INIT\_DEMOTIONREPLY

DRS_MSG_INIT_DEMOTIONREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_INIT_DEMOTIONREPLY struct {
    Tag ndr.DWORD                     `ndr:"switch"`
    V1  DRS_MSG_INIT_DEMOTIONREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_INIT\_DEMOTIONREPLY\_V1

DRS_MSG_INIT_DEMOTIONREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_INIT_DEMOTIONREPLY_V1 struct {
    DwOpError ndr.DWORD
}

type DRS\_MSG\_INIT\_DEMOTIONREQ

DRS_MSG_INIT_DEMOTIONREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_INIT_DEMOTIONREQ struct {
    Tag ndr.DWORD                   `ndr:"switch"`
    V1  DRS_MSG_INIT_DEMOTIONREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_INIT\_DEMOTIONREQ\_V1

DRS_MSG_INIT_DEMOTIONREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_INIT_DEMOTIONREQ_V1 struct {
    DwReserved ndr.DWORD
}

type DRS\_MSG\_KCC\_EXECUTE

DRS_MSG_KCC_EXECUTE is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_KCC_EXECUTE struct {
    Tag ndr.DWORD              `ndr:"switch"`
    V1  DRS_MSG_KCC_EXECUTE_V1 `ndr:"case=1"`
}

type DRS\_MSG\_KCC\_EXECUTE\_V1

DRS_MSG_KCC_EXECUTE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_KCC_EXECUTE_V1 struct {
    DwTaskID ndr.DWORD
    DwFlags  ndr.DWORD
}

type DRS\_MSG\_MOVEREPLY

DRS_MSG_MOVEREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_MOVEREPLY struct {
    Tag ndr.DWORD            `ndr:"switch"`
    V1  DRS_MSG_MOVEREPLY_V1 `ndr:"case=1"`
    V2  DRS_MSG_MOVEREPLY_V2 `ndr:"case=2"`
}

type DRS\_MSG\_MOVEREPLY\_V1

DRS_MSG_MOVEREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_MOVEREPLY_V1 struct {
    PpResult    **ENTINF `ndr:"unique"` // IDL: ENTINF **ppResult (double unique ptr); verify referent levels at wire-validation
    PrefixTable SCHEMA_PREFIX_TABLE
    PError      *ndr.DWORD `ndr:"unique"`
}

type DRS\_MSG\_MOVEREPLY\_V2

DRS_MSG_MOVEREPLY_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_MOVEREPLY_V2 struct {
    Win32Error ndr.DWORD
    PAddedName *DSNAME `ndr:"unique"`
}

type DRS\_MSG\_MOVEREQ

DRS_MSG_MOVEREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_MOVEREQ struct {
    Tag ndr.DWORD          `ndr:"switch"`
    V1  DRS_MSG_MOVEREQ_V1 `ndr:"case=1"`
    V2  DRS_MSG_MOVEREQ_V2 `ndr:"case=2"`
}

type DRS\_MSG\_MOVEREQ\_V1

DRS_MSG_MOVEREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_MOVEREQ_V1 struct {
    PSourceDSA  *byte   `ndr:"unique"`
    PObject     *ENTINF `ndr:"unique"`
    PParentUUID *UUID   `ndr:"unique"`
    PrefixTable SCHEMA_PREFIX_TABLE
    UlFlags     ndr.DWORD
}

type DRS\_MSG\_MOVEREQ\_V2

DRS_MSG_MOVEREQ_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_MOVEREQ_V2 struct {
    PSrcDSA           *DSNAME            `ndr:"unique"`
    PSrcObject        *ENTINF            `ndr:"unique"`
    PDstName          *DSNAME            `ndr:"unique"`
    PExpectedTargetNC *DSNAME            `ndr:"unique"`
    PClientCreds      *DRS_SecBufferDesc `ndr:"unique"`
    PrefixTable       SCHEMA_PREFIX_TABLE
    UlFlags           ndr.DWORD
}

type DRS\_MSG\_NT4\_CHGLOG\_REPLY

DRS_MSG_NT4_CHGLOG_REPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_NT4_CHGLOG_REPLY struct {
    Tag ndr.DWORD                   `ndr:"switch"`
    V1  DRS_MSG_NT4_CHGLOG_REPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_NT4\_CHGLOG\_REPLY\_V1

DRS_MSG_NT4_CHGLOG_REPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_NT4_CHGLOG_REPLY_V1 struct {
    CbRestart        ndr.DWORD
    CbLog            ndr.DWORD
    ReplicationState NT4_REPLICATION_STATE
    ActualNtStatus   ndr.DWORD
    PRestart         []uint8 `ndr:"unique,size_is=CbRestart"`
    PLog             []uint8 `ndr:"unique,size_is=CbLog"`
}

type DRS\_MSG\_NT4\_CHGLOG\_REQ

DRS_MSG_NT4_CHGLOG_REQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_NT4_CHGLOG_REQ struct {
    Tag ndr.DWORD                 `ndr:"switch"`
    V1  DRS_MSG_NT4_CHGLOG_REQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_NT4\_CHGLOG\_REQ\_V1

DRS_MSG_NT4_CHGLOG_REQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_NT4_CHGLOG_REQ_V1 struct {
    DwFlags                ndr.DWORD
    PreferredMaximumLength ndr.DWORD
    CbRestart              ndr.DWORD
    PRestart               []uint8 `ndr:"unique,size_is=CbRestart"`
}

type DRS\_MSG\_QUERYSITESREPLY

DRS_MSG_QUERYSITESREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_QUERYSITESREPLY struct {
    Tag ndr.DWORD                  `ndr:"switch"`
    V1  DRS_MSG_QUERYSITESREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_QUERYSITESREPLYELEMENT\_V1

DRS_MSG_QUERYSITESREPLYELEMENT_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_QUERYSITESREPLYELEMENT_V1 struct {
    DwErrorCode ndr.DWORD
    DwCost      ndr.DWORD
}

type DRS\_MSG\_QUERYSITESREPLY\_V1

DRS_MSG_QUERYSITESREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_QUERYSITESREPLY_V1 struct {
    CToSites   ndr.DWORD
    RgCostInfo []DRS_MSG_QUERYSITESREPLYELEMENT_V1 `ndr:"unique,size_is=CToSites"`
    DwFlags    ndr.DWORD
}

type DRS\_MSG\_QUERYSITESREQ

DRS_MSG_QUERYSITESREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_QUERYSITESREQ struct {
    Tag ndr.DWORD                `ndr:"switch"`
    V1  DRS_MSG_QUERYSITESREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_QUERYSITESREQ\_V1

DRS_MSG_QUERYSITESREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_QUERYSITESREQ_V1 struct {
    PwszFromSite *ndr.WSTR `ndr:"unique"`
    CToSites     ndr.DWORD
    RgszToSites  []*ndr.WSTR `ndr:"unique,size_is=CToSites"` // IDL: [string] WCHAR **rgszToSites (array of strings)
    DwFlags      ndr.DWORD
}

type DRS\_MSG\_READNGCKEYREPLY

DRS_MSG_READNGCKEYREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_READNGCKEYREPLY struct {
    Tag ndr.DWORD                  `ndr:"switch"`
    V1  DRS_MSG_READNGCKEYREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_READNGCKEYREPLY\_V1

DRS_MSG_READNGCKEYREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_READNGCKEYREPLY_V1 struct {
    RetVal  ndr.DWORD
    CNgcKey ndr.DWORD
    PNgcKey []uint8 `ndr:"unique,size_is=CNgcKey"`
}

type DRS\_MSG\_READNGCKEYREQ

DRS_MSG_READNGCKEYREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_READNGCKEYREQ struct {
    Tag ndr.DWORD                `ndr:"switch"`
    V1  DRS_MSG_READNGCKEYREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_READNGCKEYREQ\_V1

DRS_MSG_READNGCKEYREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_READNGCKEYREQ_V1 struct {
    PwszAccount *ndr.WSTR `ndr:"unique"`
}

type DRS\_MSG\_REPADD

DRS_MSG_REPADD is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPADD struct {
    Tag ndr.DWORD         `ndr:"switch"`
    V1  DRS_MSG_REPADD_V1 `ndr:"case=1"`
    V2  DRS_MSG_REPADD_V2 `ndr:"case=2"`
    V3  DRS_MSG_REPADD_V3 `ndr:"case=3"`
}

type DRS\_MSG\_REPADD\_V1

DRS_MSG_REPADD_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPADD_V1 struct {
    PNC        *DSNAME   `ndr:"unique"`
    PszDsaSrc  *ndr.WSTR `ndr:"unique"`
    RtSchedule REPLTIMES
    UlOptions  ndr.DWORD
}

type DRS\_MSG\_REPADD\_V2

DRS_MSG_REPADD_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPADD_V2 struct {
    PNC                 *DSNAME   `ndr:"unique"`
    PSourceDsaDN        *DSNAME   `ndr:"unique"`
    PTransportDN        *DSNAME   `ndr:"unique"`
    PszSourceDsaAddress *ndr.WSTR `ndr:"unique"`
    RtSchedule          REPLTIMES
    UlOptions           ndr.DWORD
}

type DRS\_MSG\_REPADD\_V3

DRS_MSG_REPADD_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPADD_V3 struct {
    PNC                 *DSNAME   `ndr:"unique"`
    PSourceDsaDN        *DSNAME   `ndr:"unique"`
    PTransportDN        *DSNAME   `ndr:"unique"`
    PszSourceDsaAddress *ndr.WSTR `ndr:"unique"`
    RtSchedule          REPLTIMES
    UlOptions           ndr.DWORD
    CorrelationID       UUID
    PReservedBuffer     *VAR_SIZE_BUFFER_WITH_VERSION `ndr:"unique"`
}

type DRS\_MSG\_REPDEL

DRS_MSG_REPDEL is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPDEL struct {
    Tag ndr.DWORD         `ndr:"switch"`
    V1  DRS_MSG_REPDEL_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REPDEL\_V1

DRS_MSG_REPDEL_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPDEL_V1 struct {
    PNC       *DSNAME   `ndr:"unique"`
    PszDsaSrc *ndr.WSTR `ndr:"unique"`
    UlOptions ndr.DWORD
}

type DRS\_MSG\_REPLICA\_DEMOTIONREPLY

DRS_MSG_REPLICA_DEMOTIONREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPLICA_DEMOTIONREPLY struct {
    Tag ndr.DWORD                        `ndr:"switch"`
    V1  DRS_MSG_REPLICA_DEMOTIONREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REPLICA\_DEMOTIONREPLY\_V1

DRS_MSG_REPLICA_DEMOTIONREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPLICA_DEMOTIONREPLY_V1 struct {
    DwOpError ndr.DWORD
}

type DRS\_MSG\_REPLICA\_DEMOTIONREQ

DRS_MSG_REPLICA_DEMOTIONREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPLICA_DEMOTIONREQ struct {
    Tag ndr.DWORD                      `ndr:"switch"`
    V1  DRS_MSG_REPLICA_DEMOTIONREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REPLICA\_DEMOTIONREQ\_V1

DRS_MSG_REPLICA_DEMOTIONREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPLICA_DEMOTIONREQ_V1 struct {
    DwFlags        ndr.DWORD
    UuidHelperDest UUID
    PNC            *DSNAME `ndr:"unique"`
}

type DRS\_MSG\_REPMOD

DRS_MSG_REPMOD is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPMOD struct {
    Tag ndr.DWORD         `ndr:"switch"`
    V1  DRS_MSG_REPMOD_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REPMOD\_V1

DRS_MSG_REPMOD_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPMOD_V1 struct {
    PNC            *DSNAME `ndr:"unique"`
    UuidSourceDRA  UUID
    PszSourceDRA   *ndr.WSTR `ndr:"unique"`
    RtSchedule     REPLTIMES
    UlReplicaFlags ndr.DWORD
    UlModifyFields ndr.DWORD
    UlOptions      ndr.DWORD
}

type DRS\_MSG\_REPSYNC

DRS_MSG_REPSYNC is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPSYNC struct {
    Tag ndr.DWORD          `ndr:"switch"`
    V1  DRS_MSG_REPSYNC_V1 `ndr:"case=1"`
    V2  DRS_MSG_REPSYNC_V2 `ndr:"case=2"`
}

type DRS\_MSG\_REPSYNC\_V1

DRS_MSG_REPSYNC_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPSYNC_V1 struct {
    PNC        *DSNAME `ndr:"unique"`
    UuidDsaSrc UUID
    PszDsaSrc  *ndr.WSTR `ndr:"unique"`
    UlOptions  ndr.DWORD
}

type DRS\_MSG\_REPSYNC\_V2

DRS_MSG_REPSYNC_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPSYNC_V2 struct {
    PNC             *DSNAME `ndr:"unique"`
    UuidDsaSrc      UUID
    PszDsaSrc       *ndr.WSTR `ndr:"unique"`
    UlOptions       ndr.DWORD
    CorrelationID   UUID
    PReservedBuffer *VAR_SIZE_BUFFER_WITH_VERSION `ndr:"unique"`
}

type DRS\_MSG\_REPVERIFYOBJ

DRS_MSG_REPVERIFYOBJ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REPVERIFYOBJ struct {
    Tag ndr.DWORD               `ndr:"switch"`
    V1  DRS_MSG_REPVERIFYOBJ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REPVERIFYOBJ\_V1

DRS_MSG_REPVERIFYOBJ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REPVERIFYOBJ_V1 struct {
    PNC        *DSNAME `ndr:"unique"`
    UuidDsaSrc UUID
    UlOptions  ndr.DWORD
}

type DRS\_MSG\_REVMEMB\_REPLY

DRS_MSG_REVMEMB_REPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REVMEMB_REPLY struct {
    Tag ndr.DWORD                `ndr:"switch"`
    V1  DRS_MSG_REVMEMB_REPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REVMEMB\_REPLY\_V1

DRS_MSG_REVMEMB_REPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REVMEMB_REPLY_V1 struct {
    ErrCode      ndr.DWORD
    CDsNames     ndr.DWORD
    CSidHistory  ndr.DWORD
    PpDsNames    []*DSNAME   `ndr:"unique,size_is=CDsNames"` // IDL: DSNAME **ppDsNames
    PAttributes  []ndr.DWORD `ndr:"unique,size_is=CDsNames"`
    PpSidHistory []*NT4SID   `ndr:"unique,size_is=CSidHistory"` // IDL: NT4SID **ppSidHistory
}

type DRS\_MSG\_REVMEMB\_REQ

DRS_MSG_REVMEMB_REQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_REVMEMB_REQ struct {
    Tag ndr.DWORD              `ndr:"switch"`
    V1  DRS_MSG_REVMEMB_REQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_REVMEMB\_REQ\_V1

DRS_MSG_REVMEMB_REQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_REVMEMB_REQ_V1 struct {
    CDsNames        ndr.DWORD
    PpDsNames       []*DSNAME `ndr:"unique,size_is=CDsNames"` // IDL: DSNAME **ppDsNames
    DwFlags         ndr.DWORD
    OperationType   REVERSE_MEMBERSHIP_OPERATION_TYPE
    PLimitingDomain *DSNAME `ndr:"unique"`
}

type DRS\_MSG\_RMDMNREPLY

DRS_MSG_RMDMNREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_RMDMNREPLY struct {
    Tag ndr.DWORD             `ndr:"switch"`
    V1  DRS_MSG_RMDMNREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_RMDMNREPLY\_V1

DRS_MSG_RMDMNREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_RMDMNREPLY_V1 struct {
    Reserved ndr.DWORD
}

type DRS\_MSG\_RMDMNREQ

DRS_MSG_RMDMNREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_RMDMNREQ struct {
    Tag ndr.DWORD           `ndr:"switch"`
    V1  DRS_MSG_RMDMNREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_RMDMNREQ\_V1

DRS_MSG_RMDMNREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_RMDMNREQ_V1 struct {
    DomainDN *ndr.WSTR `ndr:"unique"`
}

type DRS\_MSG\_RMSVRREPLY

DRS_MSG_RMSVRREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_RMSVRREPLY struct {
    Tag ndr.DWORD             `ndr:"switch"`
    V1  DRS_MSG_RMSVRREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_RMSVRREPLY\_V1

DRS_MSG_RMSVRREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_RMSVRREPLY_V1 struct {
    FLastDcInDomain ndr.BOOL
}

type DRS\_MSG\_RMSVRREQ

DRS_MSG_RMSVRREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_RMSVRREQ struct {
    Tag ndr.DWORD           `ndr:"switch"`
    V1  DRS_MSG_RMSVRREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_RMSVRREQ\_V1

DRS_MSG_RMSVRREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_RMSVRREQ_V1 struct {
    ServerDN *ndr.WSTR `ndr:"unique"`
    DomainDN *ndr.WSTR `ndr:"unique"`
    FCommit  ndr.BOOL
}

type DRS\_MSG\_SPNREPLY

DRS_MSG_SPNREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_SPNREPLY struct {
    Tag ndr.DWORD           `ndr:"switch"`
    V1  DRS_MSG_SPNREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_SPNREPLY\_V1

DRS_MSG_SPNREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_SPNREPLY_V1 struct {
    RetVal ndr.DWORD
}

type DRS\_MSG\_SPNREQ

DRS_MSG_SPNREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_SPNREQ struct {
    Tag ndr.DWORD         `ndr:"switch"`
    V1  DRS_MSG_SPNREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_SPNREQ\_V1

DRS_MSG_SPNREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_SPNREQ_V1 struct {
    Operation   ndr.DWORD
    Flags       ndr.DWORD
    PwszAccount *ndr.WSTR `ndr:"unique"`
    CSPN        ndr.DWORD
    RpwszSPN    []*ndr.WSTR `ndr:"unique,size_is=CSPN"` // IDL: [string] WCHAR **rpwszSPN (array of strings)
}

type DRS\_MSG\_UPDREFS

DRS_MSG_UPDREFS is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_UPDREFS struct {
    Tag ndr.DWORD          `ndr:"switch"`
    V1  DRS_MSG_UPDREFS_V1 `ndr:"case=1"`
    V2  DRS_MSG_UPDREFS_V2 `ndr:"case=2"`
}

type DRS\_MSG\_UPDREFS\_V1

DRS_MSG_UPDREFS_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_UPDREFS_V1 struct {
    PNC            *DSNAME   `ndr:"unique"`
    PszDsaDest     *ndr.WSTR `ndr:"unique"`
    UuidDsaObjDest UUID
    UlOptions      ndr.DWORD
}

type DRS\_MSG\_UPDREFS\_V2

DRS_MSG_UPDREFS_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_UPDREFS_V2 struct {
    PNC             *DSNAME   `ndr:"unique"`
    PszDsaDest      *ndr.WSTR `ndr:"unique"`
    UuidDsaObjDest  UUID
    UlOptions       ndr.DWORD
    CorrelationID   UUID
    PReservedBuffer *VAR_SIZE_BUFFER_WITH_VERSION `ndr:"unique"`
}

type DRS\_MSG\_VERIFYREPLY

DRS_MSG_VERIFYREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_VERIFYREPLY struct {
    Tag ndr.DWORD              `ndr:"switch"`
    V1  DRS_MSG_VERIFYREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_VERIFYREPLY\_V1

DRS_MSG_VERIFYREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_VERIFYREPLY_V1 struct {
    Error       ndr.DWORD
    CNames      ndr.DWORD
    RpEntInf    []ENTINF `ndr:"unique,size_is=CNames"`
    PrefixTable SCHEMA_PREFIX_TABLE
}

type DRS\_MSG\_VERIFYREQ

DRS_MSG_VERIFYREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_VERIFYREQ struct {
    Tag ndr.DWORD            `ndr:"switch"`
    V1  DRS_MSG_VERIFYREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_VERIFYREQ\_V1

DRS_MSG_VERIFYREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_VERIFYREQ_V1 struct {
    DwFlags       ndr.DWORD
    CNames        ndr.DWORD
    RpNames       []*DSNAME `ndr:"unique,size_is=CNames"` // IDL: DSNAME **rpNames (array of unique ptrs)
    RequiredAttrs ATTRBLOCK
    PrefixTable   SCHEMA_PREFIX_TABLE
}

type DRS\_MSG\_WRITENGCKEYREPLY

DRS_MSG_WRITENGCKEYREPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_WRITENGCKEYREPLY struct {
    Tag ndr.DWORD                   `ndr:"switch"`
    V1  DRS_MSG_WRITENGCKEYREPLY_V1 `ndr:"case=1"`
}

type DRS\_MSG\_WRITENGCKEYREPLY\_V1

DRS_MSG_WRITENGCKEYREPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_WRITENGCKEYREPLY_V1 struct {
    RetVal ndr.DWORD
}

type DRS\_MSG\_WRITENGCKEYREQ

DRS_MSG_WRITENGCKEYREQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DRS_MSG_WRITENGCKEYREQ struct {
    Tag ndr.DWORD                 `ndr:"switch"`
    V1  DRS_MSG_WRITENGCKEYREQ_V1 `ndr:"case=1"`
}

type DRS\_MSG\_WRITENGCKEYREQ\_V1

DRS_MSG_WRITENGCKEYREQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_MSG_WRITENGCKEYREQ_V1 struct {
    PwszAccount *ndr.WSTR `ndr:"unique"`
    CNgcKey     ndr.DWORD
    PNgcKey     []uint8 `ndr:"unique,size_is=CNgcKey"`
}

type DRS\_SecBuffer

DRS_SecBuffer ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_SecBuffer struct {
    CbBuffer   ndr.DWORD
    BufferType ndr.DWORD
    PvBuffer   []uint8 `ndr:"unique,size_is=CbBuffer"`
}

type DRS\_SecBufferDesc

DRS_SecBufferDesc ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DRS_SecBufferDesc struct {
    UlVersion ndr.DWORD
    CBuffers  ndr.DWORD
    Buffers   []DRS_SecBuffer `ndr:"unique,size_is=CBuffers"`
}

type DSA\_ADDRESS\_LIST\_DRS\_WIRE\_V1

DSA_ADDRESS_LIST_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DSA_ADDRESS_LIST_DRS_WIRE_V1 struct {
    PNextAddress *DSA_ADDRESS_LIST_DRS_WIRE_V1 `ndr:"unique"`
    PAddress     *msdtyp.RPC_UNICODE_STRING    `ndr:"unique"`
}

type DSA\_MSG\_EXECUTE\_SCRIPT\_REPLY

DSA_MSG_EXECUTE_SCRIPT_REPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DSA_MSG_EXECUTE_SCRIPT_REPLY struct {
    Tag ndr.DWORD                       `ndr:"switch"`
    V1  DSA_MSG_EXECUTE_SCRIPT_REPLY_V1 `ndr:"case=1"`
}

type DSA\_MSG\_EXECUTE\_SCRIPT\_REPLY\_V1

DSA_MSG_EXECUTE_SCRIPT_REPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DSA_MSG_EXECUTE_SCRIPT_REPLY_V1 struct {
    DwOperationStatus ndr.DWORD
    PwErrMessage      *ndr.WSTR `ndr:"unique"`
}

type DSA\_MSG\_EXECUTE\_SCRIPT\_REQ

DSA_MSG_EXECUTE_SCRIPT_REQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DSA_MSG_EXECUTE_SCRIPT_REQ struct {
    Tag ndr.DWORD                     `ndr:"switch"`
    V1  DSA_MSG_EXECUTE_SCRIPT_REQ_V1 `ndr:"case=1"`
}

type DSA\_MSG\_EXECUTE\_SCRIPT\_REQ\_V1

DSA_MSG_EXECUTE_SCRIPT_REQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DSA_MSG_EXECUTE_SCRIPT_REQ_V1 struct {
    Flags      ndr.DWORD
    CbPassword ndr.DWORD
    PbPassword []uint8 `ndr:"unique,size_is=CbPassword"`
}

type DSA\_MSG\_PREPARE\_SCRIPT\_REPLY

DSA_MSG_PREPARE_SCRIPT_REPLY is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DSA_MSG_PREPARE_SCRIPT_REPLY struct {
    Tag ndr.DWORD                       `ndr:"switch"`
    V1  DSA_MSG_PREPARE_SCRIPT_REPLY_V1 `ndr:"case=1"`
}

type DSA\_MSG\_PREPARE\_SCRIPT\_REPLY\_V1

DSA_MSG_PREPARE_SCRIPT_REPLY_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DSA_MSG_PREPARE_SCRIPT_REPLY_V1 struct {
    DwOperationStatus ndr.DWORD
    PwErrMessage      *ndr.WSTR `ndr:"unique"`
    CbPassword        ndr.DWORD
    PbPassword        []uint8 `ndr:"unique,size_is=CbPassword"`
    CbHashBody        ndr.DWORD
    PbHashBody        []uint8 `ndr:"unique,size_is=CbHashBody"`
    CbHashSignature   ndr.DWORD
    PbHashSignature   []uint8 `ndr:"unique,size_is=CbHashSignature"`
}

type DSA\_MSG\_PREPARE\_SCRIPT\_REQ

DSA_MSG_PREPARE_SCRIPT_REQ is a discriminated union ([MS-DRSR]); the discriminant precedes the selected arm ([C706] 14.3.8). Generated by tools/idlgen — verify case values.

type DSA_MSG_PREPARE_SCRIPT_REQ struct {
    Tag ndr.DWORD                     `ndr:"switch"`
    V1  DSA_MSG_PREPARE_SCRIPT_REQ_V1 `ndr:"case=1"`
}

type DSA\_MSG\_PREPARE\_SCRIPT\_REQ\_V1

DSA_MSG_PREPARE_SCRIPT_REQ_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DSA_MSG_PREPARE_SCRIPT_REQ_V1 struct {
    Reserved ndr.DWORD
}

type DSNAME

DSNAME identifies a directory object by GUID, SID, and/or distinguished name ([MS-DRSR] 5.50). StringName is the IDL’s inline conformant array `[size_is(NameLen+1)] WCHAR StringName[]` — NOT a pointer (idlgen defaulted it to `unique`, which would emit a stray referent id). As the trailing conformant member its maximum_count is hoisted ahead of StructLen; the codec derives that count from the slice length, so callers MUST size StringName to NameLen+1 (the DN plus its NUL terminator). Build one with NewDSNameFromGUID for GUID-based addressing (EXOP_REPL_OBJ).

type DSNAME struct {
    StructLen  ndr.DWORD
    SidLen     ndr.DWORD
    Guid       UUID
    Sid        NT4SID
    NameLen    ndr.DWORD
    StringName []uint16 `ndr:"conformant"`
}

func NewDSNameFromDN

func NewDSNameFromDN(dn string) DSNAME

NewDSNameFromDN builds a DSNAME that addresses an object by its distinguished name, with no GUID or SID — the form used to name a naming context head for full-NC replication (IDL_DRSGetNCChanges with no EXOP). NameLen is the DN’s UTF-16 code-unit count; StringName is the DN plus its NUL terminator (so maximum_count is NameLen+1). StructLen is the fixed prefix (StructLen..NameLen = 56 octets) plus the name bytes.

func NewDSNameFromGUID

func NewDSNameFromGUID(g guid.GUID) DSNAME

NewDSNameFromGUID builds a DSNAME that addresses an object solely by its objectGUID, with no SID and an empty (NUL-only) name — the form used to replicate a single object by GUID (IDL_DRSGetNCChanges EXOP_REPL_OBJ). NameLen is 0 and StringName is the single terminating NUL, so its maximum_count is 1. StructLen is the fixed prefix size (the fields through NameLen plus the one-WCHAR name): 4+4+16+28+4+2 = 58 bytes.

func NewDSNameFromSID

func NewDSNameFromSID(sid []byte) DSNAME

NewDSNameFromSID builds a DSNAME that addresses an object by its binary SID (up to 28 octets, [MS-DTYP] 2.4.2.2), with no GUID or distinguished name — the form reverse membership (IDL_DRSGetMemberships) computes over. StructLen is the GUID-form fixed prefix (58); SidLen is the SID byte count.

type DSTIME

DSTIME is a scalar typedef ([MS-DRSR]).

type DSTIME int64

type DS\_DOMAIN\_CONTROLLER\_INFO\_1W

DS_DOMAIN_CONTROLLER_INFO_1W ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_DOMAIN_CONTROLLER_INFO_1W struct {
    NetbiosName        *ndr.WSTR `ndr:"unique"`
    DnsHostName        *ndr.WSTR `ndr:"unique"`
    SiteName           *ndr.WSTR `ndr:"unique"`
    ComputerObjectName *ndr.WSTR `ndr:"unique"`
    ServerObjectName   *ndr.WSTR `ndr:"unique"`
    FIsPdc             ndr.BOOL
    FDsEnabled         ndr.BOOL
}

type DS\_DOMAIN\_CONTROLLER\_INFO\_2W

DS_DOMAIN_CONTROLLER_INFO_2W ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_DOMAIN_CONTROLLER_INFO_2W struct {
    NetbiosName        *ndr.WSTR `ndr:"unique"`
    DnsHostName        *ndr.WSTR `ndr:"unique"`
    SiteName           *ndr.WSTR `ndr:"unique"`
    SiteObjectName     *ndr.WSTR `ndr:"unique"`
    ComputerObjectName *ndr.WSTR `ndr:"unique"`
    ServerObjectName   *ndr.WSTR `ndr:"unique"`
    NtdsDsaObjectName  *ndr.WSTR `ndr:"unique"`
    FIsPdc             ndr.BOOL
    FDsEnabled         ndr.BOOL
    FIsGc              ndr.BOOL
    SiteObjectGuid     UUID
    ComputerObjectGuid UUID
    ServerObjectGuid   UUID
    NtdsDsaObjectGuid  UUID
}

type DS\_DOMAIN\_CONTROLLER\_INFO\_3W

DS_DOMAIN_CONTROLLER_INFO_3W ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_DOMAIN_CONTROLLER_INFO_3W struct {
    NetbiosName        *ndr.WSTR `ndr:"unique"`
    DnsHostName        *ndr.WSTR `ndr:"unique"`
    SiteName           *ndr.WSTR `ndr:"unique"`
    SiteObjectName     *ndr.WSTR `ndr:"unique"`
    ComputerObjectName *ndr.WSTR `ndr:"unique"`
    ServerObjectName   *ndr.WSTR `ndr:"unique"`
    NtdsDsaObjectName  *ndr.WSTR `ndr:"unique"`
    FIsPdc             ndr.BOOL
    FDsEnabled         ndr.BOOL
    FIsGc              ndr.BOOL
    FIsRodc            ndr.BOOL
    SiteObjectGuid     UUID
    ComputerObjectGuid UUID
    ServerObjectGuid   UUID
    NtdsDsaObjectGuid  UUID
}

type DS\_DOMAIN\_CONTROLLER\_INFO\_FFFFFFFFW

DS_DOMAIN_CONTROLLER_INFO_FFFFFFFFW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_DOMAIN_CONTROLLER_INFO_FFFFFFFFW struct {
    IPAddress         ndr.DWORD
    NotificationCount ndr.DWORD
    SecTimeConnected  ndr.DWORD
    Flags             ndr.DWORD
    TotalRequests     ndr.DWORD
    Reserved1         ndr.DWORD
    UserName          *ndr.WSTR `ndr:"unique"`
}

type DS\_NAME\_RESULTW

DS_NAME_RESULTW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_NAME_RESULTW struct {
    CItems ndr.DWORD
    RItems []DS_NAME_RESULT_ITEMW `ndr:"unique,size_is=CItems"`
}

type DS\_NAME\_RESULT\_ITEMW

DS_NAME_RESULT_ITEMW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_NAME_RESULT_ITEMW struct {
    Status  ndr.DWORD
    PDomain *ndr.WSTR `ndr:"unique"`
    PName   *ndr.WSTR `ndr:"unique"`
}

type DS\_REPL\_ATTR\_META\_DATA

DS_REPL_ATTR_META_DATA ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_ATTR_META_DATA struct {
    PszAttributeName                   *ndr.WSTR `ndr:"unique"`
    DwVersion                          ndr.DWORD
    FtimeLastOriginatingChange         FILETIME
    UuidLastOriginatingDsaInvocationID UUID
    UsnOriginatingChange               int64
    UsnLocalChange                     int64
}

type DS\_REPL\_ATTR\_META\_DATA\_2

DS_REPL_ATTR_META_DATA_2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_ATTR_META_DATA_2 struct {
    PszAttributeName                   *ndr.WSTR `ndr:"unique"`
    DwVersion                          ndr.DWORD
    FtimeLastOriginatingChange         FILETIME
    UuidLastOriginatingDsaInvocationID UUID
    UsnOriginatingChange               int64
    UsnLocalChange                     int64
    PszLastOriginatingDsaDN            *ndr.WSTR `ndr:"unique"`
}

type DS\_REPL\_ATTR\_VALUE\_META\_DATA

DS_REPL_ATTR_VALUE_META_DATA ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_ATTR_VALUE_META_DATA struct {
    CNumEntries          ndr.DWORD
    DwEnumerationContext ndr.DWORD
    RgMetaData           []DS_REPL_VALUE_META_DATA `ndr:"conformant,size_is=CNumEntries"`
}

type DS\_REPL\_ATTR\_VALUE\_META\_DATA\_2

DS_REPL_ATTR_VALUE_META_DATA_2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_ATTR_VALUE_META_DATA_2 struct {
    CNumEntries          ndr.DWORD
    DwEnumerationContext ndr.DWORD
    RgMetaData           []DS_REPL_VALUE_META_DATA_2 `ndr:"conformant,size_is=CNumEntries"`
}

type DS\_REPL\_CLIENT\_CONTEXT

DS_REPL_CLIENT_CONTEXT ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CLIENT_CONTEXT struct {
    HCtx            uint64
    LReferenceCount int32
    FIsBound        ndr.BOOL
    UuidClient      UUID
    TimeLastUsed    int64
    IPAddr          ndr.DWORD
    Pid             int32
}

type DS\_REPL\_CLIENT\_CONTEXTS

DS_REPL_CLIENT_CONTEXTS ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CLIENT_CONTEXTS struct {
    CNumContexts ndr.DWORD
    DwReserved   ndr.DWORD
    RgContext    []DS_REPL_CLIENT_CONTEXT `ndr:"conformant,size_is=CNumContexts"`
}

type DS\_REPL\_CURSOR

DS_REPL_CURSOR ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CURSOR struct {
    UuidSourceDsaInvocationID UUID
    UsnAttributeFilter        int64
}

type DS\_REPL\_CURSORS

DS_REPL_CURSORS ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CURSORS struct {
    CNumCursors ndr.DWORD
    DwReserved  ndr.DWORD
    RgCursor    []DS_REPL_CURSOR `ndr:"conformant,size_is=CNumCursors"`
}

type DS\_REPL\_CURSORS\_2

DS_REPL_CURSORS_2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CURSORS_2 struct {
    CNumCursors          ndr.DWORD
    DwEnumerationContext ndr.DWORD
    RgCursor             []DS_REPL_CURSOR_2 `ndr:"conformant,size_is=CNumCursors"`
}

type DS\_REPL\_CURSORS\_3W

DS_REPL_CURSORS_3W ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CURSORS_3W struct {
    CNumCursors          ndr.DWORD
    DwEnumerationContext ndr.DWORD
    RgCursor             []DS_REPL_CURSOR_3W `ndr:"conformant,size_is=CNumCursors"`
}

type DS\_REPL\_CURSOR\_2

DS_REPL_CURSOR_2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CURSOR_2 struct {
    UuidSourceDsaInvocationID UUID
    UsnAttributeFilter        int64
    FtimeLastSyncSuccess      FILETIME
}

type DS\_REPL\_CURSOR\_3W

DS_REPL_CURSOR_3W ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_CURSOR_3W struct {
    UuidSourceDsaInvocationID UUID
    UsnAttributeFilter        int64
    FtimeLastSyncSuccess      FILETIME
    PszSourceDsaDN            *ndr.WSTR `ndr:"unique"`
}

type DS\_REPL\_KCC\_DSA\_FAILURESW

DS_REPL_KCC_DSA_FAILURESW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_KCC_DSA_FAILURESW struct {
    CNumEntries  ndr.DWORD
    DwReserved   ndr.DWORD
    RgDsaFailure []DS_REPL_KCC_DSA_FAILUREW `ndr:"conformant,size_is=CNumEntries"`
}

type DS\_REPL\_KCC\_DSA\_FAILUREW

DS_REPL_KCC_DSA_FAILUREW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_KCC_DSA_FAILUREW struct {
    PszDsaDN          *ndr.WSTR `ndr:"unique"`
    UuidDsaObjGuid    UUID
    FtimeFirstFailure FILETIME
    CNumFailures      ndr.DWORD
    DwLastResult      ndr.DWORD
}

type DS\_REPL\_NEIGHBORSW

DS_REPL_NEIGHBORSW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_NEIGHBORSW struct {
    CNumNeighbors ndr.DWORD
    DwReserved    ndr.DWORD
    RgNeighbor    []DS_REPL_NEIGHBORW `ndr:"conformant,size_is=CNumNeighbors"`
}

type DS\_REPL\_NEIGHBORW

DS_REPL_NEIGHBORW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_NEIGHBORW struct {
    PszNamingContext                   *ndr.WSTR `ndr:"unique"`
    PszSourceDsaDN                     *ndr.WSTR `ndr:"unique"`
    PszSourceDsaAddress                *ndr.WSTR `ndr:"unique"`
    PszAsyncIntersiteTransportDN       *ndr.WSTR `ndr:"unique"`
    DwReplicaFlags                     ndr.DWORD
    DwReserved                         ndr.DWORD
    UuidNamingContextObjGuid           UUID
    UuidSourceDsaObjGuid               UUID
    UuidSourceDsaInvocationID          UUID
    UuidAsyncIntersiteTransportObjGuid UUID
    UsnLastObjChangeSynced             int64
    UsnAttributeFilter                 int64
    FtimeLastSyncSuccess               FILETIME
    FtimeLastSyncAttempt               FILETIME
    DwLastSyncResult                   ndr.DWORD
    CNumConsecutiveSyncFailures        ndr.DWORD
}

type DS\_REPL\_OBJ\_META\_DATA

DS_REPL_OBJ_META_DATA ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_OBJ_META_DATA struct {
    CNumEntries ndr.DWORD
    DwReserved  ndr.DWORD
    RgMetaData  []DS_REPL_ATTR_META_DATA `ndr:"conformant,size_is=CNumEntries"`
}

type DS\_REPL\_OBJ\_META\_DATA\_2

DS_REPL_OBJ_META_DATA_2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_OBJ_META_DATA_2 struct {
    CNumEntries ndr.DWORD
    DwReserved  ndr.DWORD
    RgMetaData  []DS_REPL_ATTR_META_DATA_2 `ndr:"conformant,size_is=CNumEntries"`
}

type DS\_REPL\_OPW

DS_REPL_OPW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_OPW struct {
    FtimeEnqueued            FILETIME
    UlSerialNumber           ndr.DWORD
    UlPriority               ndr.DWORD
    OpType                   DS_REPL_OP_TYPE
    UlOptions                ndr.DWORD
    PszNamingContext         *ndr.WSTR `ndr:"unique"`
    PszDsaDN                 *ndr.WSTR `ndr:"unique"`
    PszDsaAddress            *ndr.WSTR `ndr:"unique"`
    UuidNamingContextObjGuid UUID
    UuidDsaObjGuid           UUID
}

type DS\_REPL\_OP\_TYPE

DS_REPL_OP_TYPE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-DRSR]).

type DS_REPL_OP_TYPE uint16
const (
    DS_REPL_OP_TYPE_SYNC        DS_REPL_OP_TYPE = 0
    DS_REPL_OP_TYPE_ADD         DS_REPL_OP_TYPE = 1
    DS_REPL_OP_TYPE_DELETE      DS_REPL_OP_TYPE = 2
    DS_REPL_OP_TYPE_MODIFY      DS_REPL_OP_TYPE = 3
    DS_REPL_OP_TYPE_UPDATE_REFS DS_REPL_OP_TYPE = 4
)

type DS\_REPL\_PENDING\_OPSW

DS_REPL_PENDING_OPSW ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_PENDING_OPSW struct {
    FtimeCurrentOpStarted FILETIME
    CNumPendingOps        ndr.DWORD
    RgPendingOp           []DS_REPL_OPW `ndr:"conformant,size_is=CNumPendingOps"`
}

type DS\_REPL\_SERVER\_OUTGOING\_CALL

DS_REPL_SERVER_OUTGOING_CALL ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_SERVER_OUTGOING_CALL struct {
    PszServerName        *ndr.WSTR `ndr:"unique"`
    FIsHandleBound       ndr.BOOL
    FIsHandleFromCache   ndr.BOOL
    FIsHandleInCache     ndr.BOOL
    DwThreadId           ndr.DWORD
    DwBindingTimeoutMins ndr.DWORD
    DstimeCreated        int64
    DwCallType           ndr.DWORD
}

type DS\_REPL\_SERVER\_OUTGOING\_CALLS

DS_REPL_SERVER_OUTGOING_CALLS ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_SERVER_OUTGOING_CALLS struct {
    CNumCalls  ndr.DWORD
    DwReserved ndr.DWORD
    RgCall     []DS_REPL_SERVER_OUTGOING_CALL `ndr:"conformant,size_is=CNumCalls"`
}

type DS\_REPL\_VALUE\_META\_DATA

DS_REPL_VALUE_META_DATA ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_VALUE_META_DATA struct {
    PszAttributeName                   *ndr.WSTR `ndr:"unique"`
    PszObjectDn                        *ndr.WSTR `ndr:"unique"`
    CbData                             ndr.DWORD
    PbData                             []uint8 `ndr:"unique,size_is=CbData"`
    FtimeDeleted                       FILETIME
    FtimeCreated                       FILETIME
    DwVersion                          ndr.DWORD
    FtimeLastOriginatingChange         FILETIME
    UuidLastOriginatingDsaInvocationID UUID
    UsnOriginatingChange               int64
    UsnLocalChange                     int64
}

type DS\_REPL\_VALUE\_META\_DATA\_2

DS_REPL_VALUE_META_DATA_2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type DS_REPL_VALUE_META_DATA_2 struct {
    PszAttributeName                   *ndr.WSTR `ndr:"unique"`
    PszObjectDn                        *ndr.WSTR `ndr:"unique"`
    CbData                             ndr.DWORD
    PbData                             []uint8 `ndr:"unique,size_is=CbData"`
    FtimeDeleted                       FILETIME
    FtimeCreated                       FILETIME
    DwVersion                          ndr.DWORD
    FtimeLastOriginatingChange         FILETIME
    UuidLastOriginatingDsaInvocationID UUID
    UsnOriginatingChange               int64
    UsnLocalChange                     int64
    PszLastOriginatingDsaDN            *ndr.WSTR `ndr:"unique"`
}

type ENTINF

ENTINF ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ENTINF struct {
    PName     *DSNAME `ndr:"unique"`
    UlFlags   ndr.DWORD
    AttrBlock ATTRBLOCK
}

type ENTINFLIST

ENTINFLIST ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type ENTINFLIST struct {
    PNextEntInf *ENTINFLIST `ndr:"unique"`
    Entinf      ENTINF
}

type FILETIME

FILETIME is the [MS-DTYP] FILETIME (2.3.3): a 64-bit count of 100-nanosecond intervals since January 1, 1601 (UTC), split into two 32-bit words. The IDL imports it from ms-msdtyp.idl rather than defining it, so it is aliased to msdtyp.FILETIME.

type FILETIME = msdtyp.FILETIME

type INTFORMPROB\_DRS\_WIRE\_V1

INTFORMPROB_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type INTFORMPROB_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
    Type         ndr.DWORD
    ValReturned  ndr.BOOL
    Val          ATTRVAL
}

type MTX\_ADDR

MTX_ADDR ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type MTX_ADDR struct {
    Mtx_namelen ndr.DWORD
    Mtx_name    []byte `ndr:"conformant,size_is=Mtx_namelen"`
}

type NAMERESOP\_DRS\_WIRE\_V1

NAMERESOP_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type NAMERESOP_DRS_WIRE_V1 struct {
    NameRes   uint8
    UnusedPad uint8
    NextRDN   uint16
}

type NAMERR\_DRS\_WIRE\_V1

NAMERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type NAMERR_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
    PMatched     *DSNAME `ndr:"unique"`
}

type NT4SID

NT4SID ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type NT4SID struct {
    Data [28]byte
}

type NT4\_REPLICATION\_STATE

NT4_REPLICATION_STATE ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type NT4_REPLICATION_STATE struct {
    SamSerialNumber     msdtyp.LARGE_INTEGER
    SamCreationTime     msdtyp.LARGE_INTEGER
    BuiltinSerialNumber msdtyp.LARGE_INTEGER
    BuiltinCreationTime msdtyp.LARGE_INTEGER
    LsaSerialNumber     msdtyp.LARGE_INTEGER
    LsaCreationTime     msdtyp.LARGE_INTEGER
}

type OID\_t

OID_t ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type OID_t struct {
    Length   uint32
    Elements []uint8 `ndr:"unique,size_is=Length"`
}

type PARTIAL\_ATTR\_VECTOR\_V1\_EXT

PARTIAL_ATTR_VECTOR_V1_EXT ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type PARTIAL_ATTR_VECTOR_V1_EXT struct {
    DwVersion     ndr.DWORD
    DwReserved1   ndr.DWORD
    CAttrs        ndr.DWORD
    RgPartialAttr []ndr.DWORD `ndr:"conformant,size_is=CAttrs"`
}

type PROBLEMLIST\_DRS\_WIRE\_V1

PROBLEMLIST_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type PROBLEMLIST_DRS_WIRE_V1 struct {
    PNextProblem *PROBLEMLIST_DRS_WIRE_V1 `ndr:"unique"`
    Intprob      INTFORMPROB_DRS_WIRE_V1
}

type PROPERTY\_META\_DATA\_EXT

PROPERTY_META_DATA_EXT ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type PROPERTY_META_DATA_EXT struct {
    DwVersion          ndr.DWORD
    TimeChanged        int64
    UuidDsaOriginating UUID
    UsnOriginating     int64
}

type PROPERTY\_META\_DATA\_EXT\_VECTOR

PROPERTY_META_DATA_EXT_VECTOR ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type PROPERTY_META_DATA_EXT_VECTOR struct {
    CNumProps  ndr.DWORD
    RgMetaData []PROPERTY_META_DATA_EXT `ndr:"conformant,size_is=CNumProps"`
}

type PrefixTableEntry

PrefixTableEntry ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type PrefixTableEntry struct {
    Ndx    ndr.DWORD
    Prefix OID_t
}

type REFERR\_DRS\_WIRE\_V1

REFERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type REFERR_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Refer        CONTREF_DRS_WIRE_V1
}

type REPLENTINFLIST

REPLENTINFLIST ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type REPLENTINFLIST struct {
    PNextEntInf  *REPLENTINFLIST `ndr:"unique"`
    Entinf       ENTINF
    FIsNCPrefix  ndr.BOOL
    PParentGuid  *UUID                          `ndr:"unique"`
    PMetaDataExt *PROPERTY_META_DATA_EXT_VECTOR `ndr:"unique"`
}

type REPLTIMES

REPLTIMES ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type REPLTIMES struct {
    RgTimes [84]uint8
}

type REPLVALINF\_V1

REPLVALINF_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type REPLVALINF_V1 struct {
    PObject    *DSNAME `ndr:"unique"`
    AttrTyp    ndr.DWORD
    Aval       ATTRVAL
    FIsPresent ndr.BOOL
    MetaData   VALUE_META_DATA_EXT_V1
}

type REPLVALINF\_V3

REPLVALINF_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type REPLVALINF_V3 struct {
    PObject    *DSNAME `ndr:"unique"`
    AttrTyp    ndr.DWORD
    Aval       ATTRVAL
    FIsPresent ndr.BOOL
    MetaData   VALUE_META_DATA_EXT_V3
}

type REVERSE\_MEMBERSHIP\_OPERATION\_TYPE

REVERSE_MEMBERSHIP_OPERATION_TYPE is an NDR enum, transmitted as a 16-bit value ([C706] 14.3.6, [MS-DRSR]).

type REVERSE_MEMBERSHIP_OPERATION_TYPE uint16
const (
    RevMembGetGroupsForUser          REVERSE_MEMBERSHIP_OPERATION_TYPE = 1
    RevMembGetAliasMembership        REVERSE_MEMBERSHIP_OPERATION_TYPE = 2
    RevMembGetAccountGroups          REVERSE_MEMBERSHIP_OPERATION_TYPE = 3
    RevMembGetResourceGroups         REVERSE_MEMBERSHIP_OPERATION_TYPE = 4
    RevMembGetUniversalGroups        REVERSE_MEMBERSHIP_OPERATION_TYPE = 5
    GroupMembersTransitive           REVERSE_MEMBERSHIP_OPERATION_TYPE = 6
    RevMembGlobalGroupsNonTransitive REVERSE_MEMBERSHIP_OPERATION_TYPE = 7
)

type SCHEMA\_PREFIX\_TABLE

SCHEMA_PREFIX_TABLE ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type SCHEMA_PREFIX_TABLE struct {
    PrefixCount  ndr.DWORD
    PPrefixEntry []PrefixTableEntry `ndr:"unique,size_is=PrefixCount"`
}

type SECERR\_DRS\_WIRE\_V1

SECERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type SECERR_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
}

type SVCERR\_DRS\_WIRE\_V1

SVCERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type SVCERR_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
}

type SYSERR\_DRS\_WIRE\_V1

SYSERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type SYSERR_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
}

type UPDERR\_DRS\_WIRE\_V1

UPDERR_DRS_WIRE_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type UPDERR_DRS_WIRE_V1 struct {
    Dsid         ndr.DWORD
    ExtendedErr  ndr.DWORD
    ExtendedData ndr.DWORD
    Problem      uint16
}

type UPTODATE\_CURSOR\_V1

UPTODATE_CURSOR_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type UPTODATE_CURSOR_V1 struct {
    UuidDsa           UUID
    UsnHighPropUpdate int64
}

type UPTODATE\_CURSOR\_V2

UPTODATE_CURSOR_V2 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type UPTODATE_CURSOR_V2 struct {
    UuidDsa             UUID
    UsnHighPropUpdate   int64
    TimeLastSyncSuccess int64
}

type UPTODATE\_VECTOR\_V1\_EXT

UPTODATE_VECTOR_V1_EXT ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type UPTODATE_VECTOR_V1_EXT struct {
    DwVersion   ndr.DWORD
    DwReserved1 ndr.DWORD
    CNumCursors ndr.DWORD
    DwReserved2 ndr.DWORD
    RgCursors   []UPTODATE_CURSOR_V1 `ndr:"conformant,size_is=CNumCursors"`
}

type UPTODATE\_VECTOR\_V2\_EXT

UPTODATE_VECTOR_V2_EXT ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type UPTODATE_VECTOR_V2_EXT struct {
    DwVersion   ndr.DWORD
    DwReserved1 ndr.DWORD
    CNumCursors ndr.DWORD
    DwReserved2 ndr.DWORD
    RgCursors   []UPTODATE_CURSOR_V2 `ndr:"conformant,size_is=CNumCursors"`
}

type USN

USN is a scalar typedef ([MS-DRSR]).

type USN int64

type USN\_VECTOR

USN_VECTOR ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type USN_VECTOR struct {
    UsnHighObjUpdate  int64
    UsnReserved       int64
    UsnHighPropUpdate int64
}

type UUID

UUID is the [MS-DTYP]/[C706] uuid_t as it appears on the wire: 16 octets with Data1/2/3 little-endian and Data4 big-endian (guid.GUID.ToBytes order). drsuapi uses it for both the IDL GUID and UUID types (UuidDsa, puuidClientDsa, DSNAME.Guid, …).

It is a fixed octet array, NOT an embedded guid.GUID, because guid.GUID’s Go layout (a trailing uint64) does not reflect to 16 contiguous octets under the NDR codec — it would emit 18 bytes in the wrong order. It is a plain struct, NOT an ndr.Marshaler, so the codec keeps its normal NULL-referent handling for *UUID pointer fields (a Marshaler would be dereferenced even when the pointer is nil). This mirrors the proven EptUUID in the endpoint-mapper interface. uuid_t is 4-octet aligned under NDR; every UUID field in this interface follows a 4-octet field or starts a struct, so natural alignment holds without an explicit override.

type UUID struct {
    Octets [16]byte
}

func NTDSAPIClientGUID

func NTDSAPIClientGUID() UUID

NTDSAPIClientGUID is the well-known client DSA GUID a non-DC tool passes as IDL_DRSBind’s puuidClientDsa (the value the NTDSAPI DsBind* client uses): e24d201a-4fd6-11d1-a3da-0000f875ae0d. The server rejects only the NULL GUID; this value is also the one required if the handle is later used for IDL_DRSWriteSPN ([MS-DRSR] 4.1.3.1).

func UUIDFromGUID

func UUIDFromGUID(g guid.GUID) UUID

UUIDFromGUID converts a guid.GUID to its 16-octet wire form.

func (UUID) GUID

func (u UUID) GUID() guid.GUID

GUID converts the octets back to a guid.GUID.

func (UUID) IsZero

func (u UUID) IsZero() bool

IsZero reports whether the UUID is the all-zero NULL GUID.

type VALUE\_META\_DATA\_EXT\_V1

VALUE_META_DATA_EXT_V1 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type VALUE_META_DATA_EXT_V1 struct {
    TimeCreated int64
    MetaData    PROPERTY_META_DATA_EXT
}

type VALUE\_META\_DATA\_EXT\_V3

VALUE_META_DATA_EXT_V3 ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type VALUE_META_DATA_EXT_V3 struct {
    TimeCreated int64
    MetaData    PROPERTY_META_DATA_EXT
    Unused1     ndr.DWORD
    Unused2     ndr.DWORD
    Unused3     ndr.DWORD
    TimeExpired int64
}

type VAR\_SIZE\_BUFFER\_WITH\_VERSION

VAR_SIZE_BUFFER_WITH_VERSION ([MS-DRSR]). Generated by tools/idlgen; verify pointer/array tags.

type VAR_SIZE_BUFFER_WITH_VERSION struct {
    UlVersion    ndr.DWORD
    CbByteBuffer ndr.DWORD
    UllPadding   uint64
    RgbBuffer    []uint8 `ndr:"conformant,size_is=CbByteBuffer"`
}