2025-04-27 07:49:33 -04:00

472 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
knfo.idl
Abstract:
Contains the Internet Information Services admin RPC spec.
APIs associated with the common TCPSvcs dll.
Also contains the RPC specific data structures for these API.
Author:
Madan Appiah (Madana) 10-Oct-1995
Environment:
User Mode - Win32 - MIDL
Revision History:
MuraliK 12-Oct-1995 -- Tailored naming to suit conventions (Inet)
--*/
//
// Interface Attributes
//
[
uuid(97f83d5c-1994-11d1-a90d-00c04fb960f8),
version(2.0),
#ifdef __midl
ms_union,
#endif // __midl
pointer_default(unique)
]
//
// Interface Keyword
//
interface knetinfo
//
// Interface Body
//
{
import "imports.idl";
#include <lmcons.h>
//
// ---------------------------------------------------------------//
//
typedef [handle] LPWSTR INET_INFO_IMPERSONATE_HANDLE;
typedef [handle] LPWSTR INET_INFO_IDENTIFY_HANDLE;
//
// Common TCP Services APIs
//
typedef struct _INET_INFO_CAPABILITIES_STRUCT {
DWORD CapVersion; // Version number of this structure
DWORD ProductType; // Product type
DWORD MajorVersion; // Major version number
DWORD MinorVersion; // Minor Version number
DWORD BuildNumber; // Build number
DWORD NumCapFlags; // Number of capabilities structures
[size_is(NumCapFlags)] LPINET_INFO_CAP_FLAGS CapFlags;
} INET_INFO_CAPABILITIES_STRUCT, * LPINET_INFO_CAPABILITIES_STRUCT;
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoGetVersion(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwReserved,
[out] DWORD *pdwVersion
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoGetAdminInformation(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask,
[out] LPINET_INFO_CONFIG_INFO *ppConfig
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoGetSites(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask,
[out] LPINET_INFO_SITE_LIST * ppSites
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoSetAdminInformation(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask,
[in, ref] INET_INFO_CONFIG_INFO *pConfig
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoGetGlobalAdminInformation(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask,
[out] LPINET_INFO_GLOBAL_CONFIG_INFO *ppConfig
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoSetGlobalAdminInformation(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask,
[in, ref] INET_INFO_GLOBAL_CONFIG_INFO * pConfig
);
typedef [switch_type(unsigned long)] union _INET_INFO_STATISTICS_INFO
{
[case(0)]
LPINET_INFO_STATISTICS_0 InetStats0;
[default]
;
} INET_INFO_STATISTICS_INFO, *LPINET_INFO_STATISTICS_INFO;
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoQueryStatistics(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD Level,
[in] DWORD dwServerMask,
[out, switch_is(Level)] LPINET_INFO_STATISTICS_INFO StatsInfo
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoClearStatistics(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoFlushMemoryCache(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServerMask
);
NET_API_STATUS
NET_API_FUNCTION
R_InetInfoGetServerCapabilities(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwReserved,
[out] LPINET_INFO_CAPABILITIES_STRUCT *ppCap
);
//
// IIS 4.0
//
typedef [switch_type(unsigned long)] union _W3_STATISTICS_UNION {
[case(0)]
LPW3_STATISTICS_1 StatInfo1;
[default]
;
} W3_STATISTICS_STRUCT, *LPW3_STATISTICS_STRUCT;
// WinSE 5571
NET_API_STATUS
NET_API_FUNCTION
R_InitW3CounterStructure(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[out, ref] LPDWORD lpcbTotalRequired
);
NET_API_STATUS
NET_API_FUNCTION
R_CollectW3PerfData(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in, string] LPWSTR lpValueName,
[in, out, size_is(*lpcbTotalBytes)] LPBYTE lppData,
[in, out, ref] LPDWORD lpcbTotalBytes,
[out, ref] LPDWORD lpNumObjectTypes
);
NET_API_STATUS
NET_API_FUNCTION
R_W3QueryStatistics2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[in] DWORD dwReserved,
[out,switch_is(dwLevel)] LPW3_STATISTICS_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_W3ClearStatistics2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwInstance
);
typedef [switch_type(unsigned long)] union _FTP_STATISTICS_UNION {
[case(0)]
LPFTP_STATISTICS_0 StatInfo0;
[default]
;
} FTP_STATISTICS_STRUCT, *LPFTP_STATISTICS_STRUCT;
NET_API_STATUS
NET_API_FUNCTION
R_FtpQueryStatistics2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[in] DWORD dwReserved,
[out,switch_is(dwLevel)] LPFTP_STATISTICS_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_FtpClearStatistics2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwInstance
);
//
// User info
//
typedef struct _IIS_USER_INFO_1_CONTAINER {
DWORD EntriesRead;
[size_is(EntriesRead)] LPIIS_USER_INFO_1 Buffer;
} IIS_USER_INFO_1_CONTAINER, *LPIIS_USER_INFO_1_CONTAINER;
typedef struct _IIS_USER_ENUM_STRUCT {
DWORD Level;
[switch_is(Level)] union _USER_ENUM_UNION {
[case(1)]
LPIIS_USER_INFO_1_CONTAINER Level1;
[default]
;
} ConfigInfo;
} IIS_USER_ENUM_STRUCT, *LPIIS_USER_ENUM_STRUCT;
NET_API_STATUS
NET_API_FUNCTION
R_IISEnumerateUsers(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServiceId,
[in] DWORD dwInstance,
[in,out] LPIIS_USER_ENUM_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_IISDisconnectUser(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServiceId,
[in] DWORD dwInstance,
[in] DWORD dwIdUser
);
#if 0 // only used for K2 Alpha
typedef [switch_type(unsigned long)] union _INSTANCE_INFO_UNION {
[case(1)]
LPIIS_INSTANCE_INFO_1 ConfigInfo1;
[case(2)]
LPIIS_INSTANCE_INFO_2 ConfigInfo2;
[default]
;
} INSTANCE_INFO_STRUCT, *LPINSTANCE_INFO_STRUCT;
//
// User info
//
typedef struct _IIS_USER_INFO_1_CONTAINER {
DWORD EntriesRead;
[size_is(EntriesRead)] LPIIS_USER_INFO_1 Buffer;
} IIS_USER_INFO_1_CONTAINER, *LPIIS_USER_INFO_1_CONTAINER;
typedef struct _IIS_USER_ENUM_STRUCT {
DWORD Level;
[switch_is(Level)] union _USER_ENUM_UNION {
[case(1)]
LPIIS_USER_INFO_1_CONTAINER Level1;
[default]
;
} ConfigInfo;
} IIS_USER_ENUM_STRUCT, *LPIIS_USER_ENUM_STRUCT;
//
//
// Common APIs
//
NET_API_STATUS
NET_API_FUNCTION
R_IISGetAdminInformation(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwServiceId,
[in] DWORD dwInstance,
[out,switch_is(dwLevel)] LPINSTANCE_INFO_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_IISSetAdminInformation(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwServiceId,
[in] DWORD dwInstance,
[in, switch_is(dwLevel)] LPINSTANCE_INFO_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_IISEnumerateUsers(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServiceId,
[in] DWORD dwInstance,
[in,out] LPIIS_USER_ENUM_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_IISDisconnectUser(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwServiceId,
[in] DWORD dwInstance,
[in] DWORD dwIdUser
);
//
// W3
//
typedef [switch_type(unsigned long)] union _W3_CONFIG_INFO_UNION {
[case(1)]
LPW3_CONFIG_INFO_1 ConfigInfo1;
[default]
;
} W3_CONFIG_INFO_STRUCT, *LPW3_CONFIG_INFO_STRUCT;
NET_API_STATUS
NET_API_FUNCTION
R_W3GetAdminInformation2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[out,switch_is(dwLevel)] LPW3_CONFIG_INFO_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_W3SetAdminInformation2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[in, switch_is(dwLevel)] LPW3_CONFIG_INFO_STRUCT InfoStruct
);
//
// FTP
//
typedef [switch_type(unsigned long)] union _FTP_CONFIG_INFO_UNION {
[case(1)]
LPFTP_CONFIG_INFO_1 ConfigInfo1;
[default]
;
} FTP_CONFIG_INFO_STRUCT, *LPFTP_CONFIG_INFO_STRUCT;
NET_API_STATUS
NET_API_FUNCTION
R_FtpGetAdminInformation2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[out,switch_is(dwLevel)] LPFTP_CONFIG_INFO_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_FtpSetAdminInformation2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[in, switch_is(dwLevel)] LPFTP_CONFIG_INFO_STRUCT InfoStruct
);
//
// Gopher
//
typedef [switch_type(unsigned long)] union _GOPHERD_CONFIG_INFO_UNION {
[case(1)]
LPGOPHERD_CONFIG_INFO_1 ConfigInfo1;
[default]
;
} GOPHERD_CONFIG_INFO_STRUCT, *LPGOPHERD_CONFIG_INFO_STRUCT;
typedef [switch_type(unsigned long)] union _GOPHERD_STATISTICS_UNION {
[case(0)]
LPGOPHERD_STATISTICS_0 StatInfo0;
[default]
;
} GOPHERD_STATISTICS_STRUCT, *LPGOPHERD_STATISTICS_STRUCT;
NET_API_STATUS
NET_API_FUNCTION
R_GdGetAdminInformation2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[out,switch_is(dwLevel)] LPGOPHERD_CONFIG_INFO_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_GdSetAdminInformation2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[in, switch_is(dwLevel)] LPGOPHERD_CONFIG_INFO_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_GdQueryStatistics2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwLevel,
[in] DWORD dwInstance,
[in] DWORD dwReserved,
[out,switch_is(dwLevel)] LPGOPHERD_STATISTICS_STRUCT InfoStruct
);
NET_API_STATUS
NET_API_FUNCTION
R_GdClearStatistics2(
[in, string, unique] INET_INFO_IMPERSONATE_HANDLE pszServer,
[in] DWORD dwInstance
);
#endif //0
}