mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
607 lines
13 KiB
607 lines
13 KiB
/*++
|
|
|
|
Copyright (c) 1999 Microsoft Corporation
|
|
|
|
|
|
Module Name:
|
|
|
|
spd.idl
|
|
|
|
Abstract:
|
|
|
|
IDL file for IPSec WINAPIs.
|
|
|
|
Author:
|
|
|
|
krishnaG 21-September-1999
|
|
|
|
Environment:
|
|
|
|
User Level: Win32
|
|
|
|
Revision History:
|
|
|
|
abhisheV 29-September-1999 Added the structures.
|
|
Added the rpc prototypes.
|
|
|
|
--*/
|
|
|
|
|
|
[
|
|
uuid(12345678-1234-ABCD-EF00-0123456789AB),
|
|
version(1.0),
|
|
#ifdef __midl
|
|
ms_union,
|
|
#endif // __midl
|
|
endpoint("mscn_np:[\\pipe\\ipsec]"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface winipsec
|
|
{
|
|
|
|
import "import.idl";
|
|
|
|
typedef [context_handle] void * TRANSPORTFILTER_HANDLE;
|
|
|
|
typedef [context_handle] void * TUNNELFILTER_HANDLE;
|
|
|
|
typedef [context_handle] void * MMFILTER_HANDLE;
|
|
|
|
typedef [context_handle] void * IKENEGOTIATION_HANDLE;
|
|
|
|
typedef [context_handle] void * IKENOTIFY_HANDLE;
|
|
|
|
typedef [handle] wchar_t * STRING_HANDLE;
|
|
|
|
|
|
typedef struct _TRANSPORT_FILTER_CONTAINER {
|
|
|
|
DWORD dwNumFilters;
|
|
[size_is(dwNumFilters)] PTRANSPORT_FILTER pTransportFilters;
|
|
|
|
} TRANSPORT_FILTER_CONTAINER, * PTRANSPORT_FILTER_CONTAINER;
|
|
|
|
|
|
typedef struct _TUNNEL_FILTER_CONTAINER {
|
|
|
|
DWORD dwNumFilters;
|
|
[size_is(dwNumFilters)] PTUNNEL_FILTER pTunnelFilters;
|
|
|
|
} TUNNEL_FILTER_CONTAINER, * PTUNNEL_FILTER_CONTAINER;
|
|
|
|
|
|
typedef struct _IPSEC_QM_POLICY_CONTAINER {
|
|
|
|
DWORD dwNumPolicies;
|
|
[size_is(dwNumPolicies)] PIPSEC_QM_POLICY pPolicies;
|
|
|
|
} IPSEC_QM_POLICY_CONTAINER, * PIPSEC_QM_POLICY_CONTAINER;
|
|
|
|
|
|
typedef struct _IPSEC_MM_POLICY_CONTAINER {
|
|
|
|
DWORD dwNumPolicies;
|
|
[size_is(dwNumPolicies)] PIPSEC_MM_POLICY pPolicies;
|
|
|
|
} IPSEC_MM_POLICY_CONTAINER, * PIPSEC_MM_POLICY_CONTAINER;
|
|
|
|
|
|
typedef struct _MM_AUTH_METHODS_CONTAINER {
|
|
|
|
DWORD dwNumAuthMethods;
|
|
[size_is(dwNumAuthMethods)] PMM_AUTH_METHODS pMMAuthMethods;
|
|
|
|
} MM_AUTH_METHODS_CONTAINER, * PMM_AUTH_METHODS_CONTAINER;
|
|
|
|
|
|
typedef struct _MM_FILTER_CONTAINER {
|
|
|
|
DWORD dwNumFilters;
|
|
[size_is(dwNumFilters)] PMM_FILTER pMMFilters;
|
|
|
|
} MM_FILTER_CONTAINER, * PMM_FILTER_CONTAINER;
|
|
|
|
|
|
typedef struct _MM_SA_CONTAINER {
|
|
|
|
DWORD dwNumMMSAs;
|
|
[size_is(dwNumMMSAs)] PIPSEC_MM_SA pMMSAs;
|
|
|
|
} MM_SA_CONTAINER, * PMM_SA_CONTAINER;
|
|
|
|
|
|
typedef struct _IPSEC_STATISTICS_CONTAINER {
|
|
|
|
DWORD dwNumIpsecStats;
|
|
[size_is(dwNumIpsecStats)] PIPSEC_STATISTICS pIpsecStatistics;
|
|
|
|
} IPSEC_STATISTICS_CONTAINER, * PIPSEC_STATISTICS_CONTAINER;
|
|
|
|
|
|
typedef struct _QM_SA_CONTAINER {
|
|
|
|
DWORD dwNumQMSAs;
|
|
[size_is(dwNumQMSAs)] PIPSEC_QM_SA pQMSAs;
|
|
|
|
} QM_SA_CONTAINER, * PQM_SA_CONTAINER;
|
|
|
|
|
|
typedef struct _QM_FILTER_CONTAINER {
|
|
|
|
DWORD dwNumFilters;
|
|
[size_is(dwNumFilters)] PIPSEC_QM_FILTER pQMFilters;
|
|
|
|
} QM_FILTER_CONTAINER, * PQM_FILTER_CONTAINER;
|
|
|
|
|
|
typedef struct _IPSEC_INTERFACE_CONTAINER {
|
|
|
|
DWORD dwNumInterfaces;
|
|
[size_is(dwNumInterfaces)] PIPSEC_INTERFACE_INFO pIpsecInterfaces;
|
|
|
|
} IPSEC_INTERFACE_CONTAINER, * PIPSEC_INTERFACE_CONTAINER;
|
|
|
|
|
|
DWORD
|
|
RpcAddTransportFilter(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwFlags,
|
|
[in] PTRANSPORT_FILTER_CONTAINER pFilterContainer,
|
|
[out] TRANSPORTFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteTransportFilter(
|
|
[in, out] TRANSPORTFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumTransportFilters(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwLevel,
|
|
[in] GUID gGenericFilterID,
|
|
[in, out] PTRANSPORT_FILTER_CONTAINER * ppFilterContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcSetTransportFilter(
|
|
[in] TRANSPORTFILTER_HANDLE hFilter,
|
|
[in] PTRANSPORT_FILTER_CONTAINER pFilterContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetTransportFilter(
|
|
[in] TRANSPORTFILTER_HANDLE hFilter,
|
|
[in, out] PTRANSPORT_FILTER_CONTAINER * ppFilterContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcAddQMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwFlags,
|
|
[in] PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteQMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, string, unique] LPWSTR pszPolicyName
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumQMPolicies(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcSetQMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, string, unique] LPWSTR pszPolicyName,
|
|
[in] PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetQMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, string, unique] LPWSTR pszPolicyName,
|
|
[in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcAddMMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwFlags,
|
|
[in] PIPSEC_MM_POLICY_CONTAINER pMMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteMMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, string, unique] LPWSTR pszPolicyName
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumMMPolicies(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcSetMMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, string, unique] LPWSTR pszPolicyName,
|
|
[in] PIPSEC_MM_POLICY_CONTAINER pMMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetMMPolicy(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, string, unique] LPWSTR pszPolicyName,
|
|
[in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcAddMMFilter(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwFlags,
|
|
[in] PMM_FILTER_CONTAINER pMMFilterContainer,
|
|
[out] MMFILTER_HANDLE * phMMFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteMMFilter(
|
|
[in, out] MMFILTER_HANDLE * phMMFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumMMFilters(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwLevel,
|
|
[in] GUID gGenericFilterID,
|
|
[in, out] PMM_FILTER_CONTAINER * ppMMFilterContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcSetMMFilter(
|
|
[in] MMFILTER_HANDLE hMMFilter,
|
|
[in] PMM_FILTER_CONTAINER pMMFilterContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetMMFilter(
|
|
[in] MMFILTER_HANDLE hMMFilter,
|
|
[in, out] PMM_FILTER_CONTAINER * ppMMFilterContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcMatchMMFilter(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PMM_FILTER_CONTAINER pMMFilterContainer,
|
|
[in] DWORD dwFlags,
|
|
[in, out] PMM_FILTER_CONTAINER * ppMMFilterContainer,
|
|
[in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer,
|
|
[in, out] PMM_AUTH_METHODS_CONTAINER * ppMMAuthContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcMatchTransportFilter(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PTRANSPORT_FILTER_CONTAINER pTxFilterContainer,
|
|
[in] DWORD dwFlags,
|
|
[in, out] PTRANSPORT_FILTER_CONTAINER * ppTxFilterContainer,
|
|
[in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetQMPolicyByID(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] GUID gQMPolicyID,
|
|
[in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetMMPolicyByID(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] GUID gMMPolicyID,
|
|
[in, out] PIPSEC_MM_POLICY_CONTAINER * ppMMPolicyContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcAddMMAuthMethods(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwFlags,
|
|
[in] PMM_AUTH_METHODS_CONTAINER pMMAuthContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteMMAuthMethods(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] GUID gMMAuthID
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumMMAuthMethods(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, out] PMM_AUTH_METHODS_CONTAINER * ppMMAuthContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcSetMMAuthMethods(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] GUID gMMAuthID,
|
|
[in] PMM_AUTH_METHODS_CONTAINER pMMAuthContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetMMAuthMethods(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] GUID gMMAuthID,
|
|
[in, out] PMM_AUTH_METHODS_CONTAINER * ppMMAuthContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcInitiateIKENegotiation(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PQM_FILTER_CONTAINER pQMFilterContainer,
|
|
[in] DWORD dwClientProcessId,
|
|
[in] ULONG uhClientEvent,
|
|
[in] DWORD dwFlags,
|
|
[in, out, unique] IKENEGOTIATION_HANDLE * phIKENegotiation
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcQueryIKENegotiationStatus(
|
|
[in] IKENEGOTIATION_HANDLE hIKENegotiation,
|
|
[out, ref] SA_NEGOTIATION_STATUS_INFO * pNegotiationStatus
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcCloseIKENegotiationHandle(
|
|
[in, out] IKENEGOTIATION_HANDLE * phIKENegotiation
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumMMSAs(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PMM_SA_CONTAINER pMMTemplate,
|
|
[in, out] PMM_SA_CONTAINER * ppMMSAContainer,
|
|
[in, out, unique] LPDWORD pdwNumEntries,
|
|
[in, out, unique] LPDWORD pdwTotalMMsAvailable,
|
|
[in, out, unique] LPDWORD pdwEnumHandle,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteMMSAs(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PMM_SA_CONTAINER pMMTemplate,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteQMSAs(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PQM_SA_CONTAINER pQMSAContainer,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcQueryIKEStatistics(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[out, ref] IKE_STATISTICS * pIKEStatistics
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcRegisterIKENotifyClient(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwClientProcessId,
|
|
[in] ULONG uhClientEvent,
|
|
[in] PQM_SA_CONTAINER pQMSATemplateContainer,
|
|
[out] IKENOTIFY_HANDLE *phNotifyHandle,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
|
|
DWORD RpcQueryNotifyData(
|
|
[in] IKENOTIFY_HANDLE uhNotifyHandle,
|
|
[in,out] PDWORD pdwNumEntries,
|
|
[in,out] PQM_SA_CONTAINER *ppQMSAContainer,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
|
|
DWORD RpcCloseNotifyHandle(
|
|
[in, out] IKENOTIFY_HANDLE *phHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcQueryIPSecStatistics(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in, out] PIPSEC_STATISTICS_CONTAINER * ppIpsecStatsContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumQMSAs(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PQM_SA_CONTAINER pQMSATempContainer,
|
|
[in, out] PQM_SA_CONTAINER * ppQMSAContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwNumTotalQMSAs,
|
|
[in, out, unique] LPDWORD pdwResumeHandle,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcAddTunnelFilter(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwFlags,
|
|
[in] PTUNNEL_FILTER_CONTAINER pFilterContainer,
|
|
[out] TUNNELFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcDeleteTunnelFilter(
|
|
[in, out] TUNNELFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumTunnelFilters(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] DWORD dwLevel,
|
|
[in] GUID gGenericFilterID,
|
|
[in, out] PTUNNEL_FILTER_CONTAINER * ppFilterContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcSetTunnelFilter(
|
|
[in] TUNNELFILTER_HANDLE hFilter,
|
|
[in] PTUNNEL_FILTER_CONTAINER pFilterContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcGetTunnelFilter(
|
|
[in] TUNNELFILTER_HANDLE hFilter,
|
|
[in, out] PTUNNEL_FILTER_CONTAINER * ppFilterContainer
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcMatchTunnelFilter(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PTUNNEL_FILTER_CONTAINER pTnFilterContainer,
|
|
[in] DWORD dwFlags,
|
|
[in, out] PTUNNEL_FILTER_CONTAINER * ppTnFilterContainer,
|
|
[in, out] PIPSEC_QM_POLICY_CONTAINER * ppQMPolicyContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwResumeHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcOpenMMFilterHandle(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PMM_FILTER_CONTAINER pMMFilterContainer,
|
|
[out] MMFILTER_HANDLE * phMMFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcCloseMMFilterHandle(
|
|
[in, out] MMFILTER_HANDLE * phMMFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcOpenTransportFilterHandle(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PTRANSPORT_FILTER_CONTAINER pFilterContainer,
|
|
[out] TRANSPORTFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcCloseTransportFilterHandle(
|
|
[in, out] TRANSPORTFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcOpenTunnelFilterHandle(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PTUNNEL_FILTER_CONTAINER pFilterContainer,
|
|
[out] TUNNELFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcCloseTunnelFilterHandle(
|
|
[in, out] TUNNELFILTER_HANDLE * phFilter
|
|
);
|
|
|
|
|
|
DWORD
|
|
RpcEnumIpsecInterfaces(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in] PIPSEC_INTERFACE_CONTAINER pIpsecIfTempContainer,
|
|
[in, out] PIPSEC_INTERFACE_CONTAINER * ppIpsecIfContainer,
|
|
[in] DWORD dwPreferredNumEntries,
|
|
[in, out, unique] LPDWORD pdwNumTotalInterfaces,
|
|
[in, out, unique] LPDWORD pdwResumeHandle,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
DWORD RpcIPSecAddSA(
|
|
[in, string, unique] STRING_HANDLE pServerName,
|
|
[in,out] PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer,
|
|
[in] PQM_FILTER_CONTAINER pQMFilterContainer,
|
|
[in,out] DWORD *uhLarvalContext,
|
|
[in] DWORD dwInboundKeyMatLen,
|
|
[in, size_is(dwInboundKeyMatLen)] BYTE *pInboundKeyMat,
|
|
[in] DWORD dwOutboundKeyMatLen,
|
|
[in, size_is(dwOutboundKeyMatLen)] BYTE *pOutboundKeyMat,
|
|
[in, size_is(sizeof(IKE_COOKIE_PAIR))] BYTE *pContextInfo,
|
|
DWORD dwFlags);
|
|
}
|
|
|