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

msdnsp

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

Package msdnsp holds the wire structures of the DNS Server Management Protocol ([MS-DNSP]), one type per file. It contains two distinct serialization families that share the one specification:

  1. NDR/RPC structures - the types exchanged over the DnsServer RPC interface (UUID 50abc2a4-574d-40b3-9d66-ee4fd5fba076 version 5.0). These were generated from the [MS-DNSP] Appendix A IDL and reconciled by hand against the dcerpc-interface-structure skill’s NDR rules; they are marshaled with the ndr codec and round-tripped in structures_test.go. Method stubs live under the interface tree, not here.

  2. Packed LDAP on-directory structures - the byte-packed, mixed-endian formats that Active Directory stores in DNS attributes and that LDAP tooling reads and writes directly. These are NOT NDR: each exposes Marshal() ([]byte, error) and Unmarshal([]byte) (int, error) and is verified by its own byte-level tests, so they are intentionally outside the ndr.Marshal round-trip harness in structures_test.go. This family comprises:

- DNS_RECORD (section 2.3.2.2): the dnsRecord attribute container, with the record-data payloads DNS_RPC_RECORD_A, _AAAA, _NODE_NAME, _SOA, _SRV, _NAME_PREFERENCE and _TS, the DNS_COUNT_NAME name form (section 2.2.2.2.2), and the RecordType map (DNS_RECORD_TYPE, section 2.2.2.1.1). - DNS_PROPERTY (section 2.3.2.1): the dnsProperty attribute container, with the PropertyId map (section 2.3.2.1.1) and the ZoneType / ZoneUpdate value enumerations.

The two families do not overlap in names: the NDR DNS_RPC_RECORD (with its opaque Buffer field) is the RPC record wrapper, whereas the packed DNS_RECORD is the LDAP container and the DNS_RPC_RECORD_* types are its packed payloads. Header endianness in the packed family is little-endian except where [MS-DNSP] mandates network byte order (DNS_RECORD.TtlSeconds and the SOA/SRV/NAME_PREFERENCE numeric fields); DNS_RPC_RECORD_TS.EntombedTime is little-endian.

The following NDR spots are modeled per the spec/skill but NOT yet validated against Windows on the wire:

  • DNSSRV_RPC_UNION: a switch_type(DWORD) union whose discriminant is carried inline (the Tag field) in addition to the method’s dwTypeId argument, per Manticore’s switch_is convention. Each arm is a unique pointer to its payload struct.
  • ASCII vs. wide strings: [string] char* fields are modeled as *ndr.STR (UTF-8) and [string] wchar_t*/LPWSTR as *ndr.WSTR (UTF-16); the choice is per-field from the IDL.
  • The [1]-sentinel enumeration lists (DNS_RPC_ENUM_ZONE_SCOPE_LIST, DNS_RPC_ENUM_SCOPE_LIST, DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST, DNS_RPC_ZONE_DNSSEC_SETTINGS.pZoneSkdArray) keep the IDL’s literal [1] declarator; on the wire the server sends dwXxxCount entries.
  • The DNS-record data payloads inside the NDR DNS_RPC_RECORD.Buffer remain an opaque byte blob; the packed LDAP DNS_RECORD family above is the decoded on-directory representation.

Index

Constants

DNSPropertyVersion is the value that the Version field of a DNS_PROPERTY MUST carry.

const DNSPropertyVersion uint32 = 0x00000001

DNSRecordVersion is the value that the Version field of a DNS_RECORD MUST carry.

const DNSRecordVersion uint8 = 0x05

type DNSSRV\_RPC\_UNION

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

type DNSSRV_RPC_UNION struct {
    Tag                          ndr.DWORD                                  `ndr:"switch"`
    Null                         *uint8                                     `ndr:"case=0,unique"`
    Dword                        ndr.DWORD                                  `ndr:"case=1"`
    String                       *ndr.STR                                   `ndr:"case=2,unique"`
    WideString                   *ndr.WSTR                                  `ndr:"case=3,unique"`
    IpArray                      *IP4_ARRAY                                 `ndr:"case=4,unique"`
    Buffer                       *DNS_RPC_BUFFER                            `ndr:"case=5,unique"`
    ServerInfoW2K                *DNS_RPC_SERVER_INFO_W2K                   `ndr:"case=6,unique"`
    Stats                        *DNSSRV_STAT                               `ndr:"case=7,unique"`
    ForwardersW2K                *DNS_RPC_FORWARDERS_W2K                    `ndr:"case=8,unique"`
    ZoneW2K                      *DNS_RPC_ZONE_W2K                          `ndr:"case=9,unique"`
    ZoneInfoW2K                  *DNS_RPC_ZONE_INFO_W2K                     `ndr:"case=10,unique"`
    SecondariesW2K               *DNS_RPC_ZONE_SECONDARIES_W2K              `ndr:"case=11,unique"`
    DatabaseW2K                  *DNS_RPC_ZONE_DATABASE_W2K                 `ndr:"case=12,unique"`
    ZoneCreateW2K                *DNS_RPC_ZONE_CREATE_INFO_W2K              `ndr:"case=14,unique"`
    NameAndParam                 *DNS_RPC_NAME_AND_PARAM                    `ndr:"case=15,unique"`
    ZoneListW2K                  *DNS_RPC_ZONE_LIST_W2K                     `ndr:"case=16,unique"`
    ServerInfoDotNet             *DNS_RPC_SERVER_INFO_DOTNET                `ndr:"case=19,unique"`
    ForwardersDotNet             *DNS_RPC_FORWARDERS_DOTNET                 `ndr:"case=20,unique"`
    Zone                         *DNS_RPC_ZONE_DOTNET                       `ndr:"case=21,unique"`
    ZoneInfoDotNet               *DNS_RPC_ZONE_INFO_DOTNET                  `ndr:"case=22,unique"`
    SecondariesDotNet            *DNS_RPC_ZONE_SECONDARIES_DOTNET           `ndr:"case=23,unique"`
    Database                     *DNS_RPC_ZONE_DATABASE_DOTNET              `ndr:"case=24,unique"`
    ZoneCreateDotNet             *DNS_RPC_ZONE_CREATE_INFO_DOTNET           `ndr:"case=26,unique"`
    ZoneList                     *DNS_RPC_ZONE_LIST_DOTNET                  `ndr:"case=27,unique"`
    ZoneExport                   *DNS_RPC_ZONE_EXPORT_INFO                  `ndr:"case=18,unique"`
    DirectoryPartition           *DNS_RPC_DP_INFO                           `ndr:"case=29,unique"`
    DirectoryPartitionEnum       *DNS_RPC_DP_ENUM                           `ndr:"case=28,unique"`
    DirectoryPartitionList       *DNS_RPC_DP_LIST                           `ndr:"case=30,unique"`
    EnlistDirectoryPartition     *DNS_RPC_ENLIST_DP                         `ndr:"case=31,unique"`
    ZoneChangeDirectoryPartition *DNS_RPC_ZONE_CHANGE_DP                    `ndr:"case=32,unique"`
    EnumZonesFilter              *DNS_RPC_ENUM_ZONES_FILTER                 `ndr:"case=33,unique"`
    AddrArray                    *DNS_ADDR_ARRAY                            `ndr:"case=34,unique"`
    ServerInfo                   *DNS_RPC_SERVER_INFO_LONGHORN              `ndr:"case=35,unique"`
    ZoneCreate                   *DNS_RPC_ZONE_CREATE_INFO_LONGHORN         `ndr:"case=40,unique"`
    Forwarders                   *DNS_RPC_FORWARDERS_LONGHORN               `ndr:"case=37,unique"`
    Secondaries                  *DNS_RPC_ZONE_SECONDARIES_LONGHORN         `ndr:"case=38,unique"`
    IpValidate                   *DNS_RPC_IP_VALIDATE                       `ndr:"case=41,unique"`
    ZoneInfo                     *DNS_RPC_ZONE_INFO_LONGHORN                `ndr:"case=36,unique"`
    AutoConfigure                *DNS_RPC_AUTOCONFIGURE                     `ndr:"case=42,unique"`
    Utf8StringList               *DNS_RPC_UTF8_STRING_LIST                  `ndr:"case=43,unique"`
    UnicodeStringList            *DNS_RPC_UNICODE_STRING_LIST               `ndr:"case=44,unique"`
    Skd                          *DNS_RPC_SKD                               `ndr:"case=45,unique"`
    SkdList                      *DNS_RPC_SKD_LIST                          `ndr:"case=46,unique"`
    SkdState                     *DNS_RPC_SKD_STATE                         `ndr:"case=47,unique"`
    SigningValidationError       *DNS_RPC_SIGNING_VALIDATION_ERROR          `ndr:"case=48,unique"`
    TrustPointList               *DNS_RPC_TRUST_POINT_LIST                  `ndr:"case=49,unique"`
    TrustAnchorList              *DNS_RPC_TRUST_ANCHOR_LIST                 `ndr:"case=50,unique"`
    ZoneDnsSecSettings           *DNS_RPC_ZONE_DNSSEC_SETTINGS              `ndr:"case=51,unique"`
    ZoneScopeList                *DNS_RPC_ENUM_ZONE_SCOPE_LIST              `ndr:"case=52,unique"`
    ZoneStats                    *DNS_RPC_ZONE_STATS                        `ndr:"case=53,unique"`
    ScopeCreate                  *DNS_RPC_ZONE_SCOPE_CREATE_INFO            `ndr:"case=54,unique"`
    ScopeInfo                    *DNS_RPC_ZONE_SCOPE_INFO                   `ndr:"case=55,unique"`
    ScopeList                    *DNS_RPC_ENUM_SCOPE_LIST                   `ndr:"case=56,unique"`
    SubnetList                   *DNS_RPC_CLIENT_SUBNET_RECORD              `ndr:"case=57,unique"`
    PPolicy                      *DNS_RPC_POLICY                            `ndr:"case=58,unique"`
    PPolicyName                  *DNS_RPC_POLICY_NAME                       `ndr:"case=59,unique"`
    PPolicyList                  *DNS_RPC_ENUMERATE_POLICY_LIST             `ndr:"case=60,unique"`
    PRRLParams                   *DNS_RPC_RRL_PARAMS                        `ndr:"case=61,unique"`
    VirtualizationInstance       *DNS_RPC_VIRTUALIZATION_INSTANCE           `ndr:"case=62,unique"`
    VirtualizationInstanceList   *DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST `ndr:"case=63,unique"`
    PEncryptionConfig            *DNS_RPC_ENCRYPTION_CONFIG                 `ndr:"case=64,unique"`
}

type DNSSRV\_RRL\_STATS

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

type DNSSRV_RRL_STATS struct {
    Header                  DNSSRV_STAT_HEADER
    TotalResponsesSent      ndr.DWORD
    TotalResponsesDropped   ndr.DWORD
    TotalResponsesTruncated ndr.DWORD
    TotalResponsesLeaked    ndr.DWORD
}

type DNSSRV\_STAT

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

type DNSSRV_STAT struct {
    Header DNSSRV_STAT_HEADER
    Buffer [1]uint8
}

type DNSSRV\_STAT\_HEADER

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

type DNSSRV_STAT_HEADER struct {
    StatId    ndr.DWORD
    WLength   uint16
    FClear    bool
    FReserved uint8
}

type DNSSRV\_ZONE\_QUERY\_STATS

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

type DNSSRV_ZONE_QUERY_STATS struct {
    RecordType       DNS_ZONE_STATS_TYPE
    QueriesResponded uint64
    QueriesReceived  uint64
    QueriesFailure   uint64
    QueriesNameError uint64
}

type DNSSRV\_ZONE\_RRL\_STATS

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

type DNSSRV_ZONE_RRL_STATS struct {
    Type                    DNS_ZONE_STATS_TYPE
    TotalResponsesSent      ndr.DWORD
    TotalResponsesDropped   ndr.DWORD
    TotalResponsesTruncated ndr.DWORD
    TotalResponsesLeaked    ndr.DWORD
}

type DNSSRV\_ZONE\_TIME\_STATS

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

type DNSSRV_ZONE_TIME_STATS struct {
    StatsCollectionStartTime DNS_SYSTEMTIME
}

type DNSSRV\_ZONE\_TRANSFER\_STATS

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

type DNSSRV_ZONE_TRANSFER_STATS struct {
    TransferType     DNS_ZONE_STATS_TYPE
    RequestReceived  uint64
    RequestSent      uint64
    ResponseReceived uint64
    SuccessReceived  uint64
    SuccessSent      uint64
}

type DNSSRV\_ZONE\_UPDATE\_STATS

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

type DNSSRV_ZONE_UPDATE_STATS struct {
    Type                  DNS_ZONE_STATS_TYPE
    DynamicUpdateReceived uint64
    DynamicUpdateRejected uint64
}

type DNS\_ADDR

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

type DNS_ADDR struct {
    MaxSa            [32]byte
    DnsAddrUserDword [8]ndr.DWORD
}

type DNS\_ADDR\_ARRAY

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

type DNS_ADDR_ARRAY struct {
    MaxCount     ndr.DWORD
    AddrCount    ndr.DWORD
    Tag          ndr.DWORD
    Family       uint16
    WordReserved uint16
    Flags        ndr.DWORD
    MatchFlag    ndr.DWORD
    Reserved1    ndr.DWORD
    Reserved2    ndr.DWORD
    AddrArray    []DNS_ADDR `ndr:"conformant,size_is=AddrCount"`
}

type DNS\_COUNT\_NAME

DNS_COUNT_NAME is the on-directory form of an FQDN used inside dnsRecord attribute values carried over LDAP. When a dnsRecord value is written to the directory each name is converted from DNS_RPC_NAME (section 2.2.2.2.1) to DNS_COUNT_NAME, and converted back when read.

The name is encoded as a sequence of length-prefixed labels: a 1-byte label-length count is inserted before the first label and in place of each “.” delimiter, and the sequence is null-terminated. For example “example.com” is encoded as 07 ’example’ 03 ‘com’ 00, with a Length of 13 and a LabelCount of 2.

Source: [MS-DNSP] DNS_COUNT_NAME (section 2.2.2.2.2) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/2af86306-3bd9-4c86-b763-fd33e16e3e5b

type DNS_COUNT_NAME struct {
    // Length (1 byte): The length, in bytes, of the string stored in the RawName member,
    // including null termination. To represent an empty string, Length MUST be zero,
    // LabelCount MUST be zero, and RawName MUST be empty.
    Length uint8

    // LabelCount (1 byte): The count of DNS labels in the RawName member.
    LabelCount uint8

    // RawName (variable): A string containing an FQDN in which a 1-byte label length count
    // for the subsequent label has been inserted before the first label and in place of each
    // "." delimiter. The string MUST be null-terminated. The maximum length of the string,
    // including the null terminator, is 256 bytes.
    RawName []byte
}

func NewDNS\_COUNT\_NAME

func NewDNS_COUNT_NAME() *DNS_COUNT_NAME

NewDNS_COUNT_NAME creates a new, empty DNS_COUNT_NAME.

Returns: - A pointer to the new DNS_COUNT_NAME structure

func NewDNS\_COUNT\_NAMEFromFQDN

func NewDNS_COUNT_NAMEFromFQDN(fqdn string) (*DNS_COUNT_NAME, error)

NewDNS_COUNT_NAMEFromFQDN creates a DNS_COUNT_NAME from a dotted FQDN string.

Parameters: - fqdn: The dotted fully-qualified domain name (a trailing “.” is tolerated and ignored)

Returns:

  • A pointer to the populated DNS_COUNT_NAME structure
  • An error if any label is empty or exceeds 63 bytes, or if the encoded name exceeds the 256-byte maximum

func (*DNS_COUNT_NAME) GetFQDN

func (n *DNS_COUNT_NAME) GetFQDN() (string, error)

GetFQDN decodes the RawName into a dotted FQDN string. An empty name decodes to “”.

Returns: - The dotted FQDN - An error if the RawName is malformed (a label length runs past the end of the buffer)

func (*DNS_COUNT_NAME) Marshal

func (n *DNS_COUNT_NAME) Marshal() ([]byte, error)

Marshal marshals the DNS_COUNT_NAME structure into a byte array.

Returns: - A byte array representing the DNS_COUNT_NAME structure - An error if the marshaling fails

func (*DNS_COUNT_NAME) SetFQDN

func (n *DNS_COUNT_NAME) SetFQDN(fqdn string) error

SetFQDN encodes the provided dotted FQDN into the RawName, Length, and LabelCount fields.

Parameters: - fqdn: The dotted fully-qualified domain name (a single trailing “.” is tolerated)

Returns:

  • An error if any label is empty or longer than 63 bytes, or if the encoded name (including the null terminator) exceeds 255 bytes.

func (*DNS_COUNT_NAME) Unmarshal

func (n *DNS_COUNT_NAME) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_COUNT_NAME structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_ENCRYPTION\_TYPE

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

type DNS_ENCRYPTION_TYPE uint16
const (
    DnsEncryptionNone DNS_ENCRYPTION_TYPE = 0
    DnsEncryptionDoH  DNS_ENCRYPTION_TYPE = 1
)

type DNS\_FLAT\_RECORD

DNS_FLAT_RECORD is an alias for DNS_RPC_RECORD (same IDL typedef).

type DNS_FLAT_RECORD = DNS_RPC_RECORD

type DNS\_PROPERTY

DNS_PROPERTY is the packed container that Active Directory stores in each value of the dnsProperty LDAP attribute of a DNS zone object. It holds a fixed 20-byte header, a variable-length Data field of DataLength bytes carrying the property value selected by the Id field (see PropertyId, section 2.3.2.1.1), and a trailing 1-byte Name field that is not used.

All header fields are little-endian.

Source: [MS-DNSP] dnsProperty (section 2.3.2.1) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/445c7843-e4a1-4222-8c0f-630c230a4c80

type DNS_PROPERTY struct {
    // DataLength (4 bytes): The length, in bytes, of the Data field. Marshal recomputes this
    // from the Data field. If 0, the property carries its default value.
    DataLength uint32

    // NameLength (4 bytes): Not used. The value MUST be ignored and assumed to be 0x00000001.
    NameLength uint32

    // Flag (4 bytes): Reserved for future use. The value MUST be 0x00000000.
    Flag uint32

    // Version (4 bytes): The version of the property attribute. The value MUST be 0x00000001.
    Version uint32

    // Id (4 bytes): The property's type, selecting how Data is interpreted.
    Id  PropertyId

    // Data (variable): The property value. See the As* accessors for interpretation.
    Data []byte

    // Name (1 byte): Not used. The value MUST be of length 1 byte and MUST be ignored.
    Name uint8
}

func NewDNS\_PROPERTY

func NewDNS_PROPERTY() *DNS_PROPERTY

NewDNS_PROPERTY creates a new DNS_PROPERTY with Version and NameLength initialized to the values mandated by [MS-DNSP] section 2.3.2.1 (0x00000001 each).

Returns: - A pointer to the new DNS_PROPERTY structure

func (*DNS_PROPERTY) AsIP4Array

func (p *DNS_PROPERTY) AsIP4Array() ([]net.IP, error)

AsIP4Array interprets the Data field as an IP4_ARRAY (section 2.2.3.2.1): a little-endian AddrCount followed by AddrCount IPv4 addresses, each a 4-byte value in network byte order. It is meaningful for the DSPROPERTY_ZONE_SCAVENGING_SERVERS, DSPROPERTY_ZONE_MASTER_SERVERS, and DSPROPERTY_ZONE_AUTO_NS_SERVERS properties.

Returns: - The IPv4 addresses (an empty, non-nil slice when AddrCount is 0) - An error if Data is malformed

func (*DNS_PROPERTY) AsUTF16String

func (p *DNS_PROPERTY) AsUTF16String() string

AsUTF16String interprets the Data field as a null-terminated little-endian UTF-16 string, the form used by the DSPROPERTY_ZONE_DELETED_FROM_HOSTNAME property. The terminating NUL, if present, is removed.

Returns: - The decoded string

func (*DNS_PROPERTY) AsUint32

func (p *DNS_PROPERTY) AsUint32() (uint32, error)

AsUint32 interprets the Data field as a little-endian integer, the form used by the scalar zone properties (DSPROPERTY_ZONE_TYPE, DSPROPERTY_ZONE_ALLOW_UPDATE, the interval properties, DSPROPERTY_ZONE_AGING_STATE, DSPROPERTY_ZONE_DCPROMO_CONVERT, and DSPROPERTY_ZONE_NODE_DBFLAGS).

Although [MS-DNSP] types these properties as a DWORD, a Windows DNS server stores them in the minimum number of little-endian bytes: for example DSPROPERTY_ZONE_ALLOW_UPDATE is commonly a single byte. AsUint32 therefore reads up to four bytes and zero-extends, rather than requiring exactly four.

Returns: - The value, read from up to the first four bytes of Data (little-endian, zero-extended) - An error if Data is empty

func (*DNS_PROPERTY) AsZoneType

func (p *DNS_PROPERTY) AsZoneType() (ZoneType, error)

AsZoneType interprets the Data field as a ZoneType (dwZoneType). It is meaningful for a DSPROPERTY_ZONE_TYPE property.

Returns: - The zone type - An error if Data is empty

func (*DNS_PROPERTY) AsZoneUpdate

func (p *DNS_PROPERTY) AsZoneUpdate() (ZoneUpdate, error)

AsZoneUpdate interprets the Data field as a ZoneUpdate (fAllowUpdate). It is meaningful for a DSPROPERTY_ZONE_ALLOW_UPDATE property.

Returns: - The dynamic-update policy - An error if Data is empty

func (*DNS_PROPERTY) Marshal

func (p *DNS_PROPERTY) Marshal() ([]byte, error)

Marshal marshals the DNS_PROPERTY structure into a byte array. DataLength is recomputed from the current length of the Data field so the header always matches the payload.

Returns: - A byte array representing the DNS_PROPERTY structure - An error if the marshaling fails

func (*DNS_PROPERTY) String

func (p *DNS_PROPERTY) String() string

String returns a human-readable, one-line rendering of the property: its Id name followed by an interpretation of the Data field appropriate to that Id, falling back to the raw byte count for property types whose payload is not decoded here.

func (*DNS_PROPERTY) Unmarshal

func (p *DNS_PROPERTY) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_PROPERTY structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read (20-byte header, DataLength bytes of Data, and the 1-byte Name) - An error if the unmarshaling fails

type DNS\_RECORD

DNS_RECORD is the packed container that Active Directory stores in each value of the dnsRecord LDAP attribute. It holds a fixed 24-byte header followed by a variable-length Data field carrying the type-specific record-data payload (see DNS_RPC_RECORD_DATA, section 2.2.2.2.4) selected by the Type field.

The multi-byte header fields are little-endian except TtlSeconds, which [MS-DNSP] mandates in big-endian byte order.

Source: [MS-DNSP] dnsRecord (section 2.3.2.2) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/6912b338-5472-4f59-b912-0edb536b6ed8

type DNS_RECORD struct {
    // DataLength (2 bytes): An unsigned binary integer containing the length, in bytes, of the
    // Data field. Little-endian. Marshal recomputes this from the Data field.
    DataLength uint16

    // Type (2 bytes): The resource record's type. See DNS_RECORD_TYPE (section 2.2.2.1.1).
    // Little-endian.
    Type RecordType

    // Version (1 byte): The version number associated with the resource record attribute. The
    // value MUST be 0x05.
    Version uint8

    // Rank (1 byte): The least-significant byte of one of the RANK* flag values (see dwFlags,
    // section 2.2.2.2.5).
    Rank uint8

    // Flags (2 bytes): Not used. The value MUST be 0x0000. Little-endian.
    Flags uint16

    // Serial (4 bytes): The serial number of the SOA record of the zone containing this
    // resource record. Little-endian.
    Serial uint32

    // TtlSeconds (4 bytes): The record's time-to-live, in seconds. This field uses big-endian
    // byte order.
    TtlSeconds uint32

    // Reserved (4 bytes): This field is reserved for future use. The value MUST be 0x00000000.
    Reserved uint32

    // TimeStamp (4 bytes): The time at which the record was last refreshed, in hours since
    // 1601-01-01 00:00:00 UTC, or 0 for a static record. Little-endian.
    TimeStamp uint32

    // Data (variable): The resource record's data. See DNS_RPC_RECORD_DATA (section 2.2.2.2.4).
    Data []byte
}

func NewDNS\_RECORD

func NewDNS_RECORD() *DNS_RECORD

NewDNS_RECORD creates a new DNS_RECORD with the Version field initialized to the mandatory value 0x05.

Returns: - A pointer to the new DNS_RECORD structure

func (*DNS_RECORD) Marshal

func (r *DNS_RECORD) Marshal() ([]byte, error)

Marshal marshals the DNS_RECORD structure into a byte array. DataLength is recomputed from the current length of the Data field so the header always matches the payload.

Returns: - A byte array representing the DNS_RECORD structure - An error if the marshaling fails

func (*DNS_RECORD) SetData

func (r *DNS_RECORD) SetData(payload interface{ Marshal() ([]byte, error) }) error

SetData replaces the record’s Data field and updates DataLength to match. payload is any of the record-data payload structures (for example *DNS_RPC_RECORD_A); its Marshal output becomes the Data field. The caller is responsible for setting Type to match the payload.

Parameters: - payload: A record-data payload exposing Marshal() ([]byte, error)

Returns: - An error if the payload fails to marshal

func (*DNS_RECORD) Unmarshal

func (r *DNS_RECORD) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RECORD structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read (24-byte header plus DataLength bytes of Data) - An error if the unmarshaling fails

type DNS\_RPC\_AUTOCONFIGURE

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

type DNS_RPC_AUTOCONFIGURE struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwAutoConfigFlags     ndr.DWORD
    DwReserved1           ndr.DWORD
    PszNewDomainName      *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_BUFFER

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

type DNS_RPC_BUFFER struct {
    DwLength ndr.DWORD
    Buffer   []uint8 `ndr:"conformant,size_is=DwLength"`
}

type DNS\_RPC\_CLIENT\_SUBNET\_RECORD

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

type DNS_RPC_CLIENT_SUBNET_RECORD struct {
    PwszClientSubnetName *ndr.WSTR       `ndr:"unique"`
    PIPAddr              *DNS_ADDR_ARRAY `ndr:"unique"`
    PIPv6Addr            *DNS_ADDR_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_CRITERIA

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

type DNS_RPC_CRITERIA struct {
    Type      DNS_RPC_CRITERIA_ENUM
    PCriteria *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_CRITERIA\_COMPARATOR

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

type DNS_RPC_CRITERIA_COMPARATOR uint16
const (
    Equals    DNS_RPC_CRITERIA_COMPARATOR = 1
    NotEquals DNS_RPC_CRITERIA_COMPARATOR = 2
)

type DNS\_RPC\_CRITERIA\_ENUM

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

type DNS_RPC_CRITERIA_ENUM uint16
const (
    DnsPolicyCriteriaSubnet            DNS_RPC_CRITERIA_ENUM = 0
    DnsPolicyCriteriaTransportProtocol DNS_RPC_CRITERIA_ENUM = 1
    DnsPolicyCriteriaNetworkProtocol   DNS_RPC_CRITERIA_ENUM = 2
    DnsPolicyCriteriaInterface         DNS_RPC_CRITERIA_ENUM = 3
    DnsPolicyCriteriaFqdn              DNS_RPC_CRITERIA_ENUM = 4
    DnsPolicyCriteriaQtype             DNS_RPC_CRITERIA_ENUM = 5
    DnsPolicyCriteriaTime              DNS_RPC_CRITERIA_ENUM = 6
    DnsPolicyCriteriaMax               DNS_RPC_CRITERIA_ENUM = 7
)

type DNS\_RPC\_DP\_ENUM

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

type DNS_RPC_DP_ENUM struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PszDpFqdn             *ndr.STR `ndr:"unique"`
    DwFlags               ndr.DWORD
    DwZoneCount           ndr.DWORD
}

type DNS\_RPC\_DP\_INFO

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

type DNS_RPC_DP_INFO struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PszDpFqdn             *ndr.STR  `ndr:"unique"`
    PszDpDn               *ndr.WSTR `ndr:"unique"`
    PszCrDn               *ndr.WSTR `ndr:"unique"`
    DwFlags               ndr.DWORD
    DwZoneCount           ndr.DWORD
    DwState               ndr.DWORD
    DwReserved            [3]ndr.DWORD
    PwszReserved          [3]*ndr.WSTR
    DwReplicaCount        ndr.DWORD
    ReplicaArray          []*DNS_RPC_DP_REPLICA `ndr:"conformant,size_is=DwReplicaCount,elem=unique"`
}

type DNS\_RPC\_DP\_LIST

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

type DNS_RPC_DP_LIST struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwDpCount             ndr.DWORD
    DpArray               []*DNS_RPC_DP_ENUM `ndr:"conformant,size_is=DwDpCount,elem=unique"`
}

type DNS\_RPC\_DP\_REPLICA

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

type DNS_RPC_DP_REPLICA struct {
    PszReplicaDn *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_ENCRYPTION\_CONFIG

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

type DNS_RPC_ENCRYPTION_CONFIG struct {
    DwDnsEncryptionType ndr.DWORD
    PwszUriTemplate     *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_ENLIST\_DP

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

type DNS_RPC_ENLIST_DP struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PszDpFqdn             *ndr.STR `ndr:"unique"`
    DwOperation           ndr.DWORD
}

type DNS\_RPC\_ENUMERATE\_POLICY\_LIST

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

type DNS_RPC_ENUMERATE_POLICY_LIST struct {
    DwPolicyCount ndr.DWORD
    PPolicyArray  []*DNS_RPC_POLICY_NAME `ndr:"conformant,size_is=DwPolicyCount,elem=unique"`
}

type DNS\_RPC\_ENUM\_SCOPE\_LIST

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

type DNS_RPC_ENUM_SCOPE_LIST struct {
    DwRpcStructureVersion ndr.DWORD
    DwScopeCount          ndr.DWORD
    ScopeArray            [1]*ndr.WSTR
}

type DNS\_RPC\_ENUM\_VIRTUALIZATION\_INSTANCE\_LIST

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

type DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST struct {
    DwRpcStructureVersion         ndr.DWORD
    DwVirtualizationInstanceCount ndr.DWORD
    VirtualizationInstanceArray   [1]*DNS_RPC_VIRTUALIZATION_INSTANCE_INFO
}

type DNS\_RPC\_ENUM\_ZONES\_FILTER

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

type DNS_RPC_ENUM_ZONES_FILTER struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwFilter              ndr.DWORD
    PszPartitionFqdn      *ndr.STR `ndr:"unique"`
    PszQueryString        *ndr.STR `ndr:"unique"`
    PszReserved           [6]*ndr.STR
}

type DNS\_RPC\_ENUM\_ZONE\_SCOPE\_LIST

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

type DNS_RPC_ENUM_ZONE_SCOPE_LIST struct {
    DwRpcStructureVersion ndr.DWORD
    DwZoneScopeCount      ndr.DWORD
    ZoneScopeArray        [1]*ndr.WSTR
}

type DNS\_RPC\_FORWARDERS

DNS_RPC_FORWARDERS is an alias for DNS_RPC_FORWARDERS_LONGHORN (same IDL typedef).

type DNS_RPC_FORWARDERS = DNS_RPC_FORWARDERS_LONGHORN

type DNS\_RPC\_FORWARDERS\_DOTNET

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

type DNS_RPC_FORWARDERS_DOTNET struct {
    DwRpcStructureVersion   ndr.DWORD
    DwReserved0             ndr.DWORD
    FRecurseAfterForwarding ndr.DWORD
    DwForwardTimeout        ndr.DWORD
    AipForwarders           *IP4_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_FORWARDERS\_LONGHORN

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

type DNS_RPC_FORWARDERS_LONGHORN struct {
    DwRpcStructureVersion   ndr.DWORD
    DwReserved0             ndr.DWORD
    FRecurseAfterForwarding ndr.DWORD
    DwForwardTimeout        ndr.DWORD
    AipForwarders           *DNS_ADDR_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_FORWARDERS\_W2K

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

type DNS_RPC_FORWARDERS_W2K struct {
    FRecurseAfterForwarding ndr.DWORD
    DwForwardTimeout        ndr.DWORD
    AipForwarders           *IP4_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_IP\_VALIDATE

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

type DNS_RPC_IP_VALIDATE struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwContext             ndr.DWORD
    DwReserved1           ndr.DWORD
    PszContextName        *ndr.STR        `ndr:"unique"`
    AipValidateAddrs      *DNS_ADDR_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_NAME\_AND\_PARAM

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

type DNS_RPC_NAME_AND_PARAM struct {
    DwParam     ndr.DWORD
    PszNodeName *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_POLICY

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

type DNS_RPC_POLICY struct {
    PwszPolicyName    *ndr.WSTR `ndr:"unique"`
    Level             DNS_RPC_POLICY_LEVEL
    AppliesOn         DNS_RPC_POLICY_TYPE
    Action            DNS_RPC_POLICY_ACTION_TYPE
    Condition         DNS_RPC_POLICY_CONDITION
    IsEnabled         ndr.BOOL
    DwProcessingOrder ndr.DWORD
    PszZoneName       *ndr.STR                     `ndr:"unique"`
    PContentList      *DNS_RPC_POLICY_CONTENT_LIST `ndr:"unique"`
    Flags             uint64
    DwCriteriaCount   ndr.DWORD
    PCriteriaList     []*DNS_RPC_CRITERIA `ndr:"conformant,size_is=DwCriteriaCount,elem=unique"`
}

type DNS\_RPC\_POLICY\_ACTION\_TYPE

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

type DNS_RPC_POLICY_ACTION_TYPE uint16
const (
    DnsPolicyDeny      DNS_RPC_POLICY_ACTION_TYPE = 0
    DnsPolicyAllow     DNS_RPC_POLICY_ACTION_TYPE = 1
    DnsPolicyIgnore    DNS_RPC_POLICY_ACTION_TYPE = 2
    DnsPolicyActionMax DNS_RPC_POLICY_ACTION_TYPE = 3
)

type DNS\_RPC\_POLICY\_CONDITION

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

type DNS_RPC_POLICY_CONDITION uint16
const (
    DNS_AND DNS_RPC_POLICY_CONDITION = 0
    DNS_OR  DNS_RPC_POLICY_CONDITION = 1
)

type DNS\_RPC\_POLICY\_CONTENT

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

type DNS_RPC_POLICY_CONTENT struct {
    PwszScopeName *ndr.WSTR `ndr:"unique"`
    DwWeight      ndr.DWORD
}

type DNS\_RPC\_POLICY\_CONTENT\_LIST

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

type DNS_RPC_POLICY_CONTENT_LIST struct {
    DwContentCount ndr.DWORD
    PContent       []*DNS_RPC_POLICY_CONTENT `ndr:"conformant,size_is=DwContentCount,elem=unique"`
}

type DNS\_RPC\_POLICY\_LEVEL

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

type DNS_RPC_POLICY_LEVEL uint16
const (
    DnsPolicyServerLevel DNS_RPC_POLICY_LEVEL = 0
    DnsPolicyZoneLevel   DNS_RPC_POLICY_LEVEL = 1
    DnsPolicyLevelMax    DNS_RPC_POLICY_LEVEL = 2
)

type DNS\_RPC\_POLICY\_NAME

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

type DNS_RPC_POLICY_NAME struct {
    PwszPolicyName  *ndr.WSTR `ndr:"unique"`
    AppliesOn       DNS_RPC_POLICY_TYPE
    FEnabled        ndr.BOOL
    ProcessingOrder ndr.DWORD
}

type DNS\_RPC\_POLICY\_TYPE

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

type DNS_RPC_POLICY_TYPE uint16
const (
    DnsPolicyQueryProcessing DNS_RPC_POLICY_TYPE = 0
    DnsPolicyZoneTransfer    DNS_RPC_POLICY_TYPE = 1
    DnsPolicyDynamicUpdate   DNS_RPC_POLICY_TYPE = 2
    DnsPolicyRecursion       DNS_RPC_POLICY_TYPE = 3
    DnsPolicyMax             DNS_RPC_POLICY_TYPE = 4
)

type DNS\_RPC\_RECORD

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

type DNS_RPC_RECORD struct {
    WDataLength  uint16
    WType        uint16
    DwFlags      ndr.DWORD
    DwSerial     ndr.DWORD
    DwTtlSeconds ndr.DWORD
    DwTimeStamp  ndr.DWORD
    DwReserved   ndr.DWORD
    Buffer       []uint8 `ndr:"conformant,size_is=WDataLength"`
}

type DNS\_RPC\_RECORD\_A

DNS_RPC_RECORD_A is the record-data payload for a DNS_TYPE_A record. It carries a single IPv4 address. In a dnsRecord attribute value the containing DNS_RECORD has a DataLength of 4 and a Type of DNS_TYPE_A.

Source: [MS-DNSP] DNS_RPC_RECORD_A (section 2.2.2.2.4.1), referenced from DNS_RPC_RECORD_DATA https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/38b87392-7f61-4e30-9263-9f0fb832d084

type DNS_RPC_RECORD_A struct {
    // IPAddress (4 bytes): An IPv4 address stored in network byte order.
    IPAddress [4]byte
}

func NewDNS\_RPC\_RECORD\_A

func NewDNS_RPC_RECORD_A() *DNS_RPC_RECORD_A

NewDNS_RPC_RECORD_A creates a new, empty DNS_RPC_RECORD_A.

Returns: - A pointer to the new DNS_RPC_RECORD_A structure

func (*DNS_RPC_RECORD_A) GetIPv4

func (r *DNS_RPC_RECORD_A) GetIPv4() net.IP

GetIPv4 returns the stored address as a net.IP.

Returns: - The IPv4 address as a net.IP

func (*DNS_RPC_RECORD_A) Marshal

func (r *DNS_RPC_RECORD_A) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_A structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_A structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_A) SetIPv4

func (r *DNS_RPC_RECORD_A) SetIPv4(ip net.IP) error

SetIPv4 sets the address from a net.IP. The address MUST be an IPv4 address.

Parameters: - ip: The IPv4 address to store

Returns: - An error if ip is not an IPv4 address

func (*DNS_RPC_RECORD_A) Unmarshal

func (r *DNS_RPC_RECORD_A) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_A structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RECORD\_AAAA

DNS_RPC_RECORD_AAAA is the record-data payload for a DNS_TYPE_AAAA record. It carries a single IPv6 address. In a dnsRecord attribute value the containing DNS_RECORD has a DataLength of 16 and a Type of DNS_TYPE_AAAA.

Source: [MS-DNSP] DNS_RPC_RECORD_AAAA (section 2.2.2.2.4.17) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/ee33fef1-6e82-42d0-8107-0f6d21be072a

type DNS_RPC_RECORD_AAAA struct {
    // IPv6Address (16 bytes): An IPv6 address stored in network byte order.
    IPv6Address [16]byte
}

func NewDNS\_RPC\_RECORD\_AAAA

func NewDNS_RPC_RECORD_AAAA() *DNS_RPC_RECORD_AAAA

NewDNS_RPC_RECORD_AAAA creates a new, empty DNS_RPC_RECORD_AAAA.

Returns: - A pointer to the new DNS_RPC_RECORD_AAAA structure

func (*DNS_RPC_RECORD_AAAA) GetIPv6

func (r *DNS_RPC_RECORD_AAAA) GetIPv6() net.IP

GetIPv6 returns the stored address as a net.IP.

Returns: - The IPv6 address as a net.IP

func (*DNS_RPC_RECORD_AAAA) Marshal

func (r *DNS_RPC_RECORD_AAAA) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_AAAA structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_AAAA structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_AAAA) SetIPv6

func (r *DNS_RPC_RECORD_AAAA) SetIPv6(ip net.IP) error

SetIPv6 sets the address from a net.IP. The address MUST be representable as a 16-byte IPv6 address.

Parameters: - ip: The IPv6 address to store

Returns: - An error if ip cannot be represented as a 16-byte address

func (*DNS_RPC_RECORD_AAAA) Unmarshal

func (r *DNS_RPC_RECORD_AAAA) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_AAAA structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RECORD\_NAME\_PREFERENCE

DNS_RPC_RECORD_NAME_PREFERENCE is the record-data payload for records that pair a 16-bit preference value with an FQDN. Per [MS-DNSP] it is used for the following record types:

DNS_TYPE_MX, DNS_TYPE_AFSDB, DNS_TYPE_RT

WPreference is stored in network byte order (big-endian). NameExchange is stored in DNS_COUNT_NAME (section 2.2.2.2.2) form in a dnsRecord attribute value carried over LDAP.

Source: [MS-DNSP] DNS_RPC_RECORD_NAME_PREFERENCE (section 2.2.2.2.4.8) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/f647d391-6614-4c3e-b38b-4df971590eb6

type DNS_RPC_RECORD_NAME_PREFERENCE struct {
    // WPreference (2 bytes): The preference value for the DNS server that holds the record.
    // Big-endian.
    WPreference uint16

    // NameExchange (variable): The FQDN of the server hosting the mail-exchange.
    NameExchange DNS_COUNT_NAME
}

func NewDNS\_RPC\_RECORD\_NAME\_PREFERENCE

func NewDNS_RPC_RECORD_NAME_PREFERENCE() *DNS_RPC_RECORD_NAME_PREFERENCE

NewDNS_RPC_RECORD_NAME_PREFERENCE creates a new, empty DNS_RPC_RECORD_NAME_PREFERENCE.

Returns: - A pointer to the new DNS_RPC_RECORD_NAME_PREFERENCE structure

func (*DNS_RPC_RECORD_NAME_PREFERENCE) Marshal

func (r *DNS_RPC_RECORD_NAME_PREFERENCE) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_NAME_PREFERENCE structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_NAME_PREFERENCE structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_NAME_PREFERENCE) Unmarshal

func (r *DNS_RPC_RECORD_NAME_PREFERENCE) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_NAME_PREFERENCE structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RECORD\_NODE\_NAME

DNS_RPC_RECORD_NODE_NAME is the record-data payload for records whose data is a single FQDN. Per [MS-DNSP] it is used for the following record types:

DNS_TYPE_PTR, DNS_TYPE_NS, DNS_TYPE_CNAME, DNS_TYPE_DNAME,
DNS_TYPE_MB, DNS_TYPE_MR, DNS_TYPE_MG, DNS_TYPE_MD, DNS_TYPE_MF

Although the specification documents nameNode in DNS_RPC_NAME (section 2.2.2.2.1) form, in a dnsRecord attribute value carried over LDAP the name is stored in DNS_COUNT_NAME (section 2.2.2.2.2) form.

Source: [MS-DNSP] DNS_RPC_RECORD_NODE_NAME (section 2.2.2.2.4.2) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/8f986756-f151-4f5b-bfcf-0d85be8b0d7e

type DNS_RPC_RECORD_NODE_NAME struct {
    // NameNode (variable): The FQDN of this node.
    NameNode DNS_COUNT_NAME
}

func NewDNS\_RPC\_RECORD\_NODE\_NAME

func NewDNS_RPC_RECORD_NODE_NAME() *DNS_RPC_RECORD_NODE_NAME

NewDNS_RPC_RECORD_NODE_NAME creates a new, empty DNS_RPC_RECORD_NODE_NAME.

Returns: - A pointer to the new DNS_RPC_RECORD_NODE_NAME structure

func (*DNS_RPC_RECORD_NODE_NAME) Marshal

func (r *DNS_RPC_RECORD_NODE_NAME) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_NODE_NAME structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_NODE_NAME structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_NODE_NAME) Unmarshal

func (r *DNS_RPC_RECORD_NODE_NAME) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_NODE_NAME structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RECORD\_SOA

DNS_RPC_RECORD_SOA is the record-data payload for a DNS_TYPE_SOA (Start of Authority) record, as specified in section 3.3.13 of [RFC1035].

The five numeric fields are stored in network byte order (big-endian). The two names are stored in DNS_COUNT_NAME (section 2.2.2.2.2) form in a dnsRecord attribute value carried over LDAP (the specification documents them in DNS_RPC_NAME form for the RPC wire).

Source: [MS-DNSP] DNS_RPC_RECORD_SOA (section 2.2.2.2.4.3) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/dcd3ec16-d6bf-4bb4-9128-6172f9e5f066

type DNS_RPC_RECORD_SOA struct {
    // DwSerialNo (4 bytes): The serial number of the SOA record. Big-endian.
    DwSerialNo uint32

    // DwRefresh (4 bytes): The interval, in seconds, at which a secondary DNS server attempts
    // to contact the primary DNS server for an update. Big-endian.
    DwRefresh uint32

    // DwRetry (4 bytes): The interval, in seconds, at which a secondary DNS server retries to
    // check with the primary DNS server in case of failure. Big-endian.
    DwRetry uint32

    // DwExpire (4 bytes): The duration, in seconds, that a secondary DNS server continues to
    // attempt updates before assuming the primary DNS server is unreachable. Big-endian.
    DwExpire uint32

    // DwMinimumTtl (4 bytes): The minimum duration, in seconds, for which record data in the
    // zone is valid. Big-endian.
    DwMinimumTtl uint32

    // NamePrimaryServer (variable): The FQDN of the primary DNS server for this zone.
    NamePrimaryServer DNS_COUNT_NAME

    // ZoneAdminEmail (variable): The contact email address for the zone administrators.
    ZoneAdminEmail DNS_COUNT_NAME
}

func NewDNS\_RPC\_RECORD\_SOA

func NewDNS_RPC_RECORD_SOA() *DNS_RPC_RECORD_SOA

NewDNS_RPC_RECORD_SOA creates a new, empty DNS_RPC_RECORD_SOA.

Returns: - A pointer to the new DNS_RPC_RECORD_SOA structure

func (*DNS_RPC_RECORD_SOA) Marshal

func (r *DNS_RPC_RECORD_SOA) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_SOA structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_SOA structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_SOA) Unmarshal

func (r *DNS_RPC_RECORD_SOA) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_SOA structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RECORD\_SRV

DNS_RPC_RECORD_SRV is the record-data payload for a DNS_TYPE_SRV record, as specified in [RFC2782].

The three numeric fields are stored in network byte order (big-endian). NameTarget is stored in DNS_COUNT_NAME (section 2.2.2.2.2) form in a dnsRecord attribute value carried over LDAP.

Source: [MS-DNSP] DNS_RPC_RECORD_SRV (section 2.2.2.2.4.7) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/db37cab7-f121-43ba-81c5-ca0e198d4b9a

type DNS_RPC_RECORD_SRV struct {
    // WPriority (2 bytes): The priority of the target host, per [RFC2782]. Big-endian.
    WPriority uint16

    // WWeight (2 bytes): The relative weight for the target host, per [RFC2782]. Big-endian.
    WWeight uint16

    // WPort (2 bytes): The port number for the service on the target host, per [RFC2782].
    // Big-endian.
    WPort uint16

    // NameTarget (variable): The FQDN of the server that hosts this service.
    NameTarget DNS_COUNT_NAME
}

func NewDNS\_RPC\_RECORD\_SRV

func NewDNS_RPC_RECORD_SRV() *DNS_RPC_RECORD_SRV

NewDNS_RPC_RECORD_SRV creates a new, empty DNS_RPC_RECORD_SRV.

Returns: - A pointer to the new DNS_RPC_RECORD_SRV structure

func (*DNS_RPC_RECORD_SRV) Marshal

func (r *DNS_RPC_RECORD_SRV) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_SRV structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_SRV structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_SRV) Unmarshal

func (r *DNS_RPC_RECORD_SRV) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_SRV structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RECORD\_TS

DNS_RPC_RECORD_TS is the tombstone record-data payload. When the last record set for a node in a directory-server-integrated zone is deleted, the DNS server sets the node’s dnsTombstoned attribute to TRUE and writes a dnsRecord value of type DNS_TYPE_ZERO whose data is a DNS_RPC_RECORD_TS.

EntombedTime is stored little-endian, unlike the big-endian numeric fields of the SOA, SRV, and NAME_PREFERENCE payloads.

Source: [MS-DNSP] DNS_RPC_RECORD_TS (section 2.2.2.2.4.23); tombstone handling is described in Creating and Deleting a DNS Record, https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/c87b1caf-904d-4d8a-a7d1-3a6908112cd3

type DNS_RPC_RECORD_TS struct {
    // EntombedTime (8 bytes): The time at which the record was tombstoned, expressed as the
    // number of 100-nanosecond intervals since 1601-01-01 00:00:00 UTC. Little-endian.
    EntombedTime uint64
}

func NewDNS\_RPC\_RECORD\_TS

func NewDNS_RPC_RECORD_TS() *DNS_RPC_RECORD_TS

NewDNS_RPC_RECORD_TS creates a new, empty DNS_RPC_RECORD_TS.

Returns: - A pointer to the new DNS_RPC_RECORD_TS structure

func (*DNS_RPC_RECORD_TS) GetTime

func (r *DNS_RPC_RECORD_TS) GetTime() time.Time

GetTime returns EntombedTime as a UTC time.Time.

Returns: - The tombstone time in UTC

func (*DNS_RPC_RECORD_TS) Marshal

func (r *DNS_RPC_RECORD_TS) Marshal() ([]byte, error)

Marshal marshals the DNS_RPC_RECORD_TS structure into a byte array.

Returns: - A byte array representing the DNS_RPC_RECORD_TS structure - An error if the marshaling fails

func (*DNS_RPC_RECORD_TS) SetTime

func (r *DNS_RPC_RECORD_TS) SetTime(t time.Time)

SetTime sets EntombedTime from a time.Time.

Parameters: - t: The tombstone time

func (*DNS_RPC_RECORD_TS) Unmarshal

func (r *DNS_RPC_RECORD_TS) Unmarshal(rawData []byte) (int, error)

Unmarshal unmarshals a byte array into the DNS_RPC_RECORD_TS structure.

Parameters: - rawData: The byte array to unmarshal

Returns: - The number of bytes read - An error if the unmarshaling fails

type DNS\_RPC\_RRL\_PARAMS

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

type DNS_RPC_RRL_PARAMS struct {
    DwResponsesPerSecond     ndr.DWORD
    DwErrorsPerSecond        ndr.DWORD
    DwLeakRate               ndr.DWORD
    DwTCRate                 ndr.DWORD
    DwTotalResponsesInWindow ndr.DWORD
    DwWindowSize             ndr.DWORD
    DwIPv4PrefixLength       ndr.DWORD
    DwIPv6PrefixLength       ndr.DWORD
    EMode                    DNS_RRL_MODE_ENUM
    DwFlags                  ndr.DWORD
    FSetDefault              ndr.BOOL
}

type DNS\_RPC\_SERVER\_INFO

DNS_RPC_SERVER_INFO is an alias for DNS_RPC_SERVER_INFO_LONGHORN (same IDL typedef).

type DNS_RPC_SERVER_INFO = DNS_RPC_SERVER_INFO_LONGHORN

type DNS\_RPC\_SERVER\_INFO\_DOTNET

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

type DNS_RPC_SERVER_INFO_DOTNET struct {
    DwRpcStructureVersion       ndr.DWORD
    DwReserved0                 ndr.DWORD
    DwVersion                   ndr.DWORD
    FBootMethod                 uint8
    FAdminConfigured            bool
    FAllowUpdate                bool
    FDsAvailable                bool
    PszServerName               *ndr.STR   `ndr:"unique"`
    PszDsContainer              *ndr.WSTR  `ndr:"unique"`
    AipServerAddrs              *IP4_ARRAY `ndr:"unique"`
    AipListenAddrs              *IP4_ARRAY `ndr:"unique"`
    AipForwarders               *IP4_ARRAY `ndr:"unique"`
    AipLogFilter                *IP4_ARRAY `ndr:"unique"`
    PwszLogFilePath             *ndr.WSTR  `ndr:"unique"`
    PszDomainName               *ndr.STR   `ndr:"unique"`
    PszForestName               *ndr.STR   `ndr:"unique"`
    PszDomainDirectoryPartition *ndr.STR   `ndr:"unique"`
    PszForestDirectoryPartition *ndr.STR   `ndr:"unique"`
    PExtensions                 [6]*ndr.STR
    DwLogLevel                  ndr.DWORD
    DwDebugLevel                ndr.DWORD
    DwForwardTimeout            ndr.DWORD
    DwRpcProtocol               ndr.DWORD
    DwNameCheckFlag             ndr.DWORD
    CAddressAnswerLimit         ndr.DWORD
    DwRecursionRetry            ndr.DWORD
    DwRecursionTimeout          ndr.DWORD
    DwMaxCacheTtl               ndr.DWORD
    DwDsPollingInterval         ndr.DWORD
    DwLocalNetPriorityNetMask   ndr.DWORD
    DwScavengingInterval        ndr.DWORD
    DwDefaultRefreshInterval    ndr.DWORD
    DwDefaultNoRefreshInterval  ndr.DWORD
    DwLastScavengeTime          ndr.DWORD
    DwEventLogLevel             ndr.DWORD
    DwLogFileMaxSize            ndr.DWORD
    DwDsForestVersion           ndr.DWORD
    DwDsDomainVersion           ndr.DWORD
    DwDsDsaVersion              ndr.DWORD
    DwReserveArray              [4]ndr.DWORD
    FAutoReverseZones           bool
    FAutoCacheUpdate            bool
    FRecurseAfterForwarding     bool
    FForwardDelegations         bool
    FNoRecursion                bool
    FSecureResponses            bool
    FRoundRobin                 bool
    FLocalNetPriority           bool
    FBindSecondaries            bool
    FWriteAuthorityNs           bool
    FStrictFileParsing          bool
    FLooseWildcarding           bool
    FDefaultAgingState          bool
    FReserveArray               [15]bool
}

type DNS\_RPC\_SERVER\_INFO\_LONGHORN

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

type DNS_RPC_SERVER_INFO_LONGHORN struct {
    DwRpcStructureVersion       ndr.DWORD
    DwReserved0                 ndr.DWORD
    DwVersion                   ndr.DWORD
    FBootMethod                 uint8
    FAdminConfigured            bool
    FAllowUpdate                bool
    FDsAvailable                bool
    PszServerName               *ndr.STR        `ndr:"unique"`
    PszDsContainer              *ndr.WSTR       `ndr:"unique"`
    AipServerAddrs              *DNS_ADDR_ARRAY `ndr:"unique"`
    AipListenAddrs              *DNS_ADDR_ARRAY `ndr:"unique"`
    AipForwarders               *DNS_ADDR_ARRAY `ndr:"unique"`
    AipLogFilter                *DNS_ADDR_ARRAY `ndr:"unique"`
    PwszLogFilePath             *ndr.WSTR       `ndr:"unique"`
    PszDomainName               *ndr.STR        `ndr:"unique"`
    PszForestName               *ndr.STR        `ndr:"unique"`
    PszDomainDirectoryPartition *ndr.STR        `ndr:"unique"`
    PszForestDirectoryPartition *ndr.STR        `ndr:"unique"`
    PExtensions                 [6]*ndr.STR
    DwLogLevel                  ndr.DWORD
    DwDebugLevel                ndr.DWORD
    DwForwardTimeout            ndr.DWORD
    DwRpcProtocol               ndr.DWORD
    DwNameCheckFlag             ndr.DWORD
    CAddressAnswerLimit         ndr.DWORD
    DwRecursionRetry            ndr.DWORD
    DwRecursionTimeout          ndr.DWORD
    DwMaxCacheTtl               ndr.DWORD
    DwDsPollingInterval         ndr.DWORD
    DwLocalNetPriorityNetMask   ndr.DWORD
    DwScavengingInterval        ndr.DWORD
    DwDefaultRefreshInterval    ndr.DWORD
    DwDefaultNoRefreshInterval  ndr.DWORD
    DwLastScavengeTime          ndr.DWORD
    DwEventLogLevel             ndr.DWORD
    DwLogFileMaxSize            ndr.DWORD
    DwDsForestVersion           ndr.DWORD
    DwDsDomainVersion           ndr.DWORD
    DwDsDsaVersion              ndr.DWORD
    FReadOnlyDC                 bool
    DwReserveArray              [3]ndr.DWORD
    FAutoReverseZones           bool
    FAutoCacheUpdate            bool
    FRecurseAfterForwarding     bool
    FForwardDelegations         bool
    FNoRecursion                bool
    FSecureResponses            bool
    FRoundRobin                 bool
    FLocalNetPriority           bool
    FBindSecondaries            bool
    FWriteAuthorityNs           bool
    FStrictFileParsing          bool
    FLooseWildcarding           bool
    FDefaultAgingState          bool
    FReserveArray               [15]bool
}

type DNS\_RPC\_SERVER\_INFO\_W2K

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

type DNS_RPC_SERVER_INFO_W2K struct {
    DwVersion                  ndr.DWORD
    FBootMethod                uint8
    FAdminConfigured           bool
    FAllowUpdate               bool
    FDsAvailable               bool
    PszServerName              *ndr.STR   `ndr:"unique"`
    PszDsContainer             *ndr.WSTR  `ndr:"unique"`
    AipServerAddrs             *IP4_ARRAY `ndr:"unique"`
    AipListenAddrs             *IP4_ARRAY `ndr:"unique"`
    AipForwarders              *IP4_ARRAY `ndr:"unique"`
    PExtension1                *ndr.DWORD `ndr:"unique"`
    PExtension2                *ndr.DWORD `ndr:"unique"`
    PExtension3                *ndr.DWORD `ndr:"unique"`
    PExtension4                *ndr.DWORD `ndr:"unique"`
    PExtension5                *ndr.DWORD `ndr:"unique"`
    DwLogLevel                 ndr.DWORD
    DwDebugLevel               ndr.DWORD
    DwForwardTimeout           ndr.DWORD
    DwRpcProtocol              ndr.DWORD
    DwNameCheckFlag            ndr.DWORD
    CAddressAnswerLimit        ndr.DWORD
    DwRecursionRetry           ndr.DWORD
    DwRecursionTimeout         ndr.DWORD
    DwMaxCacheTtl              ndr.DWORD
    DwDsPollingInterval        ndr.DWORD
    DwScavengingInterval       ndr.DWORD
    DwDefaultRefreshInterval   ndr.DWORD
    DwDefaultNoRefreshInterval ndr.DWORD
    DwReserveArray             [10]ndr.DWORD
    FAutoReverseZones          bool
    FAutoCacheUpdate           bool
    FRecurseAfterForwarding    bool
    FForwardDelegations        bool
    FNoRecursion               bool
    FSecureResponses           bool
    FRoundRobin                bool
    FLocalNetPriority          bool
    FBindSecondaries           bool
    FWriteAuthorityNs          bool
    FStrictFileParsing         bool
    FLooseWildcarding          bool
    FDefaultAgingState         bool
    FReserveArray              [15]bool
}

type DNS\_RPC\_SIGNING\_VALIDATION\_ERROR

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

type DNS_RPC_SIGNING_VALIDATION_ERROR struct {
    DwRpcStructureVersion       ndr.DWORD
    DwReserved0                 ndr.DWORD
    GuidSKD                     msdtyp.GUID
    PwszSigningKeyPointerString *ndr.WSTR `ndr:"unique"`
    DwExtendedError             ndr.DWORD
    DwReserved                  ndr.DWORD
}

type DNS\_RPC\_SKD

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

type DNS_RPC_SKD struct {
    DwRpcStructureVersion             ndr.DWORD
    DwReserved0                       ndr.DWORD
    Guid                              msdtyp.GUID
    PwszKeyStorageProvider            *ndr.WSTR `ndr:"unique"`
    FStoreKeysInDirectory             ndr.BOOL
    FIsKSK                            ndr.BOOL
    BSigningAlgorithm                 uint8
    DwKeyLength                       ndr.DWORD
    DwInitialRolloverOffset           ndr.DWORD
    DwDNSKEYSignatureValidityPeriod   ndr.DWORD
    DwDSSignatureValidityPeriod       ndr.DWORD
    DwStandardSignatureValidityPeriod ndr.DWORD
    DwRolloverType                    ndr.DWORD
    DwRolloverPeriod                  ndr.DWORD
    DwNextRolloverAction              ndr.DWORD
    DwReserved                        ndr.DWORD
}

type DNS\_RPC\_SKD\_LIST

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

type DNS_RPC_SKD_LIST struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwCount               ndr.DWORD
    SkdArray              []*DNS_RPC_SKD `ndr:"conformant,size_is=DwCount,elem=unique"`
}

type DNS\_RPC\_SKD\_STATE

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

type DNS_RPC_SKD_STATE struct {
    DwRpcStructureVersion   ndr.DWORD
    DwReserved0             ndr.DWORD
    Guid                    msdtyp.GUID
    FtLastRolloverTime      msdtyp.FILETIME
    FtNextRolloverTime      msdtyp.FILETIME
    DwState                 ndr.DWORD
    DwCurrentRolloverStatus ndr.DWORD
    PwszActiveKey           *ndr.WSTR `ndr:"unique"`
    PwszStandbyKey          *ndr.WSTR `ndr:"unique"`
    PwszNextKey             *ndr.WSTR `ndr:"unique"`
    DwReserved              ndr.DWORD
}

type DNS\_RPC\_SKD\_STATE\_EX

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

type DNS_RPC_SKD_STATE_EX struct {
    DwRpcStructureVersion           ndr.DWORD
    DwReserved0                     ndr.DWORD
    Guid                            msdtyp.GUID
    DwCurrentRollState              ndr.DWORD
    FManualTrigger                  ndr.DWORD
    DwPreRollEventFired             ndr.DWORD
    FtNextKeyGenerationTime         msdtyp.FILETIME
    DwRevokedOrSwappedDnskeysLength ndr.DWORD
    PRevokedOrSwappedDnskeysBuffer  *uint8 `ndr:"unique"`
    DwFinalDnskeysLength            ndr.DWORD
    PFinalDnskeys                   *uint8 `ndr:"unique"`
    EActiveKeyScope                 KeySignScope
    EStandByKeyScope                KeySignScope
    ENextKeyScope                   KeySignScope
}

type DNS\_RPC\_TRUST\_ANCHOR

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

type DNS_RPC_TRUST_ANCHOR struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    WTrustAnchorType      uint16
    WKeyTag               uint16
    WRRLength             uint16
    ETrustAnchorState     TRUSTANCHOR_STATE
    I64EnteredStateTime   int64
    I64NextStateTime      int64
    DwReserved            ndr.DWORD
    RRData                []uint8 `ndr:"conformant,size_is=WRRLength"`
}

type DNS\_RPC\_TRUST\_ANCHOR\_LIST

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

type DNS_RPC_TRUST_ANCHOR_LIST struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwTrustAnchorCount    ndr.DWORD
    TrustAnchorArray      []*DNS_RPC_TRUST_ANCHOR `ndr:"conformant,size_is=DwTrustAnchorCount,elem=unique"`
}

type DNS\_RPC\_TRUST\_POINT

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

type DNS_RPC_TRUST_POINT struct {
    DwRpcStructureVersion              ndr.DWORD
    DwReserved0                        ndr.DWORD
    PszTrustPointName                  *ndr.STR `ndr:"unique"`
    ETrustPointState                   TRUSTPOINT_STATE
    I64LastActiveRefreshTime           int64
    I64NextActiveRefreshTime           int64
    I64LastSuccessfulActiveRefreshTime int64
    DwLastActiveRefreshResult          ndr.DWORD
    DwReserved                         ndr.DWORD
}

type DNS\_RPC\_TRUST\_POINT\_LIST

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

type DNS_RPC_TRUST_POINT_LIST struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwTrustPointCount     ndr.DWORD
    TrustPointArray       []*DNS_RPC_TRUST_POINT `ndr:"conformant,size_is=DwTrustPointCount,elem=unique"`
}

type DNS\_RPC\_TYPEID

DNS_RPC_TYPEID enumerates the type ids that discriminate DNSSRV_RPC_UNION ([MS-DNSP] 2.2.1.1.1). It is not itself transmitted on the wire: the union discriminant is the method’s dwTypeId/dwTypeIn/pdwTypeId parameter, a DWORD ([MS-DNSP] 3.1.4). Modeled as a uint32 (not the usual 16-bit NDR enum) so the DNSSRV_TYPEID_ANY sentinel (-1) fits.

type DNS_RPC_TYPEID uint32
const (
    DNSSRV_TYPEID_ANY                          DNS_RPC_TYPEID = 0xFFFFFFFF
    DNSSRV_TYPEID_NULL                         DNS_RPC_TYPEID = 0
    DNSSRV_TYPEID_DWORD                        DNS_RPC_TYPEID = 1
    DNSSRV_TYPEID_LPSTR                        DNS_RPC_TYPEID = 2
    DNSSRV_TYPEID_LPWSTR                       DNS_RPC_TYPEID = 3
    DNSSRV_TYPEID_IPARRAY                      DNS_RPC_TYPEID = 4
    DNSSRV_TYPEID_BUFFER                       DNS_RPC_TYPEID = 5
    DNSSRV_TYPEID_SERVER_INFO_W2K              DNS_RPC_TYPEID = 6
    DNSSRV_TYPEID_STATS                        DNS_RPC_TYPEID = 7
    DNSSRV_TYPEID_FORWARDERS_W2K               DNS_RPC_TYPEID = 8
    DNSSRV_TYPEID_ZONE_W2K                     DNS_RPC_TYPEID = 9
    DNSSRV_TYPEID_ZONE_INFO_W2K                DNS_RPC_TYPEID = 10
    DNSSRV_TYPEID_ZONE_SECONDARIES_W2K         DNS_RPC_TYPEID = 11
    DNSSRV_TYPEID_ZONE_DATABASE_W2K            DNS_RPC_TYPEID = 12
    DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K          DNS_RPC_TYPEID = 13
    DNSSRV_TYPEID_ZONE_CREATE_W2K              DNS_RPC_TYPEID = 14
    DNSSRV_TYPEID_NAME_AND_PARAM               DNS_RPC_TYPEID = 15
    DNSSRV_TYPEID_ZONE_LIST_W2K                DNS_RPC_TYPEID = 16
    DNSSRV_TYPEID_ZONE_RENAME                  DNS_RPC_TYPEID = 17
    DNSSRV_TYPEID_ZONE_EXPORT                  DNS_RPC_TYPEID = 18
    DNSSRV_TYPEID_SERVER_INFO_DOTNET           DNS_RPC_TYPEID = 19
    DNSSRV_TYPEID_FORWARDERS_DOTNET            DNS_RPC_TYPEID = 20
    DNSSRV_TYPEID_ZONE                         DNS_RPC_TYPEID = 21
    DNSSRV_TYPEID_ZONE_INFO_DOTNET             DNS_RPC_TYPEID = 22
    DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET      DNS_RPC_TYPEID = 23
    DNSSRV_TYPEID_ZONE_DATABASE                DNS_RPC_TYPEID = 24
    DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET       DNS_RPC_TYPEID = 25
    DNSSRV_TYPEID_ZONE_CREATE_DOTNET           DNS_RPC_TYPEID = 26
    DNSSRV_TYPEID_ZONE_LIST                    DNS_RPC_TYPEID = 27
    DNSSRV_TYPEID_DP_ENUM                      DNS_RPC_TYPEID = 28
    DNSSRV_TYPEID_DP_INFO                      DNS_RPC_TYPEID = 29
    DNSSRV_TYPEID_DP_LIST                      DNS_RPC_TYPEID = 30
    DNSSRV_TYPEID_ENLIST_DP                    DNS_RPC_TYPEID = 31
    DNSSRV_TYPEID_ZONE_CHANGE_DP               DNS_RPC_TYPEID = 32
    DNSSRV_TYPEID_ENUM_ZONES_FILTER            DNS_RPC_TYPEID = 33
    DNSSRV_TYPEID_ADDRARRAY                    DNS_RPC_TYPEID = 34
    DNSSRV_TYPEID_SERVER_INFO                  DNS_RPC_TYPEID = 35
    DNSSRV_TYPEID_ZONE_INFO                    DNS_RPC_TYPEID = 36
    DNSSRV_TYPEID_FORWARDERS                   DNS_RPC_TYPEID = 37
    DNSSRV_TYPEID_ZONE_SECONDARIES             DNS_RPC_TYPEID = 38
    DNSSRV_TYPEID_ZONE_TYPE_RESET              DNS_RPC_TYPEID = 39
    DNSSRV_TYPEID_ZONE_CREATE                  DNS_RPC_TYPEID = 40
    DNSSRV_TYPEID_IP_VALIDATE                  DNS_RPC_TYPEID = 41
    DNSSRV_TYPEID_AUTOCONFIGURE                DNS_RPC_TYPEID = 42
    DNSSRV_TYPEID_UTF8_STRING_LIST             DNS_RPC_TYPEID = 43
    DNSSRV_TYPEID_UNICODE_STRING_LIST          DNS_RPC_TYPEID = 44
    DNSSRV_TYPEID_SKD                          DNS_RPC_TYPEID = 45
    DNSSRV_TYPEID_SKD_LIST                     DNS_RPC_TYPEID = 46
    DNSSRV_TYPEID_SKD_STATE                    DNS_RPC_TYPEID = 47
    DNSSRV_TYPEID_SIGNING_VALIDATION_ERROR     DNS_RPC_TYPEID = 48
    DNSSRV_TYPEID_TRUST_POINT_LIST             DNS_RPC_TYPEID = 49
    DNSSRV_TYPEID_TRUST_ANCHOR_LIST            DNS_RPC_TYPEID = 50
    DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS        DNS_RPC_TYPEID = 51
    DNSSRV_TYPEID_ZONE_SCOPE_ENUM              DNS_RPC_TYPEID = 52
    DNSSRV_TYPEID_ZONE_STATS                   DNS_RPC_TYPEID = 53
    DNSSRV_TYPEID_ZONE_SCOPE_CREATE            DNS_RPC_TYPEID = 54
    DNSSRV_TYPEID_ZONE_SCOPE_INFO              DNS_RPC_TYPEID = 55
    DNSSRV_TYPEID_SCOPE_ENUM                   DNS_RPC_TYPEID = 56
    DNSSRV_TYPEID_CLIENT_SUBNET_RECORD         DNS_RPC_TYPEID = 57
    DNSSRV_TYPEID_POLICY                       DNS_RPC_TYPEID = 58
    DNSSRV_TYPEID_POLICY_NAME                  DNS_RPC_TYPEID = 59
    DNSSRV_TYPEID_POLICY_ENUM                  DNS_RPC_TYPEID = 60
    DNSSRV_TYPEID_RRL                          DNS_RPC_TYPEID = 61
    DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE      DNS_RPC_TYPEID = 62
    DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE_ENUM DNS_RPC_TYPEID = 63
    DNSSRV_TYPEID_ENCRYPTION_CONFIG            DNS_RPC_TYPEID = 64
)

type DNS\_RPC\_UNICODE\_STRING\_LIST

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

type DNS_RPC_UNICODE_STRING_LIST struct {
    DwCount     ndr.DWORD
    PwszStrings []*ndr.WSTR `ndr:"conformant,size_is=DwCount,elem=unique"`
}

type DNS\_RPC\_UTF8\_STRING\_LIST

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

type DNS_RPC_UTF8_STRING_LIST struct {
    DwCount    ndr.DWORD
    PszStrings []*ndr.STR `ndr:"conformant,size_is=DwCount,elem=unique"`
}

type DNS\_RPC\_VIRTUALIZATION\_INSTANCE

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

type DNS_RPC_VIRTUALIZATION_INSTANCE struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved            ndr.DWORD
    DwFlags               ndr.DWORD
    PwszVirtualizationID  *ndr.WSTR `ndr:"unique"`
    PwszFriendlyName      *ndr.WSTR `ndr:"unique"`
    PwszDescription       *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_VIRTUALIZATION\_INSTANCE\_INFO

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

type DNS_RPC_VIRTUALIZATION_INSTANCE_INFO struct {
    PwszVirtualizationID *ndr.WSTR `ndr:"unique"`
    PwszFriendlyName     *ndr.WSTR `ndr:"unique"`
    PwszDescription      *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_ZONE

DNS_RPC_ZONE is an alias for DNS_RPC_ZONE_DOTNET (same IDL typedef).

type DNS_RPC_ZONE = DNS_RPC_ZONE_DOTNET

type DNS\_RPC\_ZONE\_CHANGE\_DP

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

type DNS_RPC_ZONE_CHANGE_DP struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PszDestPartition      *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_CREATE\_INFO

DNS_RPC_ZONE_CREATE_INFO is an alias for DNS_RPC_ZONE_CREATE_INFO_LONGHORN (same IDL typedef).

type DNS_RPC_ZONE_CREATE_INFO = DNS_RPC_ZONE_CREATE_INFO_LONGHORN

type DNS\_RPC\_ZONE\_CREATE\_INFO\_DOTNET

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

type DNS_RPC_ZONE_CREATE_INFO_DOTNET struct {
    DwRpcStructureVersion   ndr.DWORD
    DwReserved0             ndr.DWORD
    PszZoneName             *ndr.STR `ndr:"unique"`
    DwZoneType              ndr.DWORD
    FAllowUpdate            ndr.DWORD
    FAging                  ndr.DWORD
    DwFlags                 ndr.DWORD
    PszDataFile             *ndr.STR `ndr:"unique"`
    FDsIntegrated           ndr.DWORD
    FLoadExisting           ndr.DWORD
    PszAdmin                *ndr.STR   `ndr:"unique"`
    AipMasters              *IP4_ARRAY `ndr:"unique"`
    AipSecondaries          *IP4_ARRAY `ndr:"unique"`
    FSecureSecondaries      ndr.DWORD
    FNotifyLevel            ndr.DWORD
    DwTimeout               ndr.DWORD
    FRecurseAfterForwarding ndr.DWORD
    DwDpFlags               ndr.DWORD
    PszDpFqdn               *ndr.STR `ndr:"unique"`
    DwReserved              [32]ndr.DWORD
}

type DNS\_RPC\_ZONE\_CREATE\_INFO\_LONGHORN

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

type DNS_RPC_ZONE_CREATE_INFO_LONGHORN struct {
    DwRpcStructureVersion   ndr.DWORD
    DwReserved0             ndr.DWORD
    PszZoneName             *ndr.STR `ndr:"unique"`
    DwZoneType              ndr.DWORD
    FAllowUpdate            ndr.DWORD
    FAging                  ndr.DWORD
    DwFlags                 ndr.DWORD
    PszDataFile             *ndr.STR `ndr:"unique"`
    FDsIntegrated           ndr.DWORD
    FLoadExisting           ndr.DWORD
    PszAdmin                *ndr.STR        `ndr:"unique"`
    AipMasters              *DNS_ADDR_ARRAY `ndr:"unique"`
    AipSecondaries          *DNS_ADDR_ARRAY `ndr:"unique"`
    FSecureSecondaries      ndr.DWORD
    FNotifyLevel            ndr.DWORD
    DwTimeout               ndr.DWORD
    FRecurseAfterForwarding ndr.DWORD
    DwDpFlags               ndr.DWORD
    PszDpFqdn               *ndr.STR `ndr:"unique"`
    DwReserved              [32]ndr.DWORD
}

type DNS\_RPC\_ZONE\_CREATE\_INFO\_W2K

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

type DNS_RPC_ZONE_CREATE_INFO_W2K struct {
    PszZoneName        *ndr.STR `ndr:"unique"`
    DwZoneType         ndr.DWORD
    FAllowUpdate       ndr.DWORD
    FAging             ndr.DWORD
    DwFlags            ndr.DWORD
    PszDataFile        *ndr.STR `ndr:"unique"`
    FDsIntegrated      ndr.DWORD
    FLoadExisting      ndr.DWORD
    PszAdmin           *ndr.STR   `ndr:"unique"`
    AipMasters         *IP4_ARRAY `ndr:"unique"`
    AipSecondaries     *IP4_ARRAY `ndr:"unique"`
    FSecureSecondaries ndr.DWORD
    FNotifyLevel       ndr.DWORD
    PvReserved1        *ndr.STR `ndr:"unique"`
    PvReserved2        *ndr.STR `ndr:"unique"`
    PvReserved3        *ndr.STR `ndr:"unique"`
    PvReserved4        *ndr.STR `ndr:"unique"`
    PvReserved5        *ndr.STR `ndr:"unique"`
    PvReserved6        *ndr.STR `ndr:"unique"`
    PvReserved7        *ndr.STR `ndr:"unique"`
    PvReserved8        *ndr.STR `ndr:"unique"`
    DwReserved1        ndr.DWORD
    DwReserved2        ndr.DWORD
    DwReserved3        ndr.DWORD
    DwReserved4        ndr.DWORD
    DwReserved5        ndr.DWORD
    DwReserved6        ndr.DWORD
    DwReserved7        ndr.DWORD
    DwReserved8        ndr.DWORD
}

type DNS\_RPC\_ZONE\_DATABASE

DNS_RPC_ZONE_DATABASE is an alias for DNS_RPC_ZONE_DATABASE_DOTNET (same IDL typedef).

type DNS_RPC_ZONE_DATABASE = DNS_RPC_ZONE_DATABASE_DOTNET

type DNS\_RPC\_ZONE\_DATABASE\_DOTNET

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

type DNS_RPC_ZONE_DATABASE_DOTNET struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    FDsIntegrated         ndr.DWORD
    PszFileName           *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_DATABASE\_W2K

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

type DNS_RPC_ZONE_DATABASE_W2K struct {
    FDsIntegrated ndr.DWORD
    PszFileName   *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_DNSSEC\_SETTINGS

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

type DNS_RPC_ZONE_DNSSEC_SETTINGS struct {
    DwRpcStructureVersion           ndr.DWORD
    DwReserved0                     ndr.DWORD
    FIsSigned                       ndr.DWORD
    FSignWithNSEC3                  ndr.DWORD
    FNSEC3OptOut                    ndr.DWORD
    DwMaintainTrustAnchor           ndr.DWORD
    FParentHasSecureDelegation      ndr.DWORD
    DwDSRecordAlgorithms            ndr.DWORD
    FRFC5011KeyRollovers            ndr.DWORD
    BNSEC3HashAlgorithm             uint8
    BNSEC3RandomSaltLength          uint8
    WNSEC3IterationCount            uint16
    PwszNSEC3UserSalt               *ndr.WSTR `ndr:"unique"`
    DwDNSKEYRecordSetTtl            ndr.DWORD
    DwDSRecordSetTtl                ndr.DWORD
    DwSignatureInceptionOffset      ndr.DWORD
    DwSecureDelegationPollingPeriod ndr.DWORD
    DwPropagationTime               ndr.DWORD
    CbNSEC3CurrentSaltLength        ndr.DWORD
    PbNSEC3CurrentSalt              *uint8 `ndr:"unique"`
    CurrentRollingSKDGuid           msdtyp.GUID
    DwBufferLength                  ndr.DWORD
    PBuffer                         *uint8 `ndr:"unique"`
    DwCount                         ndr.DWORD
    PZoneSkdArray                   [1]*DNS_RPC_ZONE_SKD
}

type DNS\_RPC\_ZONE\_DOTNET

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

type DNS_RPC_ZONE_DOTNET struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PszZoneName           *ndr.WSTR `ndr:"unique"`
    Flags                 ndr.DWORD
    ZoneType              uint8
    Version               uint8
    DwDpFlags             ndr.DWORD
    PszDpFqdn             *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_EXPORT\_INFO

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

type DNS_RPC_ZONE_EXPORT_INFO struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PszZoneExportFile     *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_FLAGS

DNS_RPC_ZONE_FLAGS is a scalar typedef ([MS-DNSP]).

type DNS_RPC_ZONE_FLAGS ndr.DWORD

type DNS\_RPC\_ZONE\_INFO

DNS_RPC_ZONE_INFO is an alias for DNS_RPC_ZONE_INFO_LONGHORN (same IDL typedef).

type DNS_RPC_ZONE_INFO = DNS_RPC_ZONE_INFO_LONGHORN

type DNS\_RPC\_ZONE\_INFO\_DOTNET

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

type DNS_RPC_ZONE_INFO_DOTNET struct {
    DwRpcStructureVersion    ndr.DWORD
    DwReserved0              ndr.DWORD
    PszZoneName              *ndr.STR `ndr:"unique"`
    DwZoneType               ndr.DWORD
    FReverse                 ndr.DWORD
    FAllowUpdate             ndr.DWORD
    FPaused                  ndr.DWORD
    FShutdown                ndr.DWORD
    FAutoCreated             ndr.DWORD
    FUseDatabase             ndr.DWORD
    PszDataFile              *ndr.STR   `ndr:"unique"`
    AipMasters               *IP4_ARRAY `ndr:"unique"`
    FSecureSecondaries       ndr.DWORD
    FNotifyLevel             ndr.DWORD
    AipSecondaries           *IP4_ARRAY `ndr:"unique"`
    AipNotify                *IP4_ARRAY `ndr:"unique"`
    FUseWins                 ndr.DWORD
    FUseNbstat               ndr.DWORD
    FAging                   ndr.DWORD
    DwNoRefreshInterval      ndr.DWORD
    DwRefreshInterval        ndr.DWORD
    DwAvailForScavengeTime   ndr.DWORD
    AipScavengeServers       *IP4_ARRAY `ndr:"unique"`
    DwForwarderTimeout       ndr.DWORD
    FForwarderSlave          ndr.DWORD
    AipLocalMasters          *IP4_ARRAY `ndr:"unique"`
    DwDpFlags                ndr.DWORD
    PszDpFqdn                *ndr.STR  `ndr:"unique"`
    PwszZoneDn               *ndr.WSTR `ndr:"unique"`
    DwLastSuccessfulSoaCheck ndr.DWORD
    DwLastSuccessfulXfr      ndr.DWORD
    DwReserved1              ndr.DWORD
    DwReserved2              ndr.DWORD
    DwReserved3              ndr.DWORD
    DwReserved4              ndr.DWORD
    DwReserved5              ndr.DWORD
    PReserved1               *ndr.STR `ndr:"unique"`
    PReserved2               *ndr.STR `ndr:"unique"`
    PReserved3               *ndr.STR `ndr:"unique"`
    PReserved4               *ndr.STR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_INFO\_LONGHORN

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

type DNS_RPC_ZONE_INFO_LONGHORN struct {
    DwRpcStructureVersion     ndr.DWORD
    DwReserved0               ndr.DWORD
    PszZoneName               *ndr.STR `ndr:"unique"`
    DwZoneType                ndr.DWORD
    FReverse                  ndr.DWORD
    FAllowUpdate              ndr.DWORD
    FPaused                   ndr.DWORD
    FShutdown                 ndr.DWORD
    FAutoCreated              ndr.DWORD
    FUseDatabase              ndr.DWORD
    PszDataFile               *ndr.STR        `ndr:"unique"`
    AipMasters                *DNS_ADDR_ARRAY `ndr:"unique"`
    FSecureSecondaries        ndr.DWORD
    FNotifyLevel              ndr.DWORD
    AipSecondaries            *DNS_ADDR_ARRAY `ndr:"unique"`
    AipNotify                 *DNS_ADDR_ARRAY `ndr:"unique"`
    FUseWins                  ndr.DWORD
    FUseNbstat                ndr.DWORD
    FAging                    ndr.DWORD
    DwNoRefreshInterval       ndr.DWORD
    DwRefreshInterval         ndr.DWORD
    DwAvailForScavengeTime    ndr.DWORD
    AipScavengeServers        *DNS_ADDR_ARRAY `ndr:"unique"`
    DwForwarderTimeout        ndr.DWORD
    FForwarderSlave           ndr.DWORD
    AipLocalMasters           *DNS_ADDR_ARRAY `ndr:"unique"`
    DwDpFlags                 ndr.DWORD
    PszDpFqdn                 *ndr.STR  `ndr:"unique"`
    PwszZoneDn                *ndr.WSTR `ndr:"unique"`
    DwLastSuccessfulSoaCheck  ndr.DWORD
    DwLastSuccessfulXfr       ndr.DWORD
    FQueuedForBackgroundLoad  ndr.DWORD
    FBackgroundLoadInProgress ndr.DWORD
    FReadOnlyZone             ndr.BOOL
    DwLastXfrAttempt          ndr.DWORD
    DwLastXfrResult           ndr.DWORD
}

type DNS\_RPC\_ZONE\_INFO\_W2K

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

type DNS_RPC_ZONE_INFO_W2K struct {
    PszZoneName            *ndr.STR `ndr:"unique"`
    DwZoneType             ndr.DWORD
    FReverse               ndr.DWORD
    FAllowUpdate           ndr.DWORD
    FPaused                ndr.DWORD
    FShutdown              ndr.DWORD
    FAutoCreated           ndr.DWORD
    FUseDatabase           ndr.DWORD
    PszDataFile            *ndr.STR   `ndr:"unique"`
    AipMasters             *IP4_ARRAY `ndr:"unique"`
    FSecureSecondaries     ndr.DWORD
    FNotifyLevel           ndr.DWORD
    AipSecondaries         *IP4_ARRAY `ndr:"unique"`
    AipNotify              *IP4_ARRAY `ndr:"unique"`
    FUseWins               ndr.DWORD
    FUseNbstat             ndr.DWORD
    FAging                 ndr.DWORD
    DwNoRefreshInterval    ndr.DWORD
    DwRefreshInterval      ndr.DWORD
    DwAvailForScavengeTime ndr.DWORD
    AipScavengeServers     *IP4_ARRAY `ndr:"unique"`
    PvReserved1            ndr.DWORD
    PvReserved2            ndr.DWORD
    PvReserved3            ndr.DWORD
    PvReserved4            ndr.DWORD
}

type DNS\_RPC\_ZONE\_LIST

DNS_RPC_ZONE_LIST is an alias for DNS_RPC_ZONE_LIST_DOTNET (same IDL typedef).

type DNS_RPC_ZONE_LIST = DNS_RPC_ZONE_LIST_DOTNET

type DNS\_RPC\_ZONE\_LIST\_DOTNET

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

type DNS_RPC_ZONE_LIST_DOTNET struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    DwZoneCount           ndr.DWORD
    ZoneArray             []*DNS_RPC_ZONE_DOTNET `ndr:"conformant,size_is=DwZoneCount,elem=unique"`
}

type DNS\_RPC\_ZONE\_LIST\_W2K

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

type DNS_RPC_ZONE_LIST_W2K struct {
    DwZoneCount ndr.DWORD
    ZoneArray   []*DNS_RPC_ZONE_W2K `ndr:"conformant,size_is=DwZoneCount,elem=unique"`
}

type DNS\_RPC\_ZONE\_SCOPE\_CREATE\_INFO

DNS_RPC_ZONE_SCOPE_CREATE_INFO is an alias for DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 ([MS-DNSP]).

type DNS_RPC_ZONE_SCOPE_CREATE_INFO = DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1

type DNS\_RPC\_ZONE\_SCOPE\_CREATE\_INFO\_V1

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

type DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 struct {
    DwFlags       ndr.DWORD
    PwszScopeName *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_SCOPE\_INFO

DNS_RPC_ZONE_SCOPE_INFO is an alias for DNS_RPC_ZONE_SCOPE_INFO_V1 ([MS-DNSP]).

type DNS_RPC_ZONE_SCOPE_INFO = DNS_RPC_ZONE_SCOPE_INFO_V1

type DNS\_RPC\_ZONE\_SCOPE\_INFO\_V1

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

type DNS_RPC_ZONE_SCOPE_INFO_V1 struct {
    DwRpcStructureVersion ndr.DWORD
    PwszScopeName         *ndr.WSTR `ndr:"unique"`
    PwszDataFile          *ndr.WSTR `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_SECONDARIES

DNS_RPC_ZONE_SECONDARIES is an alias for DNS_RPC_ZONE_SECONDARIES_LONGHORN (same IDL typedef).

type DNS_RPC_ZONE_SECONDARIES = DNS_RPC_ZONE_SECONDARIES_LONGHORN

type DNS\_RPC\_ZONE\_SECONDARIES\_DOTNET

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

type DNS_RPC_ZONE_SECONDARIES_DOTNET struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    FSecureSecondaries    ndr.DWORD
    FNotifyLevel          ndr.DWORD
    AipSecondaries        *IP4_ARRAY `ndr:"unique"`
    AipNotify             *IP4_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_SECONDARIES\_LONGHORN

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

type DNS_RPC_ZONE_SECONDARIES_LONGHORN struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    FSecureSecondaries    ndr.DWORD
    FNotifyLevel          ndr.DWORD
    AipSecondaries        *DNS_ADDR_ARRAY `ndr:"unique"`
    AipNotify             *DNS_ADDR_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_SECONDARIES\_W2K

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

type DNS_RPC_ZONE_SECONDARIES_W2K struct {
    FSecureSecondaries ndr.DWORD
    FNotifyLevel       ndr.DWORD
    AipSecondaries     *IP4_ARRAY `ndr:"unique"`
    AipNotify          *IP4_ARRAY `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_SKD

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

type DNS_RPC_ZONE_SKD struct {
    DwRpcStructureVersion ndr.DWORD
    DwReserved0           ndr.DWORD
    PSkd                  *DNS_RPC_SKD          `ndr:"unique"`
    PSkdState             *DNS_RPC_SKD_STATE    `ndr:"unique"`
    PSkdStateEx           *DNS_RPC_SKD_STATE_EX `ndr:"unique"`
}

type DNS\_RPC\_ZONE\_STATS

DNS_RPC_ZONE_STATS is an alias for DNS_RPC_ZONE_STATS_V1 ([MS-DNSP]).

type DNS_RPC_ZONE_STATS = DNS_RPC_ZONE_STATS_V1

type DNS\_RPC\_ZONE\_STATS\_V1

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

type DNS_RPC_ZONE_STATS_V1 struct {
    DwRpcStructureVersion ndr.DWORD
    ZoneTimeStats         DNSSRV_ZONE_TIME_STATS
    ZoneQueryStats        [32]DNSSRV_ZONE_QUERY_STATS
    ZoneTransferStats     [2]DNSSRV_ZONE_TRANSFER_STATS
    ZoneUpdateStats       DNSSRV_ZONE_UPDATE_STATS
    ZoneRRLStats          DNSSRV_ZONE_RRL_STATS
}

type DNS\_RPC\_ZONE\_W2K

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

type DNS_RPC_ZONE_W2K struct {
    PszZoneName *ndr.WSTR `ndr:"unique"`
    Flags       ndr.DWORD
    ZoneType    uint8
    Version     uint8
}

type DNS\_RRL\_MODE\_ENUM

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

type DNS_RRL_MODE_ENUM uint16
const (
    DnsRRLLogOnly  DNS_RRL_MODE_ENUM = 0
    DnsRRLEnabled  DNS_RRL_MODE_ENUM = 1
    DnsRRLDisabled DNS_RRL_MODE_ENUM = 2
)

type DNS\_SYSTEMTIME

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

type DNS_SYSTEMTIME struct {
    WYear         uint16
    WMonth        uint16
    WDayOfWeek    uint16
    WDay          uint16
    WHour         uint16
    WMinute       uint16
    WSecond       uint16
    WMilliseconds uint16
}

type DNS\_ZONE\_STATS\_TYPE

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

type DNS_ZONE_STATS_TYPE uint16
const (
    ZONE_STATS_TYPE_RECORD_A      DNS_ZONE_STATS_TYPE = 0
    ZONE_STATS_TYPE_RECORD_AAAA   DNS_ZONE_STATS_TYPE = 1
    ZONE_STATS_TYPE_RECORD_PTR    DNS_ZONE_STATS_TYPE = 2
    ZONE_STATS_TYPE_RECORD_CNAME  DNS_ZONE_STATS_TYPE = 3
    ZONE_STATS_TYPE_RECORD_MX     DNS_ZONE_STATS_TYPE = 4
    ZONE_STATS_TYPE_RECORD_AFSDB  DNS_ZONE_STATS_TYPE = 5
    ZONE_STATS_TYPE_RECORD_ATMA   DNS_ZONE_STATS_TYPE = 6
    ZONE_STATS_TYPE_RECORD_DHCID  DNS_ZONE_STATS_TYPE = 7
    ZONE_STATS_TYPE_RECORD_DNAME  DNS_ZONE_STATS_TYPE = 8
    ZONE_STATS_TYPE_RECORD_HINFO  DNS_ZONE_STATS_TYPE = 9
    ZONE_STATS_TYPE_RECORD_ISDN   DNS_ZONE_STATS_TYPE = 10
    ZONE_STATS_TYPE_RECORD_MG     DNS_ZONE_STATS_TYPE = 11
    ZONE_STATS_TYPE_RECORD_MB     DNS_ZONE_STATS_TYPE = 12
    ZONE_STATS_TYPE_RECORD_MINFO  DNS_ZONE_STATS_TYPE = 13
    ZONE_STATS_TYPE_RECORD_NAPTR  DNS_ZONE_STATS_TYPE = 14
    ZONE_STATS_TYPE_RECORD_NXT    DNS_ZONE_STATS_TYPE = 15
    ZONE_STATS_TYPE_RECORD_KEY    DNS_ZONE_STATS_TYPE = 16
    ZONE_STATS_TYPE_RECORD_MR     DNS_ZONE_STATS_TYPE = 17
    ZONE_STATS_TYPE_RECORD_RP     DNS_ZONE_STATS_TYPE = 18
    ZONE_STATS_TYPE_RECORD_RT     DNS_ZONE_STATS_TYPE = 19
    ZONE_STATS_TYPE_RECORD_SRV    DNS_ZONE_STATS_TYPE = 20
    ZONE_STATS_TYPE_RECORD_SIG    DNS_ZONE_STATS_TYPE = 21
    ZONE_STATS_TYPE_RECORD_TEXT   DNS_ZONE_STATS_TYPE = 22
    ZONE_STATS_TYPE_RECORD_WKS    DNS_ZONE_STATS_TYPE = 23
    ZONE_STATS_TYPE_RECORD_X25    DNS_ZONE_STATS_TYPE = 24
    ZONE_STATS_TYPE_RECORD_DNSKEY DNS_ZONE_STATS_TYPE = 25
    ZONE_STATS_TYPE_RECORD_DS     DNS_ZONE_STATS_TYPE = 26
    ZONE_STATS_TYPE_RECORD_NS     DNS_ZONE_STATS_TYPE = 27
    ZONE_STATS_TYPE_RECORD_SOA    DNS_ZONE_STATS_TYPE = 28
    ZONE_STATS_TYPE_RECORD_TLSA   DNS_ZONE_STATS_TYPE = 29
    ZONE_STATS_TYPE_RECORD_ALL    DNS_ZONE_STATS_TYPE = 30
    ZONE_STATS_TYPE_RECORD_OTHERS DNS_ZONE_STATS_TYPE = 31
    ZONE_STATS_TYPE_TRANSFER_AXFR DNS_ZONE_STATS_TYPE = 32
    ZONE_STATS_TYPE_TRANSFER_IXFR DNS_ZONE_STATS_TYPE = 33
    ZONE_STATS_TYPE_UPDATE        DNS_ZONE_STATS_TYPE = 34
    ZONE_STATS_TYPE_RRL           DNS_ZONE_STATS_TYPE = 35
    MAX_ZONE_STATS_TYPES          DNS_ZONE_STATS_TYPE = 36
)

type IP4\_ARRAY

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

type IP4_ARRAY struct {
    AddrCount ndr.DWORD
    AddrArray []ndr.DWORD `ndr:"conformant,size_is=AddrCount"`
}

type ImportOpResult

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

type ImportOpResult uint16
const (
    IMPORT_STATUS_NOOP            ImportOpResult = 0
    IMPORT_STATUS_SIGNING_READY   ImportOpResult = 1
    IMPORT_STATUS_UNSIGNING_READY ImportOpResult = 2
    IMPORT_STATUS_CHANGED         ImportOpResult = 3
)

type KeySignScope

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

type KeySignScope uint16
const (
    SIGN_SCOPE_DEFAULT        KeySignScope = 0
    SIGN_SCOPE_DNSKEY_ONLY    KeySignScope = 1
    SIGN_SCOPE_ALL_RECORDS    KeySignScope = 2
    SIGN_SCOPE_ADD_ONLY       KeySignScope = 3
    SIGN_SCOPE_DO_NOT_PUBLISH KeySignScope = 4
    SIGN_SCOPE_REVOKED        KeySignScope = 5
)

type PropertyId

PropertyId is the 32-bit value stored in the Id field of a DNS_PROPERTY (section 2.3.2.1). It specifies the type of data carried in the property’s Data field.

Source: [MS-DNSP] Property Id (section 2.3.2.1.1) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/3af63871-0cc4-4179-916c-5caade55a8f3

type PropertyId uint32

DSPROPERTY_ZONE_* constants, per [MS-DNSP] section 2.3.2.1.1.

const (
    DSPROPERTY_ZONE_TYPE                  PropertyId = 0x00000001 // Zone type (dwZoneType). See ZoneType.
    DSPROPERTY_ZONE_ALLOW_UPDATE          PropertyId = 0x00000002 // Dynamic-update policy (fAllowUpdate). See ZoneUpdate.
    DSPROPERTY_ZONE_SECURE_TIME           PropertyId = 0x00000008 // Time at which the zone became secure.
    DSPROPERTY_ZONE_NOREFRESH_INTERVAL    PropertyId = 0x00000010 // No-refresh interval, in hours.
    DSPROPERTY_ZONE_SCAVENGING_SERVERS    PropertyId = 0x00000011 // Scavenging servers, as an IP4_ARRAY.
    DSPROPERTY_ZONE_AGING_ENABLED_TIME    PropertyId = 0x00000012 // Time interval before the next scavenging cycle.
    DSPROPERTY_ZONE_REFRESH_INTERVAL      PropertyId = 0x00000020 // Refresh interval, in hours.
    DSPROPERTY_ZONE_AGING_STATE           PropertyId = 0x00000040 // Whether aging is enabled (fAging).
    DSPROPERTY_ZONE_DELETED_FROM_HOSTNAME PropertyId = 0x00000080 // Name of the server that deleted the zone (Unicode string).
    DSPROPERTY_ZONE_MASTER_SERVERS        PropertyId = 0x00000081 // Zone-transfer master servers, as an IP4_ARRAY.
    DSPROPERTY_ZONE_AUTO_NS_SERVERS       PropertyId = 0x00000082 // Servers that may auto-create a delegation, as an IP4_ARRAY.
    DSPROPERTY_ZONE_DCPROMO_CONVERT       PropertyId = 0x00000083 // State of DcPromo zone conversion. See DcPromo Flag (section 2.3.2.1.2).
    DSPROPERTY_ZONE_SCAVENGING_SERVERS_DA PropertyId = 0x00000090 // Scavenging servers, as a DNS_ADDR_ARRAY.
    DSPROPERTY_ZONE_MASTER_SERVERS_DA     PropertyId = 0x00000091 // Zone-transfer master servers, as a DNS_ADDR_ARRAY.
    DSPROPERTY_ZONE_AUTO_NS_SERVERS_DA    PropertyId = 0x00000092 // Auto-created-NS servers, as a DNS_ADDR_ARRAY.
    DSPROPERTY_ZONE_NODE_DBFLAGS          PropertyId = 0x00000100 // Node database flags. See DNS_RPC_NODE_FLAGS (section 2.2.2.1.2).
)

func (PropertyId) String

func (id PropertyId) String() string

String returns the [MS-DNSP] constant name of the property id (for example “DSPROPERTY_ZONE_TYPE”), or a hexadecimal fallback of the form “PropertyId(0x12345678)” for values not defined in the specification’s table.

type RecordType

RecordType is a 16-bit value that specifies a DNS resource record’s type. It is stored in the Type field of a DNS_RECORD (section 2.3.2.2) and selects which DNS_RPC_RECORD_DATA (section 2.2.2.2.4) payload appears in the record’s Data field.

Source: [MS-DNSP] DNS_RECORD_TYPE (section 2.2.2.1.1) https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/39b03b89-2264-4063-8198-d62f62a6441a

type RecordType uint16

DNS_RECORD_TYPE constants, per [MS-DNSP] section 2.2.2.1.1. The values are the IANA DNS resource-record type codes, with the Microsoft-specific WINS/WINSR extensions in the private 0xFF00 range.

const (
    DNS_TYPE_ZERO       RecordType = 0x0000 // An empty record type (RFC1034 3.6, RFC1035 3.2.2).
    DNS_TYPE_A          RecordType = 0x0001 // An A record type, an IPv4 address (RFC1035 3.2.2).
    DNS_TYPE_NS         RecordType = 0x0002 // An authoritative name-server record type.
    DNS_TYPE_MD         RecordType = 0x0003 // A mail-destination record type.
    DNS_TYPE_MF         RecordType = 0x0004 // A mail-forwarder record type.
    DNS_TYPE_CNAME      RecordType = 0x0005 // The canonical name of a DNS alias.
    DNS_TYPE_SOA        RecordType = 0x0006 // A Start of Authority (SOA) record type.
    DNS_TYPE_MB         RecordType = 0x0007 // A mailbox record type.
    DNS_TYPE_MG         RecordType = 0x0008 // A mail group member record type.
    DNS_TYPE_MR         RecordType = 0x0009 // A mail-rename record type.
    DNS_TYPE_NULL       RecordType = 0x000A // A record type for completion queries.
    DNS_TYPE_WKS        RecordType = 0x000B // A well-known service record type.
    DNS_TYPE_PTR        RecordType = 0x000C // An FQDN pointer record type.
    DNS_TYPE_HINFO      RecordType = 0x000D // A host information record type.
    DNS_TYPE_MINFO      RecordType = 0x000E // A mailbox or mailing list information record type.
    DNS_TYPE_MX         RecordType = 0x000F // A mail-exchanger record type.
    DNS_TYPE_TXT        RecordType = 0x0010 // A text string record type.
    DNS_TYPE_RP         RecordType = 0x0011 // A responsible-person record type (RFC1183).
    DNS_TYPE_AFSDB      RecordType = 0x0012 // An AFS database location record type (RFC1183).
    DNS_TYPE_X25        RecordType = 0x0013 // An X25 PSDN address record type (RFC1183).
    DNS_TYPE_ISDN       RecordType = 0x0014 // An ISDN address record type (RFC1183).
    DNS_TYPE_RT         RecordType = 0x0015 // A route-through record type (RFC1183).
    DNS_TYPE_SIG        RecordType = 0x0018 // A cryptographic public key signature record type (RFC2931).
    DNS_TYPE_KEY        RecordType = 0x0019 // A DNSSEC public key record type (RFC2535).
    DNS_TYPE_AAAA       RecordType = 0x001C // An IPv6 address record type (RFC3596).
    DNS_TYPE_LOC        RecordType = 0x001D // A location information record type (RFC1876).
    DNS_TYPE_NXT        RecordType = 0x001E // A next-domain record type (RFC2065).
    DNS_TYPE_SRV        RecordType = 0x0021 // A server selection record type (RFC2782).
    DNS_TYPE_ATMA       RecordType = 0x0022 // An ATM address record type.
    DNS_TYPE_NAPTR      RecordType = 0x0023 // A NAPTR record type (RFC2915).
    DNS_TYPE_DNAME      RecordType = 0x0027 // A DNAME record type (RFC2672).
    DNS_TYPE_DS         RecordType = 0x002B // A DS record type (RFC4034).
    DNS_TYPE_RRSIG      RecordType = 0x002E // An RRSIG record type (RFC4034).
    DNS_TYPE_NSEC       RecordType = 0x002F // An NSEC record type (RFC4034).
    DNS_TYPE_DNSKEY     RecordType = 0x0030 // A DNSKEY record type (RFC4034).
    DNS_TYPE_DHCID      RecordType = 0x0031 // A DHCID record type (RFC4701).
    DNS_TYPE_NSEC3      RecordType = 0x0032 // An NSEC3 record type (RFC5155).
    DNS_TYPE_NSEC3PARAM RecordType = 0x0033 // An NSEC3PARAM record type (RFC5155).
    DNS_TYPE_TLSA       RecordType = 0x0034 // A TLSA record type (RFC6698).
    DNS_TYPE_ALL        RecordType = 0x00FF // A query-only type requesting all records.
    DNS_TYPE_WINS       RecordType = 0xFF01 // A WINS forward-lookup record type (MS-WINSRA).
    DNS_TYPE_WINSR      RecordType = 0xFF02 // A WINS reverse-lookup record type (MS-WINSRA).
)

func (RecordType) String

func (t RecordType) String() string

String returns the [MS-DNSP] constant name of the record type (for example “DNS_TYPE_A”), or a hexadecimal fallback of the form “RecordType(0x1234)” for values not defined in the specification’s table (which still MUST be enumerable per section 2.2.2.1.1).

type TRUSTANCHOR\_STATE

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

type TRUSTANCHOR_STATE uint16
const (
    TRUSTANCHOR_STATE_INITIALIZED TRUSTANCHOR_STATE = 0
    TRUSTANCHOR_STATE_DSPENDING   TRUSTANCHOR_STATE = 1
    TRUSTANCHOR_STATE_DSINVALID   TRUSTANCHOR_STATE = 2
    TRUSTANCHOR_STATE_ADDPEND     TRUSTANCHOR_STATE = 3
    TRUSTANCHOR_STATE_VALID       TRUSTANCHOR_STATE = 4
    TRUSTANCHOR_STATE_MISSING     TRUSTANCHOR_STATE = 5
    TRUSTANCHOR_STATE_REVOKED     TRUSTANCHOR_STATE = 6
    TRUSTANCHOR_STATE_DELETED     TRUSTANCHOR_STATE = 7
)

type TRUSTPOINT\_STATE

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

type TRUSTPOINT_STATE uint16
const (
    TRUSTPOINT_STATE_INITIALIZED    TRUSTPOINT_STATE = 0
    TRUSTPOINT_STATE_DSPENDING      TRUSTPOINT_STATE = 1
    TRUSTPOINT_STATE_ACTIVE         TRUSTPOINT_STATE = 2
    TRUSTPOINT_STATE_DELETE_PENDING TRUSTPOINT_STATE = 3
    TRUSTPOINT_STATE_DELETED        TRUSTPOINT_STATE = 4
)

type ZoneType

ZoneType is the value carried by a DSPROPERTY_ZONE_TYPE property (dwZoneType). It identifies the kind of DNS zone.

Source: [MS-DNSP] dwZoneType, referenced from DNS_RPC_ZONE_INFO (section 2.2.5.2.4.1)

type ZoneType uint32

DNS_ZONE_TYPE_* constants.

const (
    DNS_ZONE_TYPE_CACHE           ZoneType = 0x00000000 // A cache (root hints) zone.
    DNS_ZONE_TYPE_PRIMARY         ZoneType = 0x00000001 // A primary zone.
    DNS_ZONE_TYPE_SECONDARY       ZoneType = 0x00000002 // A secondary zone.
    DNS_ZONE_TYPE_STUB            ZoneType = 0x00000003 // A stub zone.
    DNS_ZONE_TYPE_FORWARDER       ZoneType = 0x00000004 // A forwarder zone.
    DNS_ZONE_TYPE_SECONDARY_CACHE ZoneType = 0x00000005 // A secondary cache zone.
)

func (ZoneType) String

func (t ZoneType) String() string

String returns the constant name of the zone type, or a hexadecimal fallback of the form “ZoneType(0x12345678)” for undefined values.

type ZoneUpdate

ZoneUpdate is the value carried by a DSPROPERTY_ZONE_ALLOW_UPDATE property (fAllowUpdate). It identifies the dynamic-update policy of a zone.

A value of ZONE_UPDATE_UNSECURE means the zone accepts unauthenticated dynamic updates, which allows any host to create or overwrite records in the zone.

Source: [MS-DNSP] fAllowUpdate, referenced from DNS_RPC_ZONE_INFO (section 2.2.5.2.4.1)

type ZoneUpdate uint32

ZONE_UPDATE_* constants.

const (
    ZONE_UPDATE_OFF      ZoneUpdate = 0x00000000 // Dynamic updates are not allowed.
    ZONE_UPDATE_UNSECURE ZoneUpdate = 0x00000001 // Both secure and unsecure dynamic updates are allowed.
    ZONE_UPDATE_SECURE   ZoneUpdate = 0x00000002 // Only secure dynamic updates are allowed.
)

func (ZoneUpdate) String

func (u ZoneUpdate) String() string

String returns the constant name of the update policy, or a hexadecimal fallback of the form “ZoneUpdate(0x12345678)” for undefined values.