dnsserver

package
v1.0.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	DNSServerSyntaxUUID = &uuid.UUID{TimeLow: 0x50abc2a4, TimeMid: 0x574d, TimeHiAndVersion: 0x40b3, ClockSeqHiAndReserved: 0x9d, ClockSeqLow: 0x66, Node: [6]uint8{0xee, 0x4f, 0xd5, 0xfb, 0xa0, 0x76}}
	// Syntax ID
	DNSServerSyntaxV5_0 = &dcerpc.SyntaxID{IfUUID: DNSServerSyntaxUUID, IfVersionMajor: 5, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "dnsp"
)

Functions

func DNSServerServerHandle

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

func NewDNSServerServerHandle

func NewDNSServerServerHandle(o DNSServerServer) dcerpc.ServerHandle

func RegisterDNSServerServer

func RegisterDNSServerServer(conn dcerpc.Conn, o DNSServerServer, opts ...dcerpc.Option)

Types

type ComplexOperation2Request

type ComplexOperation2Request struct {
	// dwClientVersion: The client version in DNS_RPC_CURRENT_CLIENT_VER (section 2.2.1.2.1)
	// format.
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	// dwSettingFlags: Reserved for future use only. This field MUST be set to zero by clients
	// and ignored by servers.
	SettingFlags uint32      `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName   string      `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone         string      `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	Operation    string      `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	TypeIn       uint32      `idl:"name:dwTypeIn" json:"type_in"`
	DataIn       *dnsp.Union `idl:"name:pDataIn;switch_is:dwTypeIn" json:"data_in"`
}

ComplexOperation2Request structure represents the R_DnssrvComplexOperation2 operation request

func (*ComplexOperation2Request) MarshalNDR

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

func (*ComplexOperation2Request) UnmarshalNDR

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

type ComplexOperation2Response

type ComplexOperation2Response struct {
	TypeOut uint32      `idl:"name:pdwTypeOut" json:"type_out"`
	DataOut *dnsp.Union `idl:"name:ppDataOut;switch_is:*pdwTypeOut" json:"data_out"`
	// Return: The R_DnssrvComplexOperation2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

ComplexOperation2Response structure represents the R_DnssrvComplexOperation2 operation response

func (*ComplexOperation2Response) MarshalNDR

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

func (*ComplexOperation2Response) UnmarshalNDR

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

type ComplexOperation3Request

type ComplexOperation3Request struct {
	// dwClientVersion: The client version in DNS_RPC_CURRENT_CLIENT_VER (section 2.2.1.2.1)
	// format.
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	// dwSettingFlags: Reserved for future use only. This field MUST be set to zero by clients
	// and ignored by servers.
	SettingFlags uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName   string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pwszVirtualizationInstanceID: A pointer to a null-terminated Unicode string that
	// contains the name of the virtualization instance configured in the DNS server. For
	// operations specific to a virtualization instance, this field MUST contain the name
	// of the virtualization instance. If the value is NULL, then the API is as specified
	// in R_DnssrvComplexOperation2 (section 3.1.4.8). Apart from the EnumVirtualizationInstances
	// operation (section 3.1.4.3), R_DnssrvComplexOperation3 changes the behavior of the
	// following operations: EnumZoneScopes, EnumZones2, and EnumZones (section 3.1.4.3),
	// if these operation are called with R_DnssrvComplexOperation3 and a non-NULL pwszVirtualizationInstanceID,
	// they are performed under the given virtualization instance.
	VirtualizationInstanceID string      `idl:"name:pwszVirtualizationInstanceID;string;pointer:unique" json:"virtualization_instance_id"`
	Zone                     string      `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	Operation                string      `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	TypeIn                   uint32      `idl:"name:dwTypeIn" json:"type_in"`
	DataIn                   *dnsp.Union `idl:"name:pDataIn;switch_is:dwTypeIn" json:"data_in"`
}

ComplexOperation3Request structure represents the R_DnssrvComplexOperation3 operation request

func (*ComplexOperation3Request) MarshalNDR

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

func (*ComplexOperation3Request) UnmarshalNDR

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

type ComplexOperation3Response

type ComplexOperation3Response struct {
	TypeOut uint32      `idl:"name:pdwTypeOut" json:"type_out"`
	DataOut *dnsp.Union `idl:"name:ppDataOut;switch_is:*pdwTypeOut" json:"data_out"`
	// Return: The R_DnssrvComplexOperation3 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

ComplexOperation3Response structure represents the R_DnssrvComplexOperation3 operation response

func (*ComplexOperation3Response) MarshalNDR

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

func (*ComplexOperation3Response) UnmarshalNDR

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

type ComplexOperationRequest

type ComplexOperationRequest struct {
	// pwszServerName: The client SHOULD pass a pointer to the FQDN of the target server
	// as a null-terminated UTF-16LE character string. The server MUST ignore this value.
	ServerName string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pszZone: The name of the zone that is being operated on. This MUST be set to NULL
	// unless pszOperation is set to QueryDwordProperty, in which case this value MUST be
	// set either to NULL (to indicate that DNS server Configuration information is being
	// requested) or to the name of the zone to be queried in UTF-8 format (to indicate
	// that a DNS Zone integer property is being requested). This value will be used by
	// certain operations as specified in the table below.
	Zone string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pszOperation: The operation to perform. The value of pszOperation SHOULD<275> be
	// one of the following:
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|                                  |                                                                                  |
	//	|              VALUE               |                                     MEANING                                      |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumZones                        | Enumerate zones present on the DNS server qualifying for a specified simple      |
	//	|                                  | zone filter value. On input, dwTypeIn MUST be set to DNSSRV_TYPEID_DWORD         |
	//	|                                  | and pDataIn MUST point to any combination of ZONE_REQUEST_FILTERS (section       |
	//	|                                  | 2.2.5.1.4) values. Unless an error is returned, on output the value pointed to   |
	//	|                                  | by pdwTypeOut MUST be set to DNSSRV_TYPEID_ZONE_LIST and ppDataOut MUST point    |
	//	|                                  | to a structure of one of the types specified in DNS_RPC_ZONE_LIST (section       |
	//	|                                  | 2.2.5.2.3).                                                                      |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumZones2                       | Enumerate zones present on the DNS server qualifying for a specified             |
	//	|                                  | complex zone filter value. On input, dwTypeIn MUST be set to                     |
	//	|                                  | DNSSRV_TYPEID_ENUM_ZONES_FILTER and pDataIn MUST point to a structure of type    |
	//	|                                  | DNS_RPC_ENUM_ZONES_FILTER (section 2.2.5.2.9). Unless an error is returned, on   |
	//	|                                  | output the value pointed to by pdwTypeOut MUST be set to DNSSRV_TYPEID_ZONE_LIST |
	//	|                                  | and MUST ppDataOut point to a structure of one of the types specified in         |
	//	|                                  | DNS_RPC_ZONE_LIST.                                                               |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumDirectoryPartitions          | Enumerate the Application Directory Partition Table known to the DNS server. On  |
	//	|                                  | input, dwTypeIn MUST be set to DNSSRV_TYPEID_DWORD and pDataIn MUST be set to    |
	//	|                                  | zero if all application directory partitions are enumerated or to 0x000000001    |
	//	|                                  | if the DNS domain partition and DNS forest partition are excluded from results.  |
	//	|                                  | Unless an error is returned, on output the value pointed to by pdwTypeOut MUST   |
	//	|                                  | be set to DNSSRV_TYPEID_DP_LIST and ppDataOut MUST point to a structure of type  |
	//	|                                  | DNS_RPC_DP_LIST (section 2.2.7.2.4).                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DirectoryPartitionInfo           | Retrieve detailed information about a specified application directory partition. |
	//	|                                  | On input, dwTypeIn MUST be set to DNSSRV_TYPEID_LPSTR and pDataIn MUST point     |
	//	|                                  | to a null-terminated UTF-8 string specifying the distinguished name of an        |
	//	|                                  | application directory partition. Unless an error is returned, on output the      |
	//	|                                  | value pointed to by pdwTypeOut MUST be DNSSRV_TYPEID_DP_INFO and ppDataOut MUST  |
	//	|                                  | point to a structure of type DNS_RPC_DP_INFO (section 2.2.7.2.1).                |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| Statistics                       | Retrieve statistics. On input dwTypeIn MUST be set to DNSSRV_TYPEID_DWORD        |
	//	|                                  | and pDataIn MUST point to any combination of the DNSSRV_STATID_TYPES (section    |
	//	|                                  | 2.2.10.1.1) values. Unless an error is returned, on output the value pointed to  |
	//	|                                  | by pdwTypeOut MUST be set to DNSSRV_TYPEID_BUFFER and ppDataOut MUST point to    |
	//	|                                  | a DNS_RPC_BUFFER structure (section 2.2.1.2.2) that contains a list of variable  |
	//	|                                  | sized DNSSRV_STATS structures (section 2.2.10.2.2).                              |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| QueryDwordProperty               | Retrieve the value of a 32-bit integer property. On input, dwTypeIn MUST be      |
	//	|                                  | set to DNSSRV_TYPEID _LPSTR and pDataIn MUST point to a null-terminated UTF-8    |
	//	|                                  | string specifying a zone property name listed in section 3.1.1.2.1 (if pszZone   |
	//	|                                  | is non-NULL) or server property name listed in section 3.1.1.1.1 (if pszZone is  |
	//	|                                  | NULL). Unless an error is returned, on output the value pointed to by pdwTypeOut |
	//	|                                  | MUST be set to DNSSRV_TYPEID_DWORD and ppDataOut MUST point to a DWORD value.    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| IpValidate                       | Validate a list of IP addresses. On input, dwTypeIn MUST be set to               |
	//	|                                  | DNSSRV_TYPEID_IP_VALIDATE and pDataIn MUST point to a DNS_RPC_IP_VALIDATE        |
	//	|                                  | structure (section 2.2.3.2.4) containing a list of IP addresses to be validated  |
	//	|                                  | and the context information for validation as specified in section 2.2.3.2.4.    |
	//	|                                  | Unless an error is returned, on output the value pointed to by pdwTypeOut MUST   |
	//	|                                  | be set to DNSSRV_TYPEID_ADDRARRAY and ppDataOut MUST point to a structure of     |
	//	|                                  | type DNS_ADDR_ARRAY (section 2.2.3.2.3) that contains IP validation results      |
	//	|                                  | (section 2.2.3.2.1).                                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ModifyZoneSigningKeyDescriptor   | Creates, deletes, or modifies a signing key descriptor (SKD) for the specified   |
	//	|                                  | zone. On input, dwTypeIn MUST be set to DNSSRV_TYPEID_SKD and pDataIn MUST       |
	//	|                                  | point to a structure of type DNS_RPC_SKD (section 2.2.6.2.1). If GUID inside     |
	//	|                                  | DNS_RPC_SKD is set to zero, the server MUST create a new signing key descriptor. |
	//	|                                  | If GUID inside DNS_RPC_SKD is set to a nonzero value and if all other fields     |
	//	|                                  | in the structure are NULL, the server MUST delete the signing key descriptor     |
	//	|                                  | from the zone. Otherwise, the server MUST modify the signing key descriptor for  |
	//	|                                  | the specified zone. Unless an error is returned, on output the value pointed     |
	//	|                                  | to by pdwTypeOut MUST be set to DNSSRV_TYPEID_SKD and ppDataOut MUST point to a  |
	//	|                                  | structure of type DNS_RPC_SKD (section 2.2.6.2.1).                               |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumZoneSigningKeyDescriptors    | Retrieves the signing key descriptor found in the zone's signing key descriptor  |
	//	|                                  | list for the specified zone. Input parameters (dwTypeIn and pDataIn) are         |
	//	|                                  | ignored. Unless an error is returned, on output the value pointed to by          |
	//	|                                  | pdwTypeOut MUST be set to DNSSRV_TYPEID_SKD_LIST and ppDataOut MUST point to a   |
	//	|                                  | structure of type DNS_RPC_SKD_LIST (section 2.2.6.2.2).                          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| GetZoneSigningKeyDescriptorState | Retrieves the SKD state (section 2.2.6.2.3) for the specified zone               |
	//	|                                  | and the signing key descriptor GUID. On input, dwTypeIn MUST be set to           |
	//	|                                  | DNSSRV_TYPEID_LPWSTR and pDataIn MUST point to a string containing the GUID of   |
	//	|                                  | the signing key descriptor. Unless an error is returned, on output the value     |
	//	|                                  | pointed to by pdwTypeOut MUST be set to DNSSRV_TYPEID_SKD_STATE and ppDataOut    |
	//	|                                  | MUST point to a structure of type DNS_RPC_SKD_STATE (section 2.2.6.2.3).         |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| SetZoneSigningKeyDescriptorState | Modifies the SKD state (section 2.2.6.2.3) for the specified zone and            |
	//	|                                  | the signing key descriptor GUID. On input, dwTypeIn MUST be set to               |
	//	|                                  | DNSSRV_TYPEID_SKD_STATE and pDataIn MUST point to a structure of type            |
	//	|                                  | DNS_RPC_SKD_STATE (section 2.2.6.2.3). Note that only one key pointer string     |
	//	|                                  | inside DNS_RPC_SKD_STATE will be set per a specific operation as described       |
	//	|                                  | below. Unless an error is returned, on output the value pointed to by pdwTypeOut |
	//	|                                  | MUST be set to DNSSRV_TYPEID_SKD_STATE and ppDataOut MUST point to a structure   |
	//	|                                  | of type DNS_RPC_SKD_STATE (section 2.2.6.2.3) containing the modified SKD state. |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ValidateZoneSigningParameters    | Validates the zone signing parameters and returns a structure describing the     |
	//	|                                  | invalid signing parameters. Input parameters (dwTypeIn and pDataIn) are ignored. |
	//	|                                  | Unless success is returned, on output the value pointed to by pdwTypeOut MUST    |
	//	|                                  | be set to DNSSRV_TYPEID_SIGNING_VALIDATION_ERROR and ppDataOut MUST point        |
	//	|                                  | to a structure of type DNS_RPC_SIGNING_VALIDATION_ERROR (section 2.2.6.2.8)      |
	//	|                                  | containing invalid elements of the zone configuration.                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumerateKeyStorageProviders     | Enumerates key storage providers installed on the DNS server. On input, dwTypeIn |
	//	|                                  | and pDataIn are ignored. Unless an error is returned, on output the value        |
	//	|                                  | pointed to by pdwTypeOut MUST be set to DNSSRV_TYPEID_UNICODE_STRING_LIST and    |
	//	|                                  | ppDataOut MUST point to a structure of type DNS_RPC_UNICODE_STRING_LIST (section |
	//	|                                  | 2.2.1.2.4) that contains a list of storage providers installed on the DNS        |
	//	|                                  | server.                                                                          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumerateTrustPoints             | Retrieve a list of trust points, containing either all trust points or           |
	//	|                                  | only those at or below a given FQDN. On input, dwTypeIn MUST be set to           |
	//	|                                  | DNSSRV_TYPEID_LPSTR and pDataIn MUST point either to a null pointer or to        |
	//	|                                  | a null-terminated UTF-8 string specifying an FQDN. If pDataIn points to a        |
	//	|                                  | null pointer, the server MUST return all of the trust points. If pDataIn is      |
	//	|                                  | an FQDN and there is a trust point or parent of a trust point at the FQDN,       |
	//	|                                  | the server MUST return the trust point at the FQDN (or an empty trust-point      |
	//	|                                  | structure for the FQDN if the FQDN is not a trust point) followed by empty       |
	//	|                                  | trust-point structures for each immediate child of the FQDN, if any. An          |
	//	|                                  | empty trust-point structure is a structure in which eTrustPointState is          |
	//	|                                  | TRUST_POINT_STATE_INITIALIZED and all elements other than pszTrustPointName and  |
	//	|                                  | dwRpcStructureVersion are zero. If pDataIn is an FQDN and there is neither a     |
	//	|                                  | trust point nor the parent of a trust point at the FQDN, the server MUST return  |
	//	|                                  | a nonzero error. Unless an error is returned, on output the value pointed to     |
	//	|                                  | by pdwTypeOut MUST be set to DNSSRV_TYPEID_TRUST_POINT_LIST and ppDataOut MUST   |
	//	|                                  | point to a structure of type DNS_RPC_TRUST_POINT_LIST (section 2.2.6.2.5).       |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumerateTrustAnchors            | Retrieve a list of the trust anchors at a given FQDN. On input, dwTypeIn MUST    |
	//	|                                  | be set to DNSSRV_TYPEID_LPSTR and pDataIn MUST point to a null-terminated UTF-8  |
	//	|                                  | string specifying an FQDN. If the FQDN specified is not a trust point, the       |
	//	|                                  | server MUST return a nonzero error. Unless an error is returned, on output the   |
	//	|                                  | value pointed to by pdwTypeOut MUST be set to DNSSRV_TYPEID_TRUST_ANCHOR_LIST    |
	//	|                                  | and ppDataOut MUST point to a structure of type DNS_RPC_TRUST_ANCHOR_LIST        |
	//	|                                  | (section 2.2.6.2.7).                                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ExportZoneSigningSettings        | Exports all the Dnssec settings of a file-backed primary zone from a server.     |
	//	|                                  | On input, dwTypeIn MUST be set to DNSSRV_TYPEID_DWORD and pDataIn SHOULD be      |
	//	|                                  | 1 to get KSK details in the exported DNS_RPC_ZONE_DNSSEC_SETTINGS structure;     |
	//	|                                  | otherwise, pDataIn SHOULD be zero. Unless an error is returned, on output        |
	//	|                                  | pdwTypeOut is set to DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS and ppDataOut points to |
	//	|                                  | a structure of type PDNS_RPC_ZONE_DNSSEC_SETTINGS.                               |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ImportZoneSigningSettings        | Imports the Dnssec settings to a primary file-backed zone on a server and        |
	//	|                                  | takes appropriate action based on the signing metadata imported. On input,       |
	//	|                                  | dwTypeIn MUST be set to DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS and pDataIn SHOULD   |
	//	|                                  | be a structure of type PDNS_RPC_ZONE_DNSSEC_SETTINGS. If this operation is       |
	//	|                                  | invoked on a server that hosts a primary unsigned copy of a file-backed zone     |
	//	|                                  | and the fIsSigned Property of PDNS_RPC_ZONE_DNSSEC_SETTINGS is 1, then the       |
	//	|                                  | server becomes a nonkey master primary server for that zone. Unless an error     |
	//	|                                  | is returned, on output pdwTypeOut is set to DNSSRV_TYPEID_DWORD and ppDataOut    |
	//	|                                  | points to a structure of type ImportOpResult.                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumZoneScopes                   | Enumerates all the zone scopes in a zone or cache scopes in a cache zone. On     |
	//	|                                  | input, dwTypeIn MUST be set to DNSSRV_TYPEID_NULL and pDataIn SHOULD be NULL.    |
	//	|                                  | The pszZone MUST be the zone name for which zone scopes are to be enumerated or  |
	//	|                                  | it MUST be "..cache". Unless an error is returned, on output pdwTypeOut is set   |
	//	|                                  | to DNSSRV_TYPEID_ZONE_SCOPE_ENUM and ppDataOut points to a structure of type     |
	//	|                                  | PDNS_RPC_ENUM_ZONE_SCOPE_LIST.                                                   |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ZoneStatistics                   | Gets the zone statistics from the server. On input, dwTypeIn MUST be set to      |
	//	|                                  | DNSSRV_TYPEID_DWORD and pDataIn SHOULD be either DNS_RPC_ZONE_STATS_GET, which   |
	//	|                                  | gets the current zone statistics, or DNS_RPC_ZONE_STATS_CLEAR, which clears      |
	//	|                                  | the zone statistics after getting them. The pszZone MUST point to the zone       |
	//	|                                  | information for which statistics are required. Unless an error is returned, on   |
	//	|                                  | output pdwTypeOut SHOULD be set to DNSSRV_TYPEID_ZONE_STATS and ppDataOut SHOULD |
	//	|                                  | point to a structure of type DNS_RPC_ZONE_STATS_V1 (section 2.2.12.2.5).         |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumServerScopes                 | Enumerates all the server scopes in a DNS server. On input, dwTypeIn MUST be set |
	//	|                                  | to DNSSRV_TYPEID_NULL and pDataIn SHOULD be NULL. Unless an error is returned,   |
	//	|                                  | on output, pdwTypeOut SHOULD be set to DNSSRV_TYPEID_SCOPE_ENUM and ppDataOut    |
	//	|                                  | points to a structure of type PDNS_RPC_ENUM_SCOPE_LIST.<276>                     |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumerateClientSubnetRecord      | Enumerates the names all the Client Subnet Records on the DNS server. On         |
	//	|                                  | input, dwTypeIn MUST be set to DNSSRV_TYPEID_NULL and pDataIn SHOULD be          |
	//	|                                  | NULL. Unless an error is returned, on output pdwTypeOut SHOULD be set to         |
	//	|                                  | DNSSRV_TYPEID_UNICODE_STRING_LIST and ppDataOut points to a structure of type    |
	//	|                                  | PDNS_RPC_UNICODE_STRING_LIST.                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| GetClientSubnetRecord            | Gets the details of the Client Subnet Record on the DNS server. On input,        |
	//	|                                  | dwTypeIn MUST be set to DNSSRV_TYPEID_LPWSTR and pDataIn SHOULD be name of the   |
	//	|                                  | Client Subnet Record. Unless an error is returned, on output pdwTypeOut SHOULD   |
	//	|                                  | be set to DNSSRV_TYPEID_CLIENT_SUBNET_RECORD and ppDataOut points to a structure |
	//	|                                  | of type PDNS_RPC_CLIENT_SUBNET_RECORD.                                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumeratePolicy                  | Enumerates the policies configured on the server level or zone level             |
	//	|                                  | for a specified zone on a DNS server. On input, dwTypeIn MUST be set to          |
	//	|                                  | DNSSRV_TYPEID_NULL and pDataIn SHOULD be NULL. Unless an error is returned,      |
	//	|                                  | on output pdwTypeOut SHOULD be set to DNSSRV_TYPEID_POLICY_ENUM and ppDataOut    |
	//	|                                  | points to a structure of type PDNS_RPC_ENUMERATE_POLICY_LIST.                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| GetPolicy                        | Gets the details of a DNS Policy configured on the server level or on the zone   |
	//	|                                  | level for a specified zone on the DNS server. On input, dwTypeIn MUST be set     |
	//	|                                  | to DNSSRV_TYPEID_LPWSTR and pDataIn SHOULD be name of the DNS Policy. Unless an  |
	//	|                                  | error is returned, on output pdwTypeOut SHOULD be set to DNSSRV_TYPEID_POLICY    |
	//	|                                  | and ppDataOut points to a structure of type PDNS_RPC_POLICY.                     |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| GetRRLInfo                       | Gets the details of Response Rate Limiting parameters configured on the server   |
	//	|                                  | level on the DNS server. On input, dwTypeIn MUST be set to DNSSRV_TYPEID_NULL    |
	//	|                                  | and pDataIn SHOULD be NULL. Unless an error is returned, on output pdwTypeOut    |
	//	|                                  | SHOULD be set to DNSSRV_TYPEID_RRL and ppDataOut points to a structure of type   |
	//	|                                  | PDNS_RPC_RRL_PARAMS.                                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnumVirtualizationInstances      | Enumerates the virtualization instance present in DNS server. The                |
	//	|                                  | dwTypeIn parameter MUST be set to DNSSRV_TYPEID_NULL and pDataIn                 |
	//	|                                  | MUST be set to NULL. On successful enumeration pdwTypeOut is set to              |
	//	|                                  | DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE_ENUM, and ppDataOut MUST point to a        |
	//	|                                  | structure of type DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST.                     |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	Operation string `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	// dwTypeIn: A DNS_RPC_TYPEID (section 2.2.1.1.1) value indicating the type of input
	// data pointed to by pDataIn.
	TypeIn uint32 `idl:"name:dwTypeIn" json:"type_in"`
	// pDataIn: Input data of type DNSSRV_RPC_UNION (section 2.2.1.2.6), which contains
	// a data structure of the type indicated by dwTypeIn.
	DataIn *dnsp.Union `idl:"name:pDataIn;switch_is:dwTypeIn" json:"data_in"`
}

ComplexOperationRequest structure represents the R_DnssrvComplexOperation operation request

func (*ComplexOperationRequest) MarshalNDR

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

func (*ComplexOperationRequest) UnmarshalNDR

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

type ComplexOperationResponse

type ComplexOperationResponse struct {
	// pdwTypeOut: A pointer to a DWORD that on success returns a DNS_RPC_TYPEID (section
	// 2.2.1.1.1) value indicating the type of output data pointed to by ppDataOut.
	TypeOut uint32 `idl:"name:pdwTypeOut" json:"type_out"`
	// ppDataOut: A pointer to output data of type DNSSRV_RPC_UNION, which on success contains
	// a data structure of the type indicated by pdwTypeOut.
	DataOut *dnsp.Union `idl:"name:ppDataOut;switch_is:*pdwTypeOut" json:"data_out"`
	// Return: The R_DnssrvComplexOperation return value.
	Return int32 `idl:"name:Return" json:"return"`
}

ComplexOperationResponse structure represents the R_DnssrvComplexOperation operation response

func (*ComplexOperationResponse) MarshalNDR

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

func (*ComplexOperationResponse) UnmarshalNDR

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

type DNSServerClient

type DNSServerClient interface {

	// The R_DnssrvOperation method is used to invoke a set of server functions specified
	// by pszOperation.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. See [MS-ERREF] section 2.2 or
	// section 2.2.1.1.5. All error values MUST be treated the same.
	Operation(context.Context, *OperationRequest, ...dcerpc.CallOption) (*OperationResponse, error)

	// The R_DnssrvQuery method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pszZone and pszOperation parameters.
	// For the purpose of selecting an output structure type the server MUST consider the
	// value of dwClientVersion (section 2.2.1.2.1) to be 0x00000000 when responding to
	// this method.
	//
	// Return Values: A Win32 error code indicating whether the operation completed successfully
	// (0x00000000) or failed (any other value). See [MS-ERREF] section 2.2 or section 2.2.1.1.5.
	Query(context.Context, *QueryRequest, ...dcerpc.CallOption) (*QueryResponse, error)

	// The R_DnssrvComplexOperation method is used to invoke a set of server functions specified
	// by the caller. These functions generally return more complex structures than simple
	// 32-bit integer values, unlike the operations accessible through R_DnssrvOperation
	// (section 3.1.4.1). For the purpose of selecting an output structure type the server
	// MUST consider the value of dwClientVersion (section 2.2.1.2.1) to be 0x00000000 when
	// responding to this method.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. See [MS-ERREF] section 2.2 or
	// section 2.2.1.1.5. All error values MUST be treated the same.
	ComplexOperation(context.Context, *ComplexOperationRequest, ...dcerpc.CallOption) (*ComplexOperationResponse, error)

	// The R_DnssrvEnumRecords method enumerates DNS records on the server.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// non-zero Win32 error code if an error occurred. See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same, except that if the return code
	// is ERROR_MORE_DATA (0x000000EA) then the enumeration contains more results than can
	// fit into a single RPC buffer. In this case the client application can call this method
	// again passing the last retrieved child as the pszStartChild argument to retrieve
	// the next set of results.
	EnumRecords(context.Context, *EnumRecordsRequest, ...dcerpc.CallOption) (*EnumRecordsResponse, error)

	// The R_DnssrvUpdateRecord method is used to add a new DNS record or modify/delete
	// an existing DNS record at the server. This operation SHOULD<277> be supported.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// non-zero Win32 error code if an error occurred. See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same.
	UpdateRecord(context.Context, *UpdateRecordRequest, ...dcerpc.CallOption) (*UpdateRecordResponse, error)

	// The R_DnssrvOperation2 method is used to invoke a set of server functions specified
	// by the caller. The DNS server SHOULD implement R_DnssrvOperation2.
	//
	// All parameters are as specified by the R_DnssrvOperation method (section 3.1.4.1)
	// with the following exceptions:
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. See [MS-ERREF] section 2.2 or
	// section 2.2.1.1.5. All error values MUST be treated the same.
	Operation2(context.Context, *Operation2Request, ...dcerpc.CallOption) (*Operation2Response, error)

	// The R_DnssrvQuery2 method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pszZone and pszOperation parameters.
	// The DNS server SHOULD implement R_ DnssrvQuery2 <280>.
	//
	// All parameters are as specified by the R_DnssrvQuery method (section 3.1.4.2) with
	// the following exceptions:
	//
	// Return Values: Return values behaviors and interpretations are same as they are for
	// R_DnssrvQuery method (section 3.1.4.2).
	Query2(context.Context, *Query2Request, ...dcerpc.CallOption) (*Query2Response, error)

	// The R_DnssrvComplexOperation2 method is used to invoke a set of server functions
	// specified by the caller. These functions generally return more complex structures
	// than simple 32-bit integer values, unlike the operations accessible through R_DnssrvOperation
	// (section 3.1.4.1). The DNS server SHOULD implement R_DnssrvComplexOperation2.
	//
	// All parameters are as specified by the R_DnssrvComplexOperation method (section 3.1.4.3)
	// with the following exceptions:
	//
	// Return Values: Return values and interpretations are the same as for R_DnssrvComplexOperation
	// (section 3.1.4.3).
	ComplexOperation2(context.Context, *ComplexOperation2Request, ...dcerpc.CallOption) (*ComplexOperation2Response, error)

	// The R_DnssrvEnumRecords2 method enumerates DNS records on the server. The DNS server
	// SHOULD implement R_DnssrvEnumRecords2 <281>.
	//
	// All parameters are as specified by the R_DnssrvEnumRecords method (section 3.1.4.4)
	// with the following exceptions:
	//
	// Return Values: Return values behaviors and interpretations are same as they are for
	// R_DnssrvEnumRecords method (section 3.1.4.4).
	EnumRecords2(context.Context, *EnumRecords2Request, ...dcerpc.CallOption) (*EnumRecords2Response, error)

	// The R_DnssrvUpdateRecord2 method is used to add a new DNS record or modify/delete
	// an existing DNS record at the server. The DNS server SHOULD implement R_ DnssrvEnumRecords2.<282>
	//
	// All parameters are as specified by the R_DnssrvUpdateRecord method (section 3.1.4.5)
	// with the following exceptions:
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code if an error occurred. See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same. All record types SHOULD be
	// supported, but if an operation is attempted on an unsupported record type, the method
	// MUST return a nonzero Win32 error code.
	UpdateRecord2(context.Context, *UpdateRecord2Request, ...dcerpc.CallOption) (*UpdateRecord2Response, error)

	// The R_DnssrvUpdateRecord3 method is used to add a new DNS record or modify or delete
	// an existing DNS record in a zone or in a zone scope, or in a cache zone or cache
	// scope, if specified. The DNS server SHOULD<283> implement R_DnssrvUpdateRecord3.
	//
	// All parameters are as specified by the methods R_DnssrvUpdateRecord (section 3.1.4.5)
	// and R_DnssrvUpdateRecord2 (section 3.1.4.10) with the following exceptions:
	UpdateRecord3(context.Context, *UpdateRecord3Request, ...dcerpc.CallOption) (*UpdateRecord3Response, error)

	// The R_DnssrvEnumRecords3 method enumerates DNS records on a zone or a zone scope,
	// or cache zone or a cache scope, if specified. The DNS server SHOULD<284> implement
	// R_DnssrvEnumRecords3.
	//
	// All parameters are as specified by the R_DnssrvEnumRecords method (section 3.1.4.4)
	// and implement the R_DnssrvEnumRecords2 method (section 3.1.4.9) with the following
	// exceptions:
	EnumRecords3(context.Context, *EnumRecords3Request, ...dcerpc.CallOption) (*EnumRecords3Response, error)

	// The R_DnssrvOperation3 method is used to invoke a set of server functions specified
	// by the caller on the zone scope or cache scope if specified. The DNS server SHOULD<285>
	// implement R_DnssrvOperation3.
	//
	// All parameters are as specified by the methods R_DnssrvOperation (section 3.1.4.1)
	// and R_DnssrvOperation2 (section 3.1.4.6) with the following exceptions.
	Operation3(context.Context, *Operation3Request, ...dcerpc.CallOption) (*Operation3Response, error)

	// The R_DnssrvQuery3 method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pszZone, pwszZoneScopeName, and
	// pszOperation parameters. The DNS server SHOULD<287> implement R_DnssrvQuery3.
	//
	// All the parameters are as specified by the R_DnssrvQuery2 method with the following
	// exceptions:
	Query3(context.Context, *Query3Request, ...dcerpc.CallOption) (*Query3Response, error)

	// The R_DnssrvComplexOperation3 method is used to invoke a set of server functions
	// specified by the caller. These functions generally return more complex structures
	// than simple 32-bit integer values, unlike the operations accessible through R_DnssrvOperation
	// (section 3.1.4.1). The DNS server SHOULD<289> implement R_DnssrvComplexOperation2
	// (section 3.1.4.8).
	//
	// All parameters are as specified by the R_DnssrvComplexOperation method (section 3.1.4.3)
	// with the following exceptions:
	ComplexOperation3(context.Context, *ComplexOperation3Request, ...dcerpc.CallOption) (*ComplexOperation3Response, error)

	// The R_DnssrvOperation4 method is used to invoke a set of server functions specified
	// by the caller on the virtualization instance, if specified. The DNS server SHOULD<290>
	// implement R_DnssrvOperation4.
	//
	// All parameters are as specified by the R_DnssrvOperation3 (section 3.1.4.13) method
	// with the following exceptions.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. If unable to perform the operation,
	// returns error EPT_S_CANT_PERFORM_OP (0x000006D8). See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same.
	Operation4(context.Context, *Operation4Request, ...dcerpc.CallOption) (*Operation4Response, error)

	// The R_DnssrvQuery4 method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pwszVirtualizationInstanceID, and
	// pszOperation parameters. The DNS server SHOULD<291> implement R_DnssrvQuery4.
	//
	// All the parameters are as specified by the R_DnssrvQuery2 method (section 3.1.4.7)
	// method with the following exceptions:
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. If unable to perform the operation,
	// returns error EPT_S_CANT_PERFORM_OP (0x000006D8). See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same.
	Query4(context.Context, *Query4Request, ...dcerpc.CallOption) (*Query4Response, error)

	// The R_DnssrvUpdateRecord4 method is used to add a new DNS record or to modify or
	// delete an existing DNS record in a zone or in a zone scope under a virtualization
	// instance, if specified. The DNS server SHOULD<292> implement R_DnssrvUpdateRecord4.
	//
	// All parameters are as specified by the R_DnssrvUpdateRecord3 (section 3.1.4.11) method
	// with the following exceptions:
	UpdateRecord4(context.Context, *UpdateRecord4Request, ...dcerpc.CallOption) (*UpdateRecord4Response, error)

	// The R_DnssrvEnumRecords4 method enumerates DNS records on a zone or a zone scope
	// in a virtualization instance, if specified. The DNS server SHOULD<293> implement
	// R_DnssrvEnumRecords4.
	//
	// All parameters are as specified by the R_DnssrvEnumRecords3 method (section 3.1.4.12)
	// with the following exceptions:
	EnumRecords4(context.Context, *EnumRecords4Request, ...dcerpc.CallOption) (*EnumRecords4Response, error)

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

DnsServer interface.

func NewDNSServerClient

func NewDNSServerClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (DNSServerClient, error)

type DNSServerServer

type DNSServerServer interface {

	// The R_DnssrvOperation method is used to invoke a set of server functions specified
	// by pszOperation.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. See [MS-ERREF] section 2.2 or
	// section 2.2.1.1.5. All error values MUST be treated the same.
	Operation(context.Context, *OperationRequest) (*OperationResponse, error)

	// The R_DnssrvQuery method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pszZone and pszOperation parameters.
	// For the purpose of selecting an output structure type the server MUST consider the
	// value of dwClientVersion (section 2.2.1.2.1) to be 0x00000000 when responding to
	// this method.
	//
	// Return Values: A Win32 error code indicating whether the operation completed successfully
	// (0x00000000) or failed (any other value). See [MS-ERREF] section 2.2 or section 2.2.1.1.5.
	Query(context.Context, *QueryRequest) (*QueryResponse, error)

	// The R_DnssrvComplexOperation method is used to invoke a set of server functions specified
	// by the caller. These functions generally return more complex structures than simple
	// 32-bit integer values, unlike the operations accessible through R_DnssrvOperation
	// (section 3.1.4.1). For the purpose of selecting an output structure type the server
	// MUST consider the value of dwClientVersion (section 2.2.1.2.1) to be 0x00000000 when
	// responding to this method.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. See [MS-ERREF] section 2.2 or
	// section 2.2.1.1.5. All error values MUST be treated the same.
	ComplexOperation(context.Context, *ComplexOperationRequest) (*ComplexOperationResponse, error)

	// The R_DnssrvEnumRecords method enumerates DNS records on the server.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// non-zero Win32 error code if an error occurred. See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same, except that if the return code
	// is ERROR_MORE_DATA (0x000000EA) then the enumeration contains more results than can
	// fit into a single RPC buffer. In this case the client application can call this method
	// again passing the last retrieved child as the pszStartChild argument to retrieve
	// the next set of results.
	EnumRecords(context.Context, *EnumRecordsRequest) (*EnumRecordsResponse, error)

	// The R_DnssrvUpdateRecord method is used to add a new DNS record or modify/delete
	// an existing DNS record at the server. This operation SHOULD<277> be supported.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// non-zero Win32 error code if an error occurred. See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same.
	UpdateRecord(context.Context, *UpdateRecordRequest) (*UpdateRecordResponse, error)

	// The R_DnssrvOperation2 method is used to invoke a set of server functions specified
	// by the caller. The DNS server SHOULD implement R_DnssrvOperation2.
	//
	// All parameters are as specified by the R_DnssrvOperation method (section 3.1.4.1)
	// with the following exceptions:
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. See [MS-ERREF] section 2.2 or
	// section 2.2.1.1.5. All error values MUST be treated the same.
	Operation2(context.Context, *Operation2Request) (*Operation2Response, error)

	// The R_DnssrvQuery2 method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pszZone and pszOperation parameters.
	// The DNS server SHOULD implement R_ DnssrvQuery2 <280>.
	//
	// All parameters are as specified by the R_DnssrvQuery method (section 3.1.4.2) with
	// the following exceptions:
	//
	// Return Values: Return values behaviors and interpretations are same as they are for
	// R_DnssrvQuery method (section 3.1.4.2).
	Query2(context.Context, *Query2Request) (*Query2Response, error)

	// The R_DnssrvComplexOperation2 method is used to invoke a set of server functions
	// specified by the caller. These functions generally return more complex structures
	// than simple 32-bit integer values, unlike the operations accessible through R_DnssrvOperation
	// (section 3.1.4.1). The DNS server SHOULD implement R_DnssrvComplexOperation2.
	//
	// All parameters are as specified by the R_DnssrvComplexOperation method (section 3.1.4.3)
	// with the following exceptions:
	//
	// Return Values: Return values and interpretations are the same as for R_DnssrvComplexOperation
	// (section 3.1.4.3).
	ComplexOperation2(context.Context, *ComplexOperation2Request) (*ComplexOperation2Response, error)

	// The R_DnssrvEnumRecords2 method enumerates DNS records on the server. The DNS server
	// SHOULD implement R_DnssrvEnumRecords2 <281>.
	//
	// All parameters are as specified by the R_DnssrvEnumRecords method (section 3.1.4.4)
	// with the following exceptions:
	//
	// Return Values: Return values behaviors and interpretations are same as they are for
	// R_DnssrvEnumRecords method (section 3.1.4.4).
	EnumRecords2(context.Context, *EnumRecords2Request) (*EnumRecords2Response, error)

	// The R_DnssrvUpdateRecord2 method is used to add a new DNS record or modify/delete
	// an existing DNS record at the server. The DNS server SHOULD implement R_ DnssrvEnumRecords2.<282>
	//
	// All parameters are as specified by the R_DnssrvUpdateRecord method (section 3.1.4.5)
	// with the following exceptions:
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code if an error occurred. See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same. All record types SHOULD be
	// supported, but if an operation is attempted on an unsupported record type, the method
	// MUST return a nonzero Win32 error code.
	UpdateRecord2(context.Context, *UpdateRecord2Request) (*UpdateRecord2Response, error)

	// The R_DnssrvUpdateRecord3 method is used to add a new DNS record or modify or delete
	// an existing DNS record in a zone or in a zone scope, or in a cache zone or cache
	// scope, if specified. The DNS server SHOULD<283> implement R_DnssrvUpdateRecord3.
	//
	// All parameters are as specified by the methods R_DnssrvUpdateRecord (section 3.1.4.5)
	// and R_DnssrvUpdateRecord2 (section 3.1.4.10) with the following exceptions:
	UpdateRecord3(context.Context, *UpdateRecord3Request) (*UpdateRecord3Response, error)

	// The R_DnssrvEnumRecords3 method enumerates DNS records on a zone or a zone scope,
	// or cache zone or a cache scope, if specified. The DNS server SHOULD<284> implement
	// R_DnssrvEnumRecords3.
	//
	// All parameters are as specified by the R_DnssrvEnumRecords method (section 3.1.4.4)
	// and implement the R_DnssrvEnumRecords2 method (section 3.1.4.9) with the following
	// exceptions:
	EnumRecords3(context.Context, *EnumRecords3Request) (*EnumRecords3Response, error)

	// The R_DnssrvOperation3 method is used to invoke a set of server functions specified
	// by the caller on the zone scope or cache scope if specified. The DNS server SHOULD<285>
	// implement R_DnssrvOperation3.
	//
	// All parameters are as specified by the methods R_DnssrvOperation (section 3.1.4.1)
	// and R_DnssrvOperation2 (section 3.1.4.6) with the following exceptions.
	Operation3(context.Context, *Operation3Request) (*Operation3Response, error)

	// The R_DnssrvQuery3 method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pszZone, pwszZoneScopeName, and
	// pszOperation parameters. The DNS server SHOULD<287> implement R_DnssrvQuery3.
	//
	// All the parameters are as specified by the R_DnssrvQuery2 method with the following
	// exceptions:
	Query3(context.Context, *Query3Request) (*Query3Response, error)

	// The R_DnssrvComplexOperation3 method is used to invoke a set of server functions
	// specified by the caller. These functions generally return more complex structures
	// than simple 32-bit integer values, unlike the operations accessible through R_DnssrvOperation
	// (section 3.1.4.1). The DNS server SHOULD<289> implement R_DnssrvComplexOperation2
	// (section 3.1.4.8).
	//
	// All parameters are as specified by the R_DnssrvComplexOperation method (section 3.1.4.3)
	// with the following exceptions:
	ComplexOperation3(context.Context, *ComplexOperation3Request) (*ComplexOperation3Response, error)

	// The R_DnssrvOperation4 method is used to invoke a set of server functions specified
	// by the caller on the virtualization instance, if specified. The DNS server SHOULD<290>
	// implement R_DnssrvOperation4.
	//
	// All parameters are as specified by the R_DnssrvOperation3 (section 3.1.4.13) method
	// with the following exceptions.
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. If unable to perform the operation,
	// returns error EPT_S_CANT_PERFORM_OP (0x000006D8). See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same.
	Operation4(context.Context, *Operation4Request) (*Operation4Response, error)

	// The R_DnssrvQuery4 method queries the DNS server for information. The type of information
	// queried for is specified by the client using the pwszVirtualizationInstanceID, and
	// pszOperation parameters. The DNS server SHOULD<291> implement R_DnssrvQuery4.
	//
	// All the parameters are as specified by the R_DnssrvQuery2 method (section 3.1.4.7)
	// method with the following exceptions:
	//
	// Return Values: The method MUST return ERROR_SUCCESS (0x00000000) on success or a
	// nonzero Win32 error code value if an error occurred. If unable to perform the operation,
	// returns error EPT_S_CANT_PERFORM_OP (0x000006D8). See [MS-ERREF] section 2.2 or section
	// 2.2.1.1.5. All error values MUST be treated the same.
	Query4(context.Context, *Query4Request) (*Query4Response, error)

	// The R_DnssrvUpdateRecord4 method is used to add a new DNS record or to modify or
	// delete an existing DNS record in a zone or in a zone scope under a virtualization
	// instance, if specified. The DNS server SHOULD<292> implement R_DnssrvUpdateRecord4.
	//
	// All parameters are as specified by the R_DnssrvUpdateRecord3 (section 3.1.4.11) method
	// with the following exceptions:
	UpdateRecord4(context.Context, *UpdateRecord4Request) (*UpdateRecord4Response, error)

	// The R_DnssrvEnumRecords4 method enumerates DNS records on a zone or a zone scope
	// in a virtualization instance, if specified. The DNS server SHOULD<293> implement
	// R_DnssrvEnumRecords4.
	//
	// All parameters are as specified by the R_DnssrvEnumRecords3 method (section 3.1.4.12)
	// with the following exceptions:
	EnumRecords4(context.Context, *EnumRecords4Request) (*EnumRecords4Response, error)
}

DnsServer server interface.

type EnumRecords2Request

type EnumRecords2Request struct {
	// dwClientVersion: The client version in DNS_RPC_CURRENT_CLIENT_VER (section 2.2.1.2.1)
	// format.
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	// dwSettingFlags: Reserved for future use only. This field MUST be set to zero by clients
	// and ignored by servers.
	SettingFlags uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName   string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone         string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	NodeName     string `idl:"name:pszNodeName;string;pointer:unique" json:"node_name"`
	StartChild   string `idl:"name:pszStartChild;string;pointer:unique" json:"start_child"`
	RecordType   uint16 `idl:"name:wRecordType" json:"record_type"`
	SelectFlag   uint32 `idl:"name:fSelectFlag" json:"select_flag"`
	FilterStart  string `idl:"name:pszFilterStart;string;pointer:unique" json:"filter_start"`
	FilterStop   string `idl:"name:pszFilterStop;string;pointer:unique" json:"filter_stop"`
}

EnumRecords2Request structure represents the R_DnssrvEnumRecords2 operation request

func (*EnumRecords2Request) MarshalNDR

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

func (*EnumRecords2Request) UnmarshalNDR

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

type EnumRecords2Response

type EnumRecords2Response struct {
	BufferLength uint32 `idl:"name:pdwBufferLength" json:"buffer_length"`
	Buffer       []byte `idl:"name:ppBuffer;size_is:(, pdwBufferLength)" json:"buffer"`
	// Return: The R_DnssrvEnumRecords2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EnumRecords2Response structure represents the R_DnssrvEnumRecords2 operation response

func (*EnumRecords2Response) MarshalNDR

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

func (*EnumRecords2Response) UnmarshalNDR

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

type EnumRecords3Request

type EnumRecords3Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone          string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pwszZoneScope: A pointer to a null-terminated character string that contains the
	// name of the zone scope inside the zone or cache scope inside the cache zone that
	// is to be queried. For operations specific to a particular zone scope or cache scope,
	// this field MUST contain the name of the zone scope or cache scope. If the value is
	// NULL, the API gives the same behavior as the R_DnssrvEnumRecords2 method.
	ZoneScope   string `idl:"name:pwszZoneScope;string;pointer:unique" json:"zone_scope"`
	NodeName    string `idl:"name:pszNodeName;string;pointer:unique" json:"node_name"`
	StartChild  string `idl:"name:pszStartChild;string;pointer:unique" json:"start_child"`
	RecordType  uint16 `idl:"name:wRecordType" json:"record_type"`
	SelectFlag  uint32 `idl:"name:fSelectFlag" json:"select_flag"`
	FilterStart string `idl:"name:pszFilterStart;string;pointer:unique" json:"filter_start"`
	FilterStop  string `idl:"name:pszFilterStop;string;pointer:unique" json:"filter_stop"`
}

EnumRecords3Request structure represents the R_DnssrvEnumRecords3 operation request

func (*EnumRecords3Request) MarshalNDR

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

func (*EnumRecords3Request) UnmarshalNDR

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

type EnumRecords3Response

type EnumRecords3Response struct {
	BufferLength uint32 `idl:"name:pdwBufferLength" json:"buffer_length"`
	Buffer       []byte `idl:"name:ppBuffer;size_is:(, pdwBufferLength)" json:"buffer"`
	// Return: The R_DnssrvEnumRecords3 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EnumRecords3Response structure represents the R_DnssrvEnumRecords3 operation response

func (*EnumRecords3Response) MarshalNDR

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

func (*EnumRecords3Response) UnmarshalNDR

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

type EnumRecords4Request

type EnumRecords4Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pwszVirtualizationInstanceID: A pointer to a null-terminated character string that
	// contains the name of the virtualization instance under which zone and zone scope
	// records are to be enumerated. For operations specific to a particular zone or zone
	// scope, details must be given in pszZone and pwszZoneScope as specified in section
	// 3.1.4.12. If the value pwszVirtualizationInstanceID is NULL, the API gives the same
	// behavior as R_DnssrvEnumRecord3.
	VirtualizationInstanceID string `idl:"name:pwszVirtualizationInstanceID;string;pointer:unique" json:"virtualization_instance_id"`
	Zone                     string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	ZoneScope                string `idl:"name:pwszZoneScope;string;pointer:unique" json:"zone_scope"`
	NodeName                 string `idl:"name:pszNodeName;string;pointer:unique" json:"node_name"`
	StartChild               string `idl:"name:pszStartChild;string;pointer:unique" json:"start_child"`
	RecordType               uint16 `idl:"name:wRecordType" json:"record_type"`
	SelectFlag               uint32 `idl:"name:fSelectFlag" json:"select_flag"`
	FilterStart              string `idl:"name:pszFilterStart;string;pointer:unique" json:"filter_start"`
	FilterStop               string `idl:"name:pszFilterStop;string;pointer:unique" json:"filter_stop"`
}

EnumRecords4Request structure represents the R_DnssrvEnumRecords4 operation request

func (*EnumRecords4Request) MarshalNDR

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

func (*EnumRecords4Request) UnmarshalNDR

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

type EnumRecords4Response

type EnumRecords4Response struct {
	BufferLength uint32 `idl:"name:pdwBufferLength" json:"buffer_length"`
	Buffer       []byte `idl:"name:ppBuffer;size_is:(, pdwBufferLength)" json:"buffer"`
	// Return: The R_DnssrvEnumRecords4 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EnumRecords4Response structure represents the R_DnssrvEnumRecords4 operation response

func (*EnumRecords4Response) MarshalNDR

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

func (*EnumRecords4Response) UnmarshalNDR

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

type EnumRecordsRequest

type EnumRecordsRequest struct {
	// pwszServerName: The client SHOULD pass a pointer to the FQDN of the target server
	// as a null-terminated UTF-16LE character string. The server MUST ignore this value.
	ServerName string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pszZone: A pointer to a null-terminated character string that contains the name of
	// the zone to be queried. For operations specific to a particular zone, this field
	// MUST contain the name of the zone in UTF-8 format. For all other operations, this
	// field MUST be NULL.
	Zone string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pszNodeName: A pointer to a null-terminated character string that contains the node
	// name at which to modify a record. A string that is not dot-terminated indicates a
	// name relative to the zone root. A value of "@" indicates the zone root itself. A
	// dot-terminated string indicates the name is an FQDN.
	NodeName string `idl:"name:pszNodeName;string;pointer:unique" json:"node_name"`
	// pszStartChild: A pointer to a null-terminated character string that contains the
	// name of the child node at which to start enumeration. A NULL value indicates to start
	// a new record enumeration. The client application can pass the last retrieved child
	// node of pszNodeName to continue a previous enumeration.
	StartChild string `idl:"name:pszStartChild;string;pointer:unique" json:"start_child"`
	// wRecordType: An integer value that indicates the type of record to enumerate. Any
	// value can be used, as specified in DNS_RECORD_TYPE (section 2.2.2.1.1). The query-only
	// value DNS_TYPE_ALL indicates all types of records.
	RecordType uint16 `idl:"name:wRecordType" json:"record_type"`
	// fSelectFlag: An integer value that specifies what records are included in the response.
	// Any combination of the values below MUST be supported. Values not listed below MUST
	// be ignored.
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                         |                                                                                  |
	//	|                  VALUE                  |                                     MEANING                                      |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_AUTHORITY_DATA 0x00000001  | Include records from authoritative zones.                                        |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_CACHE_DATA 0x00000002      | Include records from the DNS server's cache.                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_GLUE_DATA 0x00000004       | Include glue records.                                                            |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_ROOT_HINT_DATA 0x00000008  | Include root hint records.                                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_ADDITIONAL_DATA 0x00000010 | Include additional records.                                                      |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_NO_CHILDREN 0x00010000     | Do not include any records from child nodes.                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_RPC_VIEW_ONLY_CHILDREN 0x00020000   | Include only children nodes of the specified node in the results. For example:   |
	//	|                                         | if a zone, "example.com", has child nodes, "a.example.com" and "b.example.com",  |
	//	|                                         | calling R_DnssrcEnumRecords(…,"example.com", "example.com", NULL, DNS_TYPE_ALL,  |
	//	|                                         | DNS_RPC_VIEW_ONLY_CHILDREN, …, …, …, …) will return DNS_RPC_NODES for "a" and    |
	//	|                                         | "b".                                                                             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	SelectFlag uint32 `idl:"name:fSelectFlag" json:"select_flag"`
	// pszFilterStart: Reserved for future use only. This MUST be set to NULL by clients
	// and ignored by servers.
	FilterStart string `idl:"name:pszFilterStart;string;pointer:unique" json:"filter_start"`
	// pszFilterStop: Reserved for future use only. This MUST be set to NULL by clients
	// and ignored by servers.
	FilterStop string `idl:"name:pszFilterStop;string;pointer:unique" json:"filter_stop"`
}

EnumRecordsRequest structure represents the R_DnssrvEnumRecords operation request

func (*EnumRecordsRequest) MarshalNDR

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

func (*EnumRecordsRequest) UnmarshalNDR

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

type EnumRecordsResponse

type EnumRecordsResponse struct {
	// pdwBufferLength: A pointer to an integer that on success contains the length of the
	// buffer pointed to by ppBuffer.
	BufferLength uint32 `idl:"name:pdwBufferLength" json:"buffer_length"`
	// ppBuffer: A pointer to a pointer that on success points to a buffer containing the
	// enumerated records. The buffer is a series of structures beginning with a DNS_RPC_NODE
	// structure (section 2.2.2.2.3). The records for the node will be represented by a
	// series of DNS_RPC_RECORD (section 2.2.2.2.5) structures. The number of DNS_RPC_RECORD
	// structures following a DNS_RPC_NODE structure is given by the wRecordCount member
	// of DNS_RPC_NODE.
	Buffer []byte `idl:"name:ppBuffer;size_is:(, pdwBufferLength)" json:"buffer"`
	// Return: The R_DnssrvEnumRecords return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EnumRecordsResponse structure represents the R_DnssrvEnumRecords operation response

func (*EnumRecordsResponse) MarshalNDR

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

func (*EnumRecordsResponse) UnmarshalNDR

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

type Operation2Request

type Operation2Request struct {
	// dwClientVersion: The client version in DNS_RPC_CURRENT_CLIENT_VER (section 2.2.1.2.1)
	// format.
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	// dwSettingFlags: Reserved for future use. MUST be set to zero by clients and MUST
	// be ignored by servers.
	SettingFlags uint32      `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName   string      `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone         string      `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	Context      uint32      `idl:"name:dwContext" json:"context"`
	Operation    string      `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	TypeID       uint32      `idl:"name:dwTypeId" json:"type_id"`
	Data         *dnsp.Union `idl:"name:pData;switch_is:dwTypeId" json:"data"`
}

Operation2Request structure represents the R_DnssrvOperation2 operation request

func (*Operation2Request) MarshalNDR

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

func (*Operation2Request) UnmarshalNDR

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

type Operation2Response

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

Operation2Response structure represents the R_DnssrvOperation2 operation response

func (*Operation2Response) MarshalNDR

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

func (*Operation2Response) UnmarshalNDR

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

type Operation3Request

type Operation3Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone          string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pwszZoneScopeName: A pointer to a null-terminated character string that contains
	// the name of the zone scope in the zone or cache scope in a cache zone, or a server
	// scope configured on the DNS server in which the operation is to be performed. For
	// operations specific to a particular zone scope, this field MUST contain the name
	// of the zone scope. If the value is NULL then the API gives the same behavior as R_DnssrvOperation2
	// (section 3.1.4.6). If the value is not NULL then pszZone MUST point to a null-terminated
	// character string that contains the name of the zone in UTF-8 format. In this case
	// the type of the zone pointed to by pszZone MUST be a primary zone. It MUST also be
	// a non-autocreated zone, a non-reverse lookup zone, and a non-AD integrated zone.
	// For operations specific to server scopes, this field MUST contain the name of the
	// server scope and the pszZone field MUST be NULL. For operations specific to cache
	// scopes, this field MUST contain the name of the cache scope, and the pszZone field
	// MUST be "..cache."
	//
	// If pszZone is not NULL and pwszZoneScopeName is not NULL, pszOperation MUST be set
	// to one of the following values:
	//
	//	+-------------------+----------------------------------------------------------------------------------+
	//	|                   |                                                                                  |
	//	|       VALUE       |                                     MEANING                                      |
	//	|                   |                                                                                  |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| "DeleteNode"      | Deletes a node from the given zone scope of a specified zone or a cache          |
	//	|                   | scope in a specified cache zone. On input, dwTypeId MUST be set to               |
	//	|                   | DNSSRV_TYPEID_NAME_AND_PARAM (section 2.2.2.1.1), and pData MUST point to a      |
	//	|                   | structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). That structure     |
	//	|                   | contains the name of the node to be deleted as pointed by pszNodeName, and a     |
	//	|                   | Boolean flag in dwParam that indicates if the node's subtree is to be deleted.   |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| "DeleteRecordSet" | Deletes all the DNS records of a particular type at a particular node            |
	//	|                   | that is present in the given zone scope of a specified zone or a cache           |
	//	|                   | scope in a specified cache zone. On input, dwTypeId MUST be set to               |
	//	|                   | DNSSRV_TYPEID_NAME_AND_PARAM (section 2.2.2.1.1). pData MUST point to a          |
	//	|                   | structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). That structure     |
	//	|                   | contains the name of the node to be deleted and the DNS record type in the       |
	//	|                   | dwParam member. The type MUST be of value of either DNS_RECORD_TYPE (section     |
	//	|                   | 2.2.2.1.1) or 0x00FF, which specifies all types.                                 |
	//	+-------------------+----------------------------------------------------------------------------------+
	//
	// If pszZone is NULL and pwszZoneScopeName is not NULL, pszOperation MUST be set to
	// one of the following values.
	//
	//	+----------------------+----------------------------------------------------------------------------------+
	//	|                      |                                                                                  |
	//	|        VALUE         |                                     MEANING                                      |
	//	|                      |                                                                                  |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| "Forwarders"         | On input, dwTypeId SHOULD<286> be set to DNSSRV_TYPEID_FORWARDERS, and pData     |
	//	|                      | MUST point to a structure of one of the types specified in DNS_RPC_FORWARDERS    |
	//	|                      | (section 2.2.5.2.10), which contains information about new IP addresses to which |
	//	|                      | the DNS server SHOULD forward queries. These IP addresses are part of the server |
	//	|                      | scope as specified in the pwszZoneScopeName.                                     |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| "ResetDwordProperty" | Update the value of a (name, value) pair in the DNS Server Configuration. On     |
	//	|                      | input, dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST      |
	//	|                      | point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5) that     |
	//	|                      | specifies the name of a property listed in section 3.1.1.3.1 and a new value for |
	//	|                      | that property.                                                                   |
	//	+----------------------+----------------------------------------------------------------------------------+
	ZoneScopeName string      `idl:"name:pwszZoneScopeName;string;pointer:unique" json:"zone_scope_name"`
	Context       uint32      `idl:"name:dwContext" json:"context"`
	Operation     string      `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	TypeID        uint32      `idl:"name:dwTypeId" json:"type_id"`
	Data          *dnsp.Union `idl:"name:pData;switch_is:dwTypeId" json:"data"`
}

Operation3Request structure represents the R_DnssrvOperation3 operation request

func (*Operation3Request) MarshalNDR

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

func (*Operation3Request) UnmarshalNDR

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

type Operation3Response

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

Operation3Response structure represents the R_DnssrvOperation3 operation response

func (*Operation3Response) MarshalNDR

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

func (*Operation3Response) UnmarshalNDR

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

type Operation4Request

type Operation4Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pwszVirtualizationInstanceID: A pointer to a null-terminated Unicode string that
	// contains the name of the virtualization instance configured on the DNS server in
	// which the operation is to be performed. For operations specific to a particular virtualization
	// instance, this field MUST contain the name of the virtualization instance. If the
	// value is NULL then the API gives the same behavior as R_DnssrvOperation3. If the
	// value is not NULL then pszZone MUST point to a null-terminated character string that
	// contains the name of the zone in UTF-8 format. In this case the type of the zone
	// pointed to by pszZone MUST be a primary zone. It MUST also be a non-autocreated zone,
	// and a non-AD integrated zone. Apart from the CreateVirtualizationInstance, DeleteVirtualizationInstance,
	// and UpdateVirtualizationInstance operations (section 3.1.4.1), R_DnssrvComplexOperation4
	// changes the behavior of the following operations: WriteDirtyZones, ZoneCreate, DeleteNode,
	// DeleteRecordSet, WriteBackFile, PauseZone, ResumeZone, DeleteZone, ReloadZone, RefreshZone,
	// CreateZoneScope, and DeleteZoneScope (section 3.1.4.1). If these operations are called
	// with R_DnssrvOperation4 and a non-NULL pwszVirtualizationInstanceID, they are performed
	// under the given virtualization instance.
	VirtualizationInstanceID string      `idl:"name:pwszVirtualizationInstanceID;string;pointer:unique" json:"virtualization_instance_id"`
	Zone                     string      `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	ZoneScopeName            string      `idl:"name:pwszZoneScopeName;string;pointer:unique" json:"zone_scope_name"`
	Context                  uint32      `idl:"name:dwContext" json:"context"`
	Operation                string      `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	TypeID                   uint32      `idl:"name:dwTypeId" json:"type_id"`
	Data                     *dnsp.Union `idl:"name:pData;switch_is:dwTypeId" json:"data"`
}

Operation4Request structure represents the R_DnssrvOperation4 operation request

func (*Operation4Request) MarshalNDR

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

func (*Operation4Request) UnmarshalNDR

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

type Operation4Response

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

Operation4Response structure represents the R_DnssrvOperation4 operation response

func (*Operation4Response) MarshalNDR

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

func (*Operation4Response) UnmarshalNDR

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

type OperationRequest

type OperationRequest struct {
	// pwszServerName: The client SHOULD pass a pointer to the FQDN of the target server
	// as a null-terminated UTF-16LE character string. The server MUST ignore this value.
	ServerName string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pszZone: A pointer to a null-terminated character string that contains the name of
	// the zone to be queried. For operations specific to a particular zone, this string
	// MUST contain the name of the zone in UTF-8 format or a multizone operation string
	// (given in the table that follows) that indicates that the operation is performed
	// on multiple zones, but only if dwContext is zero. If dwContext is not zero, then
	// the value of pszZone MUST be ignored. For all other operations this value MUST be
	// set to NULL. When pszZone is NULL, the valid operations are in the first table under
	// the pszOperation section that follows, or are a property name listed in section 3.1.1.1.2,
	// 3.1.1.1.3, or 3.1.1.1.4. If this value is not NULL, then this value will be used
	// by certain operations as specified in the second table for pszOperation that follows.
	//
	// The following table shows what values are used to request that the operation be performed
	// on multiple zones, using ZONE_REQUEST_FILTERS values (section 2.2.5.1.4).
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllZones"                 | ZONE_REQUEST_PRIMARY | ZONE_REQUEST_SECONDARY | ZONE_REQUEST_AUTO |              |
	//	|                              | ZONE_REQUEST_FORWARD | ZONE_REQUEST_REVERSE | ZONE_REQUEST_FORWARDER             |
	//	|                              | | ZONE_REQUEST_STUB | ZONE_REQUEST_DS | ZONE_REQUEST_NON_DS |                    |
	//	|                              | ZONE_REQUEST_DOMAIN_DP | ZONE_REQUEST_FOREST_DP | ZONE_REQUEST_CUSTOM_DP |       |
	//	|                              | ZONE_REQUEST_LEGACY_DP                                                           |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllZonesAndCache"         | ZONE_REQUEST_PRIMARY | ZONE_REQUEST_SECONDARY | ZONE_REQUEST_CACHE               |
	//	|                              | | ZONE_REQUEST_AUTO | ZONE_REQUEST_FORWARD | ZONE_REQUEST_REVERSE                |
	//	|                              | | ZONE_REQUEST_FORWARDER | ZONE_REQUEST_STUB | ZONE_REQUEST_DS |                 |
	//	|                              | ZONE_REQUEST_NON_DS | ZONE_REQUEST_DOMAIN_DP | ZONE_REQUEST_FOREST_DP |          |
	//	|                              | ZONE_REQUEST_CUSTOM_DP | ZONE_REQUEST_LEGACY_DP                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllPrimaryZones"          | ZONE_REQUEST_PRIMARY                                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllSecondaryZones"        | ZONE_REQUEST_SECONDARY                                                           |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllForwardZones"          | ZONE_REQUEST_FORWARD                                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllReverseZones"          | ZONE_REQUEST_REVERSE                                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllDsZones"               | ZONE_REQUEST_DS                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllNonDsZones"            | ZONE_REQUEST_NON_DS                                                              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllPrimaryReverseZones"   | ZONE_REQUEST_REVERSE | ZONE_REQUEST_PRIMARY                                      |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllPrimaryForwardZones"   | ZONE_REQUEST_FORWARD | ZONE_REQUEST_PRIMARY                                      |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllSecondaryReverseZones" | ZONE_REQUEST_REVERSE | ZONE_REQUEST_SECONDARY                                    |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| "..AllSecondaryForwardZones" | ZONE_REQUEST_FORWARD | ZONE_REQUEST_SECONDARY                                    |
	//	+------------------------------+----------------------------------------------------------------------------------+
	Zone string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// dwContext: A value used to specify multizone operations in ZONE_REQUEST_FILTERS (section
	// 2.2.5.1.4) format or zero if the operation is not meant to apply to multiple zones.
	// If pszZone is not NULL and matches the name of a zone hosted by the DNS server then
	// the value of dwContext MUST be ignored.
	Context uint32 `idl:"name:dwContext" json:"context"`
	// pszOperation: A pointer to a null-terminated ASCII character string that contains
	// the name of operation to be performed on the server. These are two sets of allowed
	// values for pszOperation:
	//
	// If pszZone is set to NULL, pszOperation MUST be either a property name listed in
	// section 3.1.1.1.2, 3.1.1.1.3 or 3.1.1.1.4, or SHOULD<215> be one of the following.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|                                  |                                                                                  |
	//	|              VALUE               |                                     MEANING                                      |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ResetDwordProperty               | Update the value of a (name, value) pair in the DNS server configuration. On     |
	//	|                                  | input, dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST      |
	//	|                                  | point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5) that     |
	//	|                                  | specifies the name of a property listed in section 3.1.1.1.1 and a new value for |
	//	|                                  | that property.                                                                   |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| Restart                          | The server SHOULD restart the DNS server process. dwTypeId and pData MUST be     |
	//	|                                  | ignored by the server.<216>                                                      |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ClearDebugLog                    | Clear the debug log. dwTypeId and pData MUST be ignored by the server.           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ClearCache                       | Delete all cached records from the cache zone or cache scope memory. dwTypeId    |
	//	|                                  | and pData MUST be ignored by the server.                                         |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| WriteDirtyZones                  | Write all zones that are stored in local persistent storage to local persistent  |
	//	|                                  | storage if the zone's Dirty Flag (section 3.1.1) is set to TRUE. dwTypeId and    |
	//	|                                  | pData MUST be ignored by the server.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ZoneCreate                       | Create a zone. On input, dwTypeId SHOULD<217> be set to                          |
	//	|                                  | DNSSRV_TYPEID_ZONE_CREATE. pData MUST point to a structure of one of the types   |
	//	|                                  | specified in DNS DNS_RPC_ZONE_CREATE_INFO (section 2.2.5.2.7) that contains all  |
	//	|                                  | parameters of a new zone to be created by the DNS server, and pData MUST conform |
	//	|                                  | to the description corresponding to the value of dwTypeId (section 2.2.1.1.1) If |
	//	|                                  | pData points to a DNS_ZONE_TYPE_CACHE or DNS_ZONE_TYPE_SECONDARY_CACHE record,   |
	//	|                                  | the server MUST return a nonzero error. If pData points to a DNS_ZONE_TYPE_STUB, |
	//	|                                  | DNS_ZONE_TYPE_SECONDARY, or DNS_ZONE_TYPE_FORWARDER record, the server MAY       |
	//	|                                  | return a nonzero error, but SHOULD return success.<218>                          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ClearStatistics                  | Clears server statistics data on the DNS server. dwTypeId and pData MUST be      |
	//	|                                  | ignored by the server.                                                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| EnlistDirectoryPartition         | On input dwTypeId MUST be set to DNSSRV_TYPEID_ENLIST_DP, and the pData MUST     |
	//	|                                  | point to a DNS_RPC_ENLIST_DP (section 2.2.7.2.5) structure. This operation       |
	//	|                                  | allows application directory partitions to be added to or deleted from the       |
	//	|                                  | Application Directory Partition Table, and also allows the DNS server to be      |
	//	|                                  | directed to add or remove itself from the replication scope of an existing       |
	//	|                                  | application directory partition.                                                 |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| StartScavenging                  | Initiate a resource record scavenging cycle on the DNS server. dwTypeId, and     |
	//	|                                  | pData MUST be ignored by the server.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| AbortScavenging                  | Terminate a resource record scavenging cycle on the DNS server. dwTypeId and     |
	//	|                                  | pData MUST be ignored by the server.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| AutoConfigure                    | On input, dwTypeId SHOULD be set to DNSSRV_TYPEID_AUTOCONFIGURE, in which        |
	//	|                                  | case pData MUST point to a structure of type DNS_RPC_AUTOCONFIGURE (section      |
	//	|                                  | 2.2.8.2.1)<219>; dwTypeId MAY instead be set to DNSSRV_TYPEID_DWORD in which     |
	//	|                                  | case pData MUST point to a DWORD in DNS_RPC_AUTOCONFIG (section 2.2.8.1.1)       |
	//	|                                  | format.                                                                          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ExportSettings                   | Export DNS settings on the DNS server to a file on the DNS server. dwTypeId      |
	//	|                                  | SHOULD be set to DNSSRV_TYPEID_LPWSTR, and pData MUST be ignored by the server.  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| PrepareForDemotion               | Prepares for demotion by removing references to this DNS server from all zones   |
	//	|                                  | stored in the directory server. dwTypeId and pData MUST be ignored by the        |
	//	|                                  | server.                                                                          |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| PrepareForUninstall              | This operation does nothing on the DNS server. dwTypeId and pData MUST be        |
	//	|                                  | ignored by the server.                                                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteNode                       | On input dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST    |
	//	|                                  | point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5) that     |
	//	|                                  | contains the FQDN of the node pointed to by pszNodeName in the DNS server's      |
	//	|                                  | cache to be deleted and a Boolean flag in dwParam to indicate if the node        |
	//	|                                  | subtree is to be deleted.                                                        |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteRecordSet                  | On input dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST    |
	//	|                                  | point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). That    |
	//	|                                  | structure contains the FQDN of the node to be deleted, which is cached on the    |
	//	|                                  | DNS server, and the type of record set in the dwParam member, which indicates    |
	//	|                                  | whether the entire set of this type is to be deleted. The type MUST be a         |
	//	|                                  | DNS_RECORD_TYPE value (section 2.2.2.1.1) or 0x00FF, which specifies all types.  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| WriteBackFile                    | Write all information for root hints back to persistent storage. dwTypeId and    |
	//	|                                  | pData MUST be ignored by the server.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ListenAddresses                  | On input, dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                       |
	//	|                                  | DNSSRV_TYPEID_ADDRARRAY and pData MUST point to a structure of type IP4_ARRAY    |
	//	|                                  | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, which    |
	//	|                                  | contains a list of new IP addresses on which the DNS server can listen. The      |
	//	|                                  | server SHOULD accept DNSSRV_TYPEID_ADDRARRAY and DNS_ADDR_ARRAY, and MAY accept  |
	//	|                                  | DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.<220>                                        |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| Forwarders                       | On input dwTypeId SHOULD be set to DNSSRV_TYPEID_FORWARDERS<221>, and pData      |
	//	|                                  | MUST point to a structure of one of the types specified in DNS_RPC_FORWARDERS    |
	//	|                                  | (section 2.2.5.2.10), which contains information about new IP addresses to which |
	//	|                                  | the DNS server can forward queries.                                              |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| LogFilePath                      | On input dwTypeId MUST be set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to   |
	//	|                                  | a Unicode string that contains an absolute or relative pathname or filename for  |
	//	|                                  | the debug log file on the DNS server.                                            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| LogIPFilterList                  | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                                  | DNSSRV_TYPEID_ADDRARRAY, and pData MUST point to a structure of type IP4_ARRAY   |
	//	|                                  | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, which    |
	//	|                                  | contains a list of new IP addresses used for debug log filter. The DNS server    |
	//	|                                  | will write to the debug log only for traffic to/from these IP addresses. The     |
	//	|                                  | server SHOULD accept DNSSRV_TYPEID_ADDRARRAY and DNS_ADDR_ARRAY, and MAY accept  |
	//	|                                  | DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.<222>                                        |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ForestDirectoryPartitionBaseName | The DNS server MUST return an error.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DomainDirectoryPartitionBaseName | The DNS server MUST return an error.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| GlobalQueryBlockList             | Update the list of single-label names for which queries are blocked. Query       |
	//	|                                  | names that match this list, in any primary zone, will be blocked. On input       |
	//	|                                  | dwTypeId MUST be set to DNSSRV_TYPEID_UTF8_STRING_LIST, and pData MUST point to  |
	//	|                                  | a structure of type DNS_RPC_UTF8_STRING_LIST (section 2.2.1.2.3).                |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| BreakOnReceiveFrom               | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                                  | DNSSRV_TYPEID_ADDRARRAY and pData MUST point to a structure of type IP4_ARRAY    |
	//	|                                  | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, that     |
	//	|                                  | contains a list of new IP addresses for which the DNS server will execute        |
	//	|                                  | a breakpoint if a packet is received from these IP addresses. The server         |
	//	|                                  | SHOULD accept DNSSRV_TYPEID_ADDRARRAY and DNS_ADDR_ARRAY, and MAY accept         |
	//	|                                  | DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.<223>                                        |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| BreakOnUpdateFrom                | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                                  | DNSSRV_TYPEID_ADDRARRAY, and pData MUST point to a structure of type IP4_ARRAY   |
	//	|                                  | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, that     |
	//	|                                  | contains a list of new IP addresses for which the DNS server will execute        |
	//	|                                  | a breakpoint if an update is received from these IP addresses. The server        |
	//	|                                  | SHOULD accept DNSSRV_TYPEID_ADDRARRAY and DNS_ADDR_ARRAY, and MAY accept         |
	//	|                                  | DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.<224>                                        |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ServerLevelPluginDll             | On input dwTypeId MUST be set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to a |
	//	|                                  | Unicode string that contains an absolute pathname for server side plug-in binary |
	//	|                                  | on the DNS server or an empty Unicode string.                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ActiveRefreshAllTrustPoints      | Schedules an immediate RFC 5011 active refresh for all trust points, regardless  |
	//	|                                  | of the time of the last active refresh. The dwTypeId and pData parameters MUST   |
	//	|                                  | be set to zero/NULL by the client and MUST be ignored by the server.<225>        |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| CreateServerScope                | Creates a server scope on the DNS server. The dwTypeId parameter MUST be set     |
	//	|                                  | to DNSSRV_TYPEID_LPWSTR. pData MUST point to a Unicode string that contains the  |
	//	|                                  | name of the server scope to be created.<226>                                     |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteServerScope                | Deletes a server scope on the DNS server. The dwTypeId parameter MUST be set     |
	//	|                                  | to DNSSRV_TYPEID_LPWSTR. pData MUST point to a Unicode string that contains the  |
	//	|                                  | name of the server scope to be deleted.<227>                                     |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| CreateClientSubnetRecord         | Creates a client subnet record on a DNS server. The dwTypeId parameter MUST be   |
	//	|                                  | set to DNSSRV_TYPEID_CLIENT_SUBNET_RECORD, and pData MUST point to a structure   |
	//	|                                  | of type DNS_RPC_CLIENT_SUBNET_RECORD.                                            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteClientSubnetRecord         | Deletes a client subnet record on a DNS server. The dwTypeId parameter MUST be   |
	//	|                                  | set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to a NULL-terminated Unicode   |
	//	|                                  | string containing the name of the client subnet record to be deleted.            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteSubnetsInRecord            | Updates a client subnet record on a DNS server by deleting the IP/IPv6           |
	//	|                                  | Subnets from the Client Subnet Record. The dwTypeId parameter MUST be set to     |
	//	|                                  | DNSSRV_TYPEID_CLIENT_SUBNET_RECORD, and pData MUST point to a structure of type  |
	//	|                                  | DNS_RPC_CLIENT_SUBNET_RECORD.                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| AddSubnetsInRecord               | Updates a client subnet record on a DNS server by adding the IP/IPv6             |
	//	|                                  | Subnets to the Client Subnet Record. The dwTypeId parameter MUST be set to       |
	//	|                                  | DNSSRV_TYPEID_CLIENT_SUBNET_RECORD, and pData MUST point to a structure of type  |
	//	|                                  | DNS_RPC_CLIENT_SUBNET_RECORD.                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| ResetClientSubnetRecord          | Resets a client subnet record on a DNS server by deleting the existing IP/IPv6   |
	//	|                                  | Subnets and adding the IP/IPv6 Subnets specific to the client subnet record. The |
	//	|                                  | dwTypeId parameter MUST be set to DNSSRV_TYPEID_CLIENT_SUBNET_RECORD, and pData  |
	//	|                                  | MUST point to a structure of type DNS_RPC_CLIENT_SUBNET_RECORD.                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| CreatePolicy                     | Creates a DNS Policy at the server level on a DNS server. The dwTypeId parameter |
	//	|                                  | MUST be set to DNSSRV_TYPEID_POLICY, and pData MUST point to a structure of type |
	//	|                                  | DNS_RPC_POLICY.                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeletePolicy                     | Deletes a DNS Policy at the server level on a DNS server. The dwTypeId parameter |
	//	|                                  | MUST be set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to NULL-terminated     |
	//	|                                  | Unicode string containing the name of the DNS Policy.                            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| UpdatePolicy                     | Updates a DNS Policy at the server level on a DNS server. The dwTypeId parameter |
	//	|                                  | MUST be set to DNSSRV_TYPEID_POLICY, and pData MUST point to a structure of type |
	//	|                                  | DNS_RPC_POLICY.                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| SetRRL                           | Sets Response Rate Limiting parameters at the server level on a DNS server. The  |
	//	|                                  | dwTypeId parameter MUST be set to DNSSRV_TYPEID_RRL, and pData MUST point to a   |
	//	|                                  | structure of type DNS_RPC_RRL_PARAMS.                                            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| CreateVirtualizationInstance     | Creates a virtualization instance on the DNS server, under which                 |
	//	|                                  | zones can be created later. The dwTypeId parameter MUST be set to                |
	//	|                                  | DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE (section 2.2.1.2.6), and the pData         |
	//	|                                  | parameter MUST point to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE      |
	//	|                                  | (section 2.2.1.2.6).                                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteVirtualizationInstance     | Removes a virtualization instance on the DNS server. This also removes           |
	//	|                                  | the zones and zone scopes under the virtualization instance as well. The         |
	//	|                                  | dwTypeId parameter MUST be set to DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE,         |
	//	|                                  | and pData MUST point to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE.     |
	//	|                                  | The value of dwFlags in DNS_RPC_VIRTUALIZATION_INSTANCE if set to                |
	//	|                                  | DNS_RPC_FLAG_PRESERVE_ZONE_FILE, the DNS server deletes the zones under the      |
	//	|                                  | virtualization instance but keeps the zone files. By default a DNS server        |
	//	|                                  | removes the zone files of zones under a virtualization instance when the         |
	//	|                                  | virtualization instance is removed.                                              |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| UpdateVirtualizationInstance     | Modifies the members of the virtualization instance on the DNS server. The       |
	//	|                                  | dwTypeId parameter MUST be set to DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE, and     |
	//	|                                  | pData MUST point to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE. The     |
	//	|                                  | members of DNS_RPC_VIRTUALIZATION_INSTANCE to be modified is determined by bits  |
	//	|                                  | in member dwFlags, which can be DNS_RPC_FLAG_FRIENDLY_NAME or DNS_RPC_FLAG_DESC  |
	//	|                                  | (section 3.1.4.1)                                                                |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// If pszZone is not NULL, and pszOperation does not match a property name listed in
	// sections 3.1.1.2.2 or 3.1.1.2.3, then pszOperation SHOULD<228> be one of the following:
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ResetDwordProperty           | Update the value of a DNS Zone integer property. On input dwTypeId MUST be       |
	//	|                              | set to DNSSRV_TYPEID_NAME_AND_PARAM and pData MUST point to a structure of       |
	//	|                              | type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5), which contains the name of a    |
	//	|                              | property listed in section 3.1.1.2.1 for the zone pointed to by pszZone and a    |
	//	|                              | new value for that property.<229>                                                |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ZoneTypeReset                | Change the zone's type, for example to convert a secondary zone into a           |
	//	|                              | primary zone. On input dwTypeId SHOULD be set to DNSSRV_TYPEID_ZONE_CREATE,      |
	//	|                              | and pData SHOULD point to a structure of one of the types specified              |
	//	|                              | in DNS_RPC_ZONE_CREATE_INFO (section 2.2.5.2.7), which contains the              |
	//	|                              | new configuration information for the zone. dwTypeId MAY be set to               |
	//	|                              | DNSSRV_TYPEID_ZONE_CREATE_W2K or DNSSRV_TYPEID_ZONE_CREATE_DOTNET.<230> The      |
	//	|                              | server MUST return a nonzero error if the conversion is not implemented.         |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| PauseZone                    | Pause activities for the zone pointed to by pszZone on the DNS server, and       |
	//	|                              | do not use this zone to answer queries or take updates until it is resumed.      |
	//	|                              | dwTypeId, and pData MUST be ignored by the server.                               |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ResumeZone                   | Resume activities for the zone pointed to by pszZone on the DNS server; the zone |
	//	|                              | thus becomes available to answer queries and take updates. dwTypeId and pData    |
	//	|                              | MUST be ignored by the server.                                                   |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteZone                   | Delete the zone pointed to by pszZone on the DNS server. dwTypeId and pData MUST |
	//	|                              | be ignored by the server.                                                        |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ReloadZone                   | Reloads data for the zone pointed to by pszZone on the DNS server from           |
	//	|                              | persistent storage. dwTypeId, and pData MUST be ignored by the server.           |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| RefreshZone                  | Force a refresh of the secondary zone pointed to by pszZone on the DNS server,   |
	//	|                              | from primary zone server. For this operation pszZone MUST point to a secondary   |
	//	|                              | zone only. dwTypeId and pData MUST be ignored by the server.                     |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ExpireZone                   | Force a refresh of the secondary zone pointed to by pszZone on the DNS server,   |
	//	|                              | from primary zone server. For this operation pszZone MUST point to a secondary   |
	//	|                              | zone only. dwTypeId and pData MUST be ignored by the server.                     |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| IncrementVersion             | Same as "WriteBackFile".                                                         |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| WriteBackFile                | If the zone has uncommitted changes, write back all information for the zone     |
	//	|                              | pointed to by pszZone to persistent storage, and notify any secondary DNS        |
	//	|                              | servers. dwTypeId and pData MUST be ignored by the server.                       |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteZoneFromDs             | Delete the zone pointed to by pszZone from the directory server. dwTypeId, and   |
	//	|                              | pData MUST be ignored by the server.                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| UpdateZoneFromDs             | Refresh data for the zone pointed to by pszZone from the directory server.       |
	//	|                              | dwTypeId, and pData MUST be ignored by the server.                               |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ZoneExport                   | Export zone data to a given file on the DNS server. On input dwTypeId MUST be    |
	//	|                              | set to DNSSRV_TYPEID_ZONE_EXPORT, and pData MUST point to a structure of type    |
	//	|                              | DNS_RPC_ZONE_EXPORT_INFO (section 2.2.5.2.8) that contains a file name pointed   |
	//	|                              | to by pszZoneExportFile.                                                         |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ZoneChangeDirectoryPartition | Move a zone to a given application directory partition. On input dwTypeId        |
	//	|                              | MUST be set to DNSSRV_TYPEID_ZONE_CHANGE_DP, and pData MUST point to structure   |
	//	|                              | of type DNS_RPC_ZONE_CHANGE_DP (section 2.2.7.2.6), which contains the new       |
	//	|                              | application directory partition name pointed to by pszDestPartition.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteNode                   | Delete a node. On input dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM,    |
	//	|                              | and pData MUST point to a structure of type DNS_RPC_NAME_AND_PARAM (section      |
	//	|                              | 2.2.1.2.5), which contains the FQDN of the node pointed to by pszNodeName        |
	//	|                              | present in the zone pointed to by pszZone on the DNS server to be deleted and a  |
	//	|                              | Boolean flag in dwParam to indicate if the node's subtree is to be deleted.      |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteRecordSet              | Delete all the DNS records of a particular type at a particular                  |
	//	|                              | node from the DNS server's cache. On input dwTypeId MUST be set to               |
	//	|                              | DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST point to a structure of type        |
	//	|                              | DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). That structure contains the FQDN of  |
	//	|                              | the node to be deleted and the DNS record type in the dwParam member. The type   |
	//	|                              | MUST be a DNS_RECORD_TYPE value (section 2.2.2.1.1) or 0x00FF, which specifies   |
	//	|                              | all types.                                                                       |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ForceAgingOnNode             | On input dwTypeId MUST be set to DNSSRV_TYPEID_NAME_AND_PARAM, and pData MUST    |
	//	|                              | point to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5), which   |
	//	|                              | contains a node name in pszNodeName, and a Boolean flag in dwParam to indicate   |
	//	|                              | whether aging is performed on all nodes in the subtree. All DNS records at the   |
	//	|                              | specified node in the zone named by pszZone will have their aging time stamp     |
	//	|                              | set to the current time. If subtree aging is specified by dwParam than all DNS   |
	//	|                              | records at all nodes that are children of this node will also have their aging   |
	//	|                              | time stamps set to the current time.                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DatabaseFile                 | On input dwTypeId SHOULD be set to DNSSRV_TYPEID_ZONE_DATABASE<231>, and pData   |
	//	|                              | MUST point to a structure of one of the types specified in DNS_RPC_ZONE_DATABASE |
	//	|                              | (section 2.2.5.2.6), which specifies whether the zone is directory server        |
	//	|                              | integrated by setting fDsIntegrated to TRUE, and if it is not then pszFileName   |
	//	|                              | MUST point to a Unicode string containing the absolute pathname of a file on the |
	//	|                              | DNS server to which the zone database is stored.                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| MasterServers                | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                              | DNSSRV_TYPEID_ADDRARRAY, and pData MUST point to a structure of type IP4_ARRAY   |
	//	|                              | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, which    |
	//	|                              | contains a list of IP addresses of new primary DNS servers for the zone pointed  |
	//	|                              | to by pszZone. This operation is valid only for secondary zones present on the   |
	//	|                              | server. The server SHOULD accept DNSSRV_TYPEID_ADDRARRAY and DNS_ADDR_ARRAY, and |
	//	|                              | SHOULD accept DNSSRV_TYPEID_IPARRAY and IP4_ARRAY. If the input data of either   |
	//	|                              | type is accepted and the DNS server is directory-server integrated, the value of |
	//	|                              | pData SHOULD be written to the directory server.<232>                            |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| LocalMasterServers           | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                              | DNSSRV_TYPEID_ADDRARRAY, and pData MUST point to a structure of type IP4_ARRAY   |
	//	|                              | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively,          |
	//	|                              | which contains a list of IP addresses of new local primary DNS servers           |
	//	|                              | for the zone pointed to by pszZone. This operation is valid only for stub        |
	//	|                              | zones present on the server, and if configured, this value overrides any         |
	//	|                              | primary DNS server configured in the directory server. The server SHOULD         |
	//	|                              | accept DNSSRV_TYPEID_ADDRARRAY and DNS_ADDR_ARRAY, and SHOULD accept             |
	//	|                              | DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.<233>                                        |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SecondaryServers             | On input dwTypeId SHOULD<234> be set to DNSSRV_TYPEID_ZONE_SECONDARIES,          |
	//	|                              | and pData MUST point to a structure of one of the types specified in             |
	//	|                              | DNS_RPC_ZONE_SECONDARIES (section 2.2.5.2.5), which contains information about   |
	//	|                              | secondary DNS servers for the zone pointed to by pszZone.                        |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ScavengeServers              | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                              | DNSSRV_TYPEID_ADDRARRAY, and pData MUST point to a structure of type IP4_ARRAY   |
	//	|                              | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, which    |
	//	|                              | contains a list of IP addresses of new servers that can run scavenging on        |
	//	|                              | the zone pointed to by pszZone. This operation is valid only for directory       |
	//	|                              | server integrated zones. The server SHOULD accept DNSSRV_TYPEID_ADDRARRAY,       |
	//	|                              | and DNS_ADDR_ARRAY, and SHOULD accept DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.       |
	//	|                              | If the input data of either type is accepted and the DNS server is directory     |
	//	|                              | server-integrated, the value of pData SHOULD be written to the directory         |
	//	|                              | server.<235>                                                                     |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| AllowNSRecordsAutoCreation   | On input dwTypeId MUST be set to DNSSRV_TYPEID_IPARRAY or                        |
	//	|                              | DNSSRV_TYPEID_ADDRARRAY and pData MUST point to a structure of type IP4_ARRAY    |
	//	|                              | (section 2.2.3.2.1) or DNS_ADDR_ARRAY (section 2.2.3.2.3) respectively, which    |
	//	|                              | contains a list of IP addresses of new servers that can auto-create NS records   |
	//	|                              | for the zone pointed to by pszZone. This operation is valid only for directory   |
	//	|                              | server integrated zones. The server SHOULD accept DNSSRV_TYPEID_ADDRARRAY        |
	//	|                              | and DNS_ADDR_ARRAY, and SHOULD accept DNSSRV_TYPEID_IPARRAY and IP4_ARRAY.       |
	//	|                              | If the input data of either type is accepted and the DNS server is directory     |
	//	|                              | server-integrated, the value of pData SHOULD be written to the directory         |
	//	|                              | server.<236>                                                                     |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| BreakOnNameUpdate            | On input dwTypeId MUST be set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to   |
	//	|                              | a Unicode string that contains the FQDN of the node for which if an update is    |
	//	|                              | received the DNS server will execute a breakpoint.                               |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| SignZone                     | Sign a zone using DNSSEC, thus making the zone online-signed. The dwTypeId and   |
	//	|                              | pData parameters MUST be set to zero/NULL by the client and MUST be ignored by   |
	//	|                              | the server.                                                                      |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| UnsignZone                   | Unsign a zone signed via online signing and remove all DNSSEC data from the      |
	//	|                              | zone. The dwTypeId and pData parameters MUST be set to zero/NULL by the client   |
	//	|                              | and MUST be ignored by the server.                                               |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| ResignZone                   | Refreshes all DNSSEC data in an online-signed zone. The dwTypeId and pData       |
	//	|                              | parameters MUST be set to zero/NULL by the client and MUST be ignored by the     |
	//	|                              | server.                                                                          |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| PerformZoneKeyRollover       | Queues a signing key descriptor for key rollover. On input, dwTypeId MUST be set |
	//	|                              | to DNSSRV_TYPEID_LPWSTR, and pData MUST point to a Unicode string representation |
	//	|                              | of the GUID of the signing key descriptor to be queued for rollover.             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| PokeZoneKeyRollover          | Instructs the DNS server to stop waiting for DS records [RFC4034] in the parent  |
	//	|                              | zone to be updated and to proceed with key rollover as specified by [RFC4641].   |
	//	|                              | On input, dwTypeId MUST be set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to  |
	//	|                              | a Unicode string representation of the GUID of the signing key descriptor to be  |
	//	|                              | queued for rollover.                                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| RetrieveRootTrustAnchors     | Retrieves the root trust anchors from the XML file specified by the              |
	//	|                              | RootTrustAnchorsURL server property (section 3.1.1.1.3) and adds any valid DS    |
	//	|                              | records to the root trust anchors. The dwTypeId and pData parameters MUST be     |
	//	|                              | set to zero/NULL by the client and MUST be ignored by the server. The pszZone    |
	//	|                              | parameter MUST be set to the string "TrustAnchors" to indicate the name of the   |
	//	|                              | zone.                                                                            |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| TransferKeymasterRole        | Transfers the key master role to the current server. The dwTypeId parameter MUST |
	//	|                              | be set to DNSSRV_TYPEID_DWORD, and pData MUST point to one of the values defined |
	//	|                              | in the following paragraphs.                                                     |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| CreateZoneScope              | Creates a zone scope in the specified zone or a cache scope in                   |
	//	|                              | the specified cache zone. The dwTypeId parameter MUST be set to                  |
	//	|                              | DNSSRV_TYPEID_ZONE_SCOPE_CREATE. pData MUST point to a structure of the type     |
	//	|                              | DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 (section 2.2.13.1.2.1) that contains all the   |
	//	|                              | parameters needed to create the zone scope or cache scope. pszZone MUST be the   |
	//	|                              | name of the zone in which the zone scope is to be created or be specified as     |
	//	|                              | "..cache" for a cache scope.<237>                                                |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DeleteZoneScope              | Deletes a zone scope from the specified zone or a cache scope from a specified   |
	//	|                              | cache zone. The dwTypeId MUST be set to DNSSRV_TYPEID_LPWSTR. pData MUST point   |
	//	|                              | to the name of the zone scope or cache scope that is to be deleted. pszZone MUST |
	//	|                              | be the name of the zone from which the zone scope is to be deleted or set to     |
	//	|                              | "..cache" for a cache scope.<238>                                                |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| CreatePolicy                 | Creates a DNS Policy for the specified zone or a cache zone on a DNS server. The |
	//	|                              | dwTypeId parameter MUST be set to DNSSRV_TYPEID_POLICY, and pData MUST point to  |
	//	|                              | a structure of type DNS_RPC_POLICY.                                              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DeletePolicy                 | Deletes a DNS Policy for the specified zone or a cache zone on a DNS server. The |
	//	|                              | dwTypeId parameter MUST be set to DNSSRV_TYPEID_LPWSTR, and pData MUST point to  |
	//	|                              | NULL-terminated Unicode string containing the name of the DNS Policy.            |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| UpdatePolicy                 | Updates a DNS Policy for the specified zone or a cache zone on a DNS server. The |
	//	|                              | dwTypeId parameter MUST be set to DNSSRV_TYPEID_POLICY, and pData MUST point to  |
	//	|                              | a structure of type DNS_RPC_POLICY.                                              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	Operation string `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
	// dwTypeId: A DNS_RPC_TYPEID (section 2.2.1.1.1) value that indicates the type of input
	// data pointed to by pData.
	TypeID uint32 `idl:"name:dwTypeId" json:"type_id"`
	// pData: Input data of type DNSSRV_RPC_UNION (section 2.2.1.2.6), which contains a
	// data structure as specified by dwTypeId.
	Data *dnsp.Union `idl:"name:pData;switch_is:dwTypeId" json:"data"`
}

OperationRequest structure represents the R_DnssrvOperation operation request

func (*OperationRequest) MarshalNDR

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

func (*OperationRequest) UnmarshalNDR

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

type OperationResponse

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

OperationResponse structure represents the R_DnssrvOperation operation response

func (*OperationResponse) MarshalNDR

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

func (*OperationResponse) UnmarshalNDR

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

type Query2Request

type Query2Request struct {
	// dwClientVersion: The client version in DNS_RPC_CURRENT_CLIENT_VER (section 2.2.1.2.1)
	// format.
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	// dwSettingFlags: Reserved for future use only. This field MUST be set to zero by clients
	// and ignored by servers.
	SettingFlags uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName   string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone         string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	Operation    string `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
}

Query2Request structure represents the R_DnssrvQuery2 operation request

func (*Query2Request) MarshalNDR

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

func (*Query2Request) UnmarshalNDR

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

type Query2Response

type Query2Response struct {
	TypeID uint32      `idl:"name:pdwTypeId" json:"type_id"`
	Data   *dnsp.Union `idl:"name:ppData;switch_is:*pdwTypeId" json:"data"`
	// Return: The R_DnssrvQuery2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

Query2Response structure represents the R_DnssrvQuery2 operation response

func (*Query2Response) MarshalNDR

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

func (*Query2Response) UnmarshalNDR

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

type Query3Request

type Query3Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone          string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	ZoneScopeName string `idl:"name:pszZoneScopeName;string;pointer:unique" json:"zone_scope_name"`
	Operation     string `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
}

Query3Request structure represents the R_DnssrvQuery3 operation request

func (*Query3Request) MarshalNDR

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

func (*Query3Request) UnmarshalNDR

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

type Query3Response

type Query3Response struct {
	TypeID uint32      `idl:"name:pdwTypeId" json:"type_id"`
	Data   *dnsp.Union `idl:"name:ppData;switch_is:*pdwTypeId" json:"data"`
	// Return: The R_DnssrvQuery3 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

Query3Response structure represents the R_DnssrvQuery3 operation response

func (*Query3Response) MarshalNDR

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

func (*Query3Response) UnmarshalNDR

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

type Query4Request

type Query4Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pwszVirtualizationInstanceID: A pointer to a null-terminated Unicode string that
	// contains the name of the virtualization instance configured on the DNS server. For
	// operations specific to a particular virtualization instance, this field MUST contain
	// the name of the virtualization instance. If the value is NULL, then the API is as
	// specified in R_DnssrvQuery3 (section 3.1.4.14). Apart from the VirtualizationInstances
	// operation (section 3.1.4.2), R_DnssrvQuery3 (section 3.1.4.14) changes the behavior
	// of the following operations: Zone, ZoneInfo (section 3.1.4.2) and ScopeInfo (section
	// 3.1.4.14) operations. If these operations are called with R_DnssrvQuery4 and a non-NULL
	// pwszVirtualizationInstanceID parameter, they are performed under the given virtualization
	// instance. The ScopeInfo operation is defined for R_DnssrvQuery4 with a non-NULL virtualization
	// instance only if pszZone is not NULL.
	VirtualizationInstanceID string `idl:"name:pwszVirtualizationInstanceID;string;pointer:unique" json:"virtualization_instance_id"`
	Zone                     string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	ZoneScopeName            string `idl:"name:pszZoneScopeName;string;pointer:unique" json:"zone_scope_name"`
	Operation                string `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
}

Query4Request structure represents the R_DnssrvQuery4 operation request

func (*Query4Request) MarshalNDR

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

func (*Query4Request) UnmarshalNDR

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

type Query4Response

type Query4Response struct {
	TypeID uint32      `idl:"name:pdwTypeId" json:"type_id"`
	Data   *dnsp.Union `idl:"name:ppData;switch_is:*pdwTypeId" json:"data"`
	// Return: The R_DnssrvQuery4 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

Query4Response structure represents the R_DnssrvQuery4 operation response

func (*Query4Response) MarshalNDR

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

func (*Query4Response) UnmarshalNDR

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

type QueryRequest

type QueryRequest struct {
	// pwszServerName: The client can pass a pointer to the FQDN of the target server as
	// a null-terminated UTF-16LE character string. The server MUST ignore this value.
	ServerName string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pszZone: A pointer to a null-terminated character string that contains name of the
	// zone to be queried. For operations specific to a particular zone, this field MUST
	// contain the name of the zone in UTF-8 format. For all other operations, this field
	// MUST be NULL.
	Zone string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pszOperation: A pointer to a null-terminated character string that contains the name
	// of the operation to be performed on the server. These are two sets of allowed values
	// for pszOperation:
	//
	// If pszZone is set to NULL, pszOperation MUST be either a property name listed in
	// section 3.1.1.1, or it SHOULD<265> be the following.
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|                        |                                                                                  |
	//	|         VALUE          |                                     MEANING                                      |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| "ServerInfo"           | On output pdwTypeId SHOULD be set according to the value of the dwClientVersion  |
	//	|                        | field (section 2.2.1.2.1). If dwClientVersion is 0x00000000, then pdwTypeId      |
	//	|                        | SHOULD be set to DNSSRV_TYPEID_SERVER_INFO_W2K. If dwClientVersion is            |
	//	|                        | 0x00060000, then pdwTypeId SHOULD be set to DNSSRV_TYPEID_SERVER_INFO_DOTNET.    |
	//	|                        | If dwClientVersion is 0x00070000, then pdwTypeId SHOULD be set to                |
	//	|                        | DNSSRV_TYPEID_SERVER_INFO<266> ppData MUST point to a structure of one of the    |
	//	|                        | types specified in DNS_RPC_SERVER_INFO (section 2.2.4.2.2), which SHOULD contain |
	//	|                        | the configuration information for the DNS server, but MAY have some fields set   |
	//	|                        | to zero even when the related configuration value is nonzero.<267>               |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| VirtualizationInstance | Gets the details of a virtualization instance in the DNS server.                 |
	//	|                        | On success, the DNS server MUST set the dwTypeId parameter to                    |
	//	|                        | DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE (section 2.2.1.2.6), and MUST set the      |
	//	|                        | ppData point to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE (section     |
	//	|                        | 2.2.17.1.1).                                                                     |
	//	+------------------------+----------------------------------------------------------------------------------+
	//
	// If pszZone is not NULL, pszOperation MUST be either a property name listed in section
	// 3.1.1.2, or one of the following.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| "Zone"     | On output the value pointed to by pdwTypeId SHOULD<268> be set to                |
	//	|            | DNSSRV_TYPEID_ZONE and ppData MUST point to a structure of one of the types      |
	//	|            | specified in DNS_RPC_ZONE (section 2.2.5.2.1), which contains abbreviated        |
	//	|            | information about the zone pointed to by pszZone.                                |
	//	+------------+----------------------------------------------------------------------------------+
	//	| "ZoneInfo" | On output the value pointed to by pdwTypeId SHOULD<269> be set to                |
	//	|            | DNSSRV_TYPEID_ZONE_INFOand ppData MUST point to a structure of one of the        |
	//	|            | types specified in DNS_RPC_ZONE_INFO (section 2.2.5.2.4), which contains full    |
	//	|            | information about the zone pointed to by pszZone.                                |
	//	+------------+----------------------------------------------------------------------------------+
	Operation string `idl:"name:pszOperation;string;pointer:unique" json:"operation"`
}

QueryRequest structure represents the R_DnssrvQuery operation request

func (*QueryRequest) MarshalNDR

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

func (*QueryRequest) UnmarshalNDR

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

type QueryResponse

type QueryResponse struct {
	// pdwTypeId: A pointer to an integer that on success contains a value of type DNS_RPC_TYPEID
	// (section 2.2.1.1.1) that indicates the type of data pointed to by ppData.
	TypeID uint32 `idl:"name:pdwTypeId" json:"type_id"`
	// ppData: A DNSSRV_RPC_UNION(section 2.2.1.2.6) that contains a data-structure as indicated
	// by dwTypeId.
	Data *dnsp.Union `idl:"name:ppData;switch_is:*pdwTypeId" json:"data"`
	// Return: The R_DnssrvQuery return value.
	Return int32 `idl:"name:Return" json:"return"`
}

QueryResponse structure represents the R_DnssrvQuery operation response

func (*QueryResponse) MarshalNDR

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

func (*QueryResponse) UnmarshalNDR

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

type UpdateRecord2Request

type UpdateRecord2Request struct {
	// dwClientVersion: The client version in DNS_RPC_CURRENT_CLIENT_VER (section 2.2.1.2.1)
	// format.
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	// dwSettingFlags: Reserved for future use only. This field MUST be set to zero by clients
	// and ignored by servers.
	SettingFlags uint32       `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName   string       `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone         string       `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	NodeName     string       `idl:"name:pszNodeName;string" json:"node_name"`
	AddRecord    *dnsp.Record `idl:"name:pAddRecord;pointer:unique" json:"add_record"`
	DeleteRecord *dnsp.Record `idl:"name:pDeleteRecord;pointer:unique" json:"delete_record"`
}

UpdateRecord2Request structure represents the R_DnssrvUpdateRecord2 operation request

func (*UpdateRecord2Request) MarshalNDR

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

func (*UpdateRecord2Request) UnmarshalNDR

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

type UpdateRecord2Response

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

UpdateRecord2Response structure represents the R_DnssrvUpdateRecord2 operation response

func (*UpdateRecord2Response) MarshalNDR

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

func (*UpdateRecord2Response) UnmarshalNDR

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

type UpdateRecord3Request

type UpdateRecord3Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	Zone          string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pwszZoneScope: A pointer to a null-terminated character string that contains the
	// name of the zone scope or cache scope inside the zone to be queried. For operations
	// specific to a particular zone scope or cache scope, this field MUST contain the name
	// of the zone scope or cache scope. If the value is NULL, the API gives the same behavior
	// as R_DnssrvUpdateRecord2.
	ZoneScope    string       `idl:"name:pwszZoneScope;string;pointer:unique" json:"zone_scope"`
	NodeName     string       `idl:"name:pszNodeName;string" json:"node_name"`
	AddRecord    *dnsp.Record `idl:"name:pAddRecord;pointer:unique" json:"add_record"`
	DeleteRecord *dnsp.Record `idl:"name:pDeleteRecord;pointer:unique" json:"delete_record"`
}

UpdateRecord3Request structure represents the R_DnssrvUpdateRecord3 operation request

func (*UpdateRecord3Request) MarshalNDR

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

func (*UpdateRecord3Request) UnmarshalNDR

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

type UpdateRecord3Response

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

UpdateRecord3Response structure represents the R_DnssrvUpdateRecord3 operation response

func (*UpdateRecord3Response) MarshalNDR

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

func (*UpdateRecord3Response) UnmarshalNDR

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

type UpdateRecord4Request

type UpdateRecord4Request struct {
	ClientVersion uint32 `idl:"name:dwClientVersion" json:"client_version"`
	SettingFlags  uint32 `idl:"name:dwSettingFlags" json:"setting_flags"`
	ServerName    string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pwszVirtualizationInstanceID: A pointer to a null-terminated Unicode string that
	// contains the name of the virtualization instance configured in the DNS server. For
	// operations specific to a particular zone or zone scope, details must be given in
	// pszZone and pwszZonescope as specified in section 3.1.4.11. If the value pwszVirtualizationInstanceID
	// is NULL, the API gives the same behavior as R_DnssrvUpdateRecord3.
	VirtualizationInstanceID string       `idl:"name:pwszVirtualizationInstanceID;string;pointer:unique" json:"virtualization_instance_id"`
	Zone                     string       `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	ZoneScope                string       `idl:"name:pwszZoneScope;string;pointer:unique" json:"zone_scope"`
	NodeName                 string       `idl:"name:pszNodeName;string" json:"node_name"`
	AddRecord                *dnsp.Record `idl:"name:pAddRecord;pointer:unique" json:"add_record"`
	DeleteRecord             *dnsp.Record `idl:"name:pDeleteRecord;pointer:unique" json:"delete_record"`
}

UpdateRecord4Request structure represents the R_DnssrvUpdateRecord4 operation request

func (*UpdateRecord4Request) MarshalNDR

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

func (*UpdateRecord4Request) UnmarshalNDR

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

type UpdateRecord4Response

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

UpdateRecord4Response structure represents the R_DnssrvUpdateRecord4 operation response

func (*UpdateRecord4Response) MarshalNDR

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

func (*UpdateRecord4Response) UnmarshalNDR

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

type UpdateRecordRequest

type UpdateRecordRequest struct {
	// pwszServerName: The client SHOULD pass a pointer to the FQDN of the target server
	// as a null-terminated UTF-16LE character string. The server MUST ignore this value.
	ServerName string `idl:"name:pwszServerName;string;pointer:unique" json:"server_name"`
	// pszZone: A pointer to a null-terminated character string that contains the name of
	// the zone to be queried. For operations specific to a particular zone, this field
	// MUST contain the name of the zone in UTF-8 format. For all other operations, this
	// field MUST be NULL.
	Zone string `idl:"name:pszZone;string;pointer:unique" json:"zone"`
	// pszNodeName: A pointer to a null-terminated character string that contains the node
	// name at which to modify a record. A string that is not dot-terminated indicates a
	// name relative to the zone root. A value of "@" indicates the zone root itself. A
	// dot-terminated string indicates the name is an FQDN.
	NodeName string `idl:"name:pszNodeName;string" json:"node_name"`
	// pAddRecord: A pointer to a structure of type DNS_RPC_RECORD (section 2.2.2.2.5) that
	// contains information based on the operation being performed as specified below.
	AddRecord *dnsp.Record `idl:"name:pAddRecord;pointer:unique" json:"add_record"`
	// pDeleteRecord: A pointer to a structure of type DNS_RPC_RECORD (section 2.2.2.2.5)
	// that contains information based on the operation being performed as specified below.
	//
	// * pAddRecord: The DNS RR data of the new record.
	//
	// * pDeleteRecord: MUST be set to NULL.
	//
	// * pAddRecord: MUST be set to NULL.
	//
	// * pDeleteRecord: Individual DNS RR data of the record to be deleted.
	//
	// * pAddRecord: New record data.
	//
	// * pDeleteRecord: Old record data.
	//
	// * pAddRecord: MUST be set to NULL.
	//
	// * pDeleteRecord: MUST be set to NULL.
	DeleteRecord *dnsp.Record `idl:"name:pDeleteRecord;pointer:unique" json:"delete_record"`
}

UpdateRecordRequest structure represents the R_DnssrvUpdateRecord operation request

func (*UpdateRecordRequest) MarshalNDR

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

func (*UpdateRecordRequest) UnmarshalNDR

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

type UpdateRecordResponse

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

UpdateRecordResponse structure represents the R_DnssrvUpdateRecord operation response

func (*UpdateRecordResponse) MarshalNDR

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

func (*UpdateRecordResponse) UnmarshalNDR

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

Jump to

Keyboard shortcuts

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