Leaked source code of windows server 2003
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.
 
 
 
 
 
 

470 lines
11 KiB

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
info.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)
MingLu 21-Nov-1999 -- Added APIs for optimized W3 performance counters
--*/
//
// Interface Attributes
//
[
uuid(82ad4280-036b-11cf-972c-00aa006887b0),
version(2.0),
#ifdef __midl
ms_union,
#endif // __midl
pointer_default(unique)
]
//
// Interface Keyword
//
interface inetinfo
//
// 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;
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
);
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
);
#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
}