windows-nt/Source/XPSP1/NT/ds/dns/server/idl/dnssrv.idl
2020-09-26 16:20:57 +08:00

168 lines
6.5 KiB
Plaintext

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
dnssrv.idl
Abstract:
Domain Name System (DNS) Server
DNS RPC API and type definitions.
Author:
Jim Gilroy (jamesg) April, 1997
Revision History:
--*/
//
// NT5 RPC Interface definition
//
[
uuid(50abc2a4-574d-40b3-9d66-ee4fd5fba076),
version(5.0),
pointer_default(unique)
]
interface DnsServer
{
import "imports.idl";
typedef [handle] LPCWSTR DNSSRV_RPC_HANDLE;
//
// RPC API
//
DNS_STATUS
R_DnssrvOperation(
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in] DWORD dwContext,
[in, unique, string] LPCSTR pszOperation,
[in] DWORD dwTypeId,
[in, switch_is(dwTypeId)] DNSSRV_RPC_UNION pData
);
DNS_STATUS
R_DnssrvQuery(
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, unique, string] LPCSTR pszOperation,
[out] PDWORD pdwTypeId,
[out, switch_is(*pdwTypeId)] DNSSRV_RPC_UNION * ppData
);
DNS_STATUS
R_DnssrvComplexOperation(
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, unique, string] LPCSTR pszOperation,
[in] DWORD dwTypeIn,
[in, switch_is(dwTypeIn)] DNSSRV_RPC_UNION pDataIn,
[out] PDWORD pdwTypeOut,
[out, switch_is(*pdwTypeOut)] DNSSRV_RPC_UNION * ppDataOut
);
DNS_STATUS
R_DnssrvEnumRecords(
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, unique, string] LPCSTR pszNodeName,
[in, unique, string] LPCSTR pszStartChild,
[in] WORD wRecordType,
[in] DWORD fSelectFlag,
[in, unique, string] LPCSTR pszFilterStart,
[in, unique, string] LPCSTR pszFilterStop,
[out] PDWORD pdwBufferLength,
[out, size_is(, *pdwBufferLength)] PBYTE * ppBuffer
);
DNS_STATUS
R_DnssrvUpdateRecord(
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, string] LPCSTR pszNodeName,
[in, unique] PDNS_RPC_RECORD pAddRecord,
[in, unique] PDNS_RPC_RECORD pDeleteRecord
);
DNS_STATUS
R_DnssrvOperation2(
[in] DWORD dwClientVersion,
[in] DWORD dwSettingFlags,
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in] DWORD dwContext,
[in, unique, string] LPCSTR pszOperation,
[in] DWORD dwTypeId,
[in, switch_is(dwTypeId)] DNSSRV_RPC_UNION pData
);
DNS_STATUS
R_DnssrvQuery2(
[in] DWORD dwClientVersion,
[in] DWORD dwSettingFlags,
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, unique, string] LPCSTR pszOperation,
[out] PDWORD pdwTypeId,
[out, switch_is(*pdwTypeId)] DNSSRV_RPC_UNION * ppData
);
DNS_STATUS
R_DnssrvComplexOperation2(
[in] DWORD dwClientVersion,
[in] DWORD dwSettingFlags,
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, unique, string] LPCSTR pszOperation,
[in] DWORD dwTypeIn,
[in, switch_is(dwTypeIn)] DNSSRV_RPC_UNION pDataIn,
[out] PDWORD pdwTypeOut,
[out, switch_is(*pdwTypeOut)] DNSSRV_RPC_UNION * ppDataOut
);
DNS_STATUS
R_DnssrvEnumRecords2(
[in] DWORD dwClientVersion,
[in] DWORD dwSettingFlags,
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, unique, string] LPCSTR pszNodeName,
[in, unique, string] LPCSTR pszStartChild,
[in] WORD wRecordType,
[in] DWORD fSelectFlag,
[in, unique, string] LPCSTR pszFilterStart,
[in, unique, string] LPCSTR pszFilterStop,
[out] PDWORD pdwBufferLength,
[out, size_is(, *pdwBufferLength)] PBYTE * ppBuffer
);
DNS_STATUS
R_DnssrvUpdateRecord2(
[in] DWORD dwClientVersion,
[in] DWORD dwSettingFlags,
[in, unique, string] DNSSRV_RPC_HANDLE hServer,
[in, unique, string] LPCSTR pszZone,
[in, string] LPCSTR pszNodeName,
[in, unique] PDNS_RPC_RECORD pAddRecord,
[in, unique] PDNS_RPC_RECORD pDeleteRecord
);
}
//
// End of dnssrv.idl
//