windows-nt/Source/XPSP1/NT/public/ddk/inc/netcfgx.idl
2020-09-26 16:20:57 +08:00

538 lines
16 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: netcfgx.idl
//
//----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 800 )")
cpp_quote("#pragma warning(disable:4201)")
cpp_quote("#endif")
#ifndef DO_NO_IMPORTS
import "unknwn.idl";
import "wtypes.idl";
import "prsht.idl";
#endif
cpp_quote("")
cpp_quote("EXTERN_C const CLSID CLSID_CNetCfg;")
cpp_quote("")
cpp_quote("#define NETCFG_E_ALREADY_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA020)")
cpp_quote("#define NETCFG_E_NOT_INITIALIZED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA021)")
cpp_quote("#define NETCFG_E_IN_USE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA022)")
cpp_quote("#define NETCFG_E_NO_WRITE_LOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA024)")
cpp_quote("#define NETCFG_E_NEED_REBOOT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA025)")
cpp_quote("#define NETCFG_E_ACTIVE_RAS_CONNECTIONS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA026)")
// THe network adapter does not exists in the system (Eisa and Mca)
cpp_quote("#define NETCFG_E_ADAPTER_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA027)")
// The component was removed and cannot be added until the system is rebooted
cpp_quote("#define NETCFG_E_COMPONENT_REMOVED_PENDING_REBOOT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA028)")
cpp_quote("#define NETCFG_S_REBOOT MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA020)")
cpp_quote("#define NETCFG_S_DISABLE_QUERY MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA022)")
cpp_quote("#define NETCFG_S_STILL_REFERENCED MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA023)")
cpp_quote("#define NETCFG_S_CAUSED_SETUP_CHANGE MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA024)")
cpp_quote("#define NETCFG_S_COMMIT_NOW MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0xA025)")
cpp_quote("")
cpp_quote("#define NETCFG_CLIENT_CID_MS_MSClient TEXT(\"ms_msclient\")")
cpp_quote("#define NETCFG_SERVICE_CID_MS_SERVER TEXT(\"ms_server\")")
cpp_quote("#define NETCFG_SERVICE_CID_MS_NETBIOS TEXT(\"ms_netbios\")")
cpp_quote("#define NETCFG_SERVICE_CID_MS_PSCHED TEXT(\"ms_pschedpc\")")
cpp_quote("#define NETCFG_SERVICE_CID_MS_WLBS TEXT(\"ms_wlbs\")")
cpp_quote("#define NETCFG_TRANS_CID_MS_APPLETALK TEXT(\"ms_appletalk\")")
cpp_quote("#define NETCFG_TRANS_CID_MS_NETBEUI TEXT(\"ms_netbeui\")")
cpp_quote("#define NETCFG_TRANS_CID_MS_NETMON TEXT(\"ms_netmon\")")
cpp_quote("#define NETCFG_TRANS_CID_MS_NWIPX TEXT(\"ms_nwipx\")")
cpp_quote("#define NETCFG_TRANS_CID_MS_NWSPX TEXT(\"ms_nwspx\")")
cpp_quote("#define NETCFG_TRANS_CID_MS_TCPIP TEXT(\"ms_tcpip\")")
// Reserved GUIDS for Microsoft use
//
// C0E8AE90-306E-11D1-AACF-00805FC1270E IID_IEnumNetCfgBindingInterface
// C0E8AE91-306E-11D1-AACF-00805FC1270E IID_IEnumNetCfgBindingPath
// C0E8AE92-306E-11D1-AACF-00805FC1270E IID_IEnumNetCfgComponent
// C0E8AE93-306E-11D1-AACF-00805FC1270E IID_INetCfg
// C0E8AE94-306E-11D1-AACF-00805FC1270E IID_INetCfgBindingInterface
// C0E8AE95-306E-11D1-AACF-00805FC1270E IID_INetCfgProperties
// C0E8AE96-306E-11D1-AACF-00805FC1270E IID_INetCfgBindingPath
// C0E8AE97-306E-11D1-AACF-00805FC1270E IID_INetCfgClass
// C0E8AE98-306E-11D1-AACF-00805FC1270E IID_INetCfgSysPrep
// C0E8AE99-306E-11D1-AACF-00805FC1270E IID_INetCfgComponent
// C0E8AE9A-306E-11D1-AACF-00805FC1270E IID_INetCfgComponentSysPrep
// C0E8AE9B-306E-11D1-AACF-00805FC1270E (open)
// C0E8AE9C-306E-11D1-AACF-00805FC1270E (open)
// C0E8AE9D-306E-11D1-AACF-00805FC1270E IID_INetCfgClassSetup
// C0E8AE9E-306E-11D1-AACF-00805FC1270E IID_INetCfgComponentBindings
// C0E8AE9F-306E-11D1-AACF-00805FC1270E IID_INetCfgLock
// C0E8AEA0-306E-11D1-AACF-00805FC1270E
// C0E8AEA1-306E-11D1-AACF-00805FC1270E
// C0E8AEA2-306E-11D1-AACF-00805FC1270E
// C0E8AEA3-306E-11D1-AACF-00805FC1270E
// C0E8AEA4-306E-11D1-AACF-00805FC1270E
// C0E8AEA5-306E-11D1-AACF-00805FC1270E
// C0E8AEA6-306E-11D1-AACF-00805FC1270E
// C0E8AEA7-306E-11D1-AACF-00805FC1270E
// C0E8AEA8-306E-11D1-AACF-00805FC1270E
// C0E8AEA9-306E-11D1-AACF-00805FC1270E
// ...
// C0E8B266-306E-11D1-AACF-00805FC1270E
// C0E8B267-306E-11D1-AACF-00805FC1270E
// C0E8B268-306E-11D1-AACF-00805FC1270E
interface IEnumNetCfgBindingInterface;
interface IEnumNetCfgBindingPath;
interface IEnumNetCfgComponent;
interface INetCfg;
interface INetCfgProperties;
interface INetCfgLock;
interface INetCfgBindingInterface;
interface INetCfgBindingPath;
interface INetCfgComponentBindings;
interface INetCfgBindingPath;
interface INetCfgClass;
interface INetCfgComponent;
interface INetCfgIdentification;
interface INetCfgClassSetup;
//+---------------------------------------------------------------------------
// IEnumNetCfgBindingInterface -
[
local,
object,
uuid(C0E8AE90-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface IEnumNetCfgBindingInterface : IUnknown
{
HRESULT Next (
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
INetCfgBindingInterface** rgelt,
[out] ULONG* pceltFetched);
HRESULT Skip (
[in] ULONG celt);
HRESULT Reset ();
HRESULT Clone (
[out] IEnumNetCfgBindingInterface** ppenum);
};
//+---------------------------------------------------------------------------
// IEnumNetCfgBindingPath -
[
local,
object,
uuid(C0E8AE91-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface IEnumNetCfgBindingPath : IUnknown
{
HRESULT Next (
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
INetCfgBindingPath** rgelt,
[out] ULONG* pceltFetched);
HRESULT Skip (
[in] ULONG celt);
HRESULT Reset ();
HRESULT Clone (
[out] IEnumNetCfgBindingPath** ppenum);
};
//+---------------------------------------------------------------------------
// IEnumNetCfgComponent -
[
local,
object,
uuid(C0E8AE92-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface IEnumNetCfgComponent : IUnknown
{
HRESULT Next (
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
INetCfgComponent** rgelt,
[out] ULONG* pceltFetched);
HRESULT Skip (
[in] ULONG celt);
HRESULT Reset ();
HRESULT Clone (
[out] IEnumNetCfgComponent** ppenum);
};
//+---------------------------------------------------------------------------
// INetCfg -
[
local,
object,
uuid(C0E8AE93-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfg : IUnknown
{
HRESULT Initialize (
[in] PVOID pvReserved);
HRESULT Uninitialize ();
HRESULT Apply ();
HRESULT Cancel ();
HRESULT EnumComponents (
[in] const GUID* pguidClass,
[out] IEnumNetCfgComponent** ppenumComponent);
HRESULT FindComponent (
[in, string] LPCWSTR pszwInfId,
[out] INetCfgComponent** pComponent);
HRESULT QueryNetCfgClass (
[in] const GUID* pguidClass,
[in] REFIID riid,
[out, iid_is(riid)] void** ppvObject);
};
//+---------------------------------------------------------------------------
// INetCfgLock -
[
local,
object,
uuid(C0E8AE9F-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgLock : IUnknown
{
HRESULT AcquireWriteLock (
[in] DWORD cmsTimeout,
[in, string] LPCWSTR pszwClientDescription,
[out, string] LPWSTR* ppszwClientDescription);
HRESULT ReleaseWriteLock ();
HRESULT IsWriteLocked (
[out, string] LPWSTR* ppszwClientDescription);
};
//+---------------------------------------------------------------------------
// INetCfgBindingInterface -
[
local,
object,
uuid(C0E8AE94-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgBindingInterface : IUnknown
{
HRESULT GetName (
[out, string] LPWSTR* ppszwInterfaceName);
HRESULT GetUpperComponent (
[out] INetCfgComponent** ppnccItem);
HRESULT GetLowerComponent (
[out] INetCfgComponent** ppnccItem);
};
//+---------------------------------------------------------------------------
// INetCfgBindingPath -
[
local,
object,
uuid(C0E8AE96-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgBindingPath : IUnknown
{
HRESULT IsSamePathAs (
[in] INetCfgBindingPath* pPath);
HRESULT IsSubPathOf (
[in] INetCfgBindingPath* pPath);
HRESULT IsEnabled ();
HRESULT Enable (
[in] BOOL fEnable);
HRESULT GetPathToken(
[out, string] LPWSTR* ppszwPathToken);
HRESULT GetOwner (
[out] INetCfgComponent** ppComponent);
HRESULT GetDepth (
[out] ULONG* pcInterfaces);
HRESULT EnumBindingInterfaces (
[out] IEnumNetCfgBindingInterface** ppenumInterface);
};
//+---------------------------------------------------------------------------
// INetCfgClass -
[
local,
object,
uuid(C0E8AE97-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgClass : IUnknown
{
HRESULT FindComponent (
[in, string] LPCWSTR pszwInfId,
[out] INetCfgComponent** ppnccItem);
HRESULT EnumComponents (
[out] IEnumNetCfgComponent** ppenumComponent);
};
//+---------------------------------------------------------------------------
// INetCfgClassSetup -
[
local,
object,
uuid(C0E8AE9D-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgClassSetup : IUnknown
{
typedef enum tagOBO_TOKEN_TYPE
{
OBO_USER = 1,
OBO_COMPONENT = 2,
OBO_SOFTWARE = 3,
} OBO_TOKEN_TYPE;
typedef struct tagOBO_TOKEN
{
OBO_TOKEN_TYPE Type;
// Type == OBO_COMPONENT
//
INetCfgComponent* pncc;
// Type == OBO_SOFTWARE
//
LPCWSTR pszwManufacturer;
LPCWSTR pszwProduct;
LPCWSTR pszwDisplayName;
// The following fields must be initialized to zero
// by users of OBO_TOKEN.
//
BOOL fRegistered;
} OBO_TOKEN;
HRESULT SelectAndInstall (
[in] HWND hwndParent,
[in] OBO_TOKEN* pOboToken,
[out] INetCfgComponent** ppnccItem);
HRESULT Install (
[in, string] LPCWSTR pszwInfId,
[in] OBO_TOKEN* pOboToken,
[in] DWORD dwSetupFlags,
[in] DWORD dwUpgradeFromBuildNo,
[in, string] LPCWSTR pszwAnswerFile,
[in, string] LPCWSTR pszwAnswerSections,
[out] INetCfgComponent** ppnccItem);
HRESULT DeInstall (
[in] INetCfgComponent* pComponent,
[in] OBO_TOKEN* pOboToken,
[out] LPWSTR* pmszwRefs);
};
//+---------------------------------------------------------------------------
// INetCfgComponent -
[
local,
object,
uuid(C0E8AE99-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgComponent : IUnknown
{
typedef enum tagCOMPONENT_CHARACTERISTICS
{
NCF_VIRTUAL = 0x00000001,
NCF_SOFTWARE_ENUMERATED = 0x00000002,
NCF_PHYSICAL = 0x00000004,
NCF_HIDDEN = 0x00000008,
NCF_NO_SERVICE = 0x00000010,
NCF_NOT_USER_REMOVABLE = 0x00000020,
NCF_MULTIPORT_INSTANCED_ADAPTER = 0x00000040, // This adapter has separate instances for each port
NCF_HAS_UI = 0x00000080,
NCF_SINGLE_INSTANCE = 0x00000100,
// = 0x00000200, // filter device
NCF_FILTER = 0x00000400, // filter component
NCF_DONTEXPOSELOWER = 0x00001000,
NCF_HIDE_BINDING = 0x00002000, // don't show in binding page
NCF_NDIS_PROTOCOL = 0x00004000, // Needs UNLOAD notifications
// = 0x00008000,
// = 0x00010000, // pnp notifications forced through service controller
NCF_FIXED_BINDING = 0x00020000 // UI ability to change binding is disabled
} COMPONENT_CHARACTERISTICS;
typedef enum tagNCRP_FLAGS
{
NCRP_QUERY_PROPERTY_UI = 0x00000001,
NCRP_SHOW_PROPERTY_UI = 0x00000002
} NCRP_FLAGS;
HRESULT GetDisplayName (
[out, string] LPWSTR* ppszwDisplayName);
HRESULT SetDisplayName (
[in, string] LPCWSTR pszwDisplayName);
HRESULT GetHelpText (
[out, string] LPWSTR* pszwHelpText);
HRESULT GetId (
[out, string] LPWSTR* ppszwId);
HRESULT GetCharacteristics (
[out] LPDWORD pdwCharacteristics);
HRESULT GetInstanceGuid (
[out] GUID* pGuid);
HRESULT GetPnpDevNodeId (
[out, string] LPWSTR* ppszwDevNodeId);
HRESULT GetClassGuid (
[out] GUID* pGuid);
HRESULT GetBindName (
[out, string] LPWSTR* ppszwBindName);
HRESULT GetDeviceStatus (
[out] ULONG* pulStatus);
HRESULT OpenParamKey (
[out] HKEY* phkey);
HRESULT RaisePropertyUi (
[in] HWND hwndParent,
[in] DWORD dwFlags, /* NCRP_FLAGS */
[in] IUnknown* punkContext);
};
//+---------------------------------------------------------------------------
// INetCfgComponentBindings -
[
local,
object,
uuid(C0E8AE9E-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgComponentBindings : IUnknown
{
typedef enum tagSUPPORTS_BINDING_INTERFACE_FLAGS
{
NCF_LOWER = 0x01,
NCF_UPPER = 0x02
} SUPPORTS_BINDING_INTERFACE_FLAGS;
typedef enum tagENUM_BINDING_PATHS_FLAGS
{
EBP_ABOVE = 0x01,
EBP_BELOW = 0x02,
} ENUM_BINDING_PATHS_FLAGS;
HRESULT BindTo (
[in] INetCfgComponent* pnccItem);
HRESULT UnbindFrom (
[in] INetCfgComponent* pnccItem);
HRESULT SupportsBindingInterface (
[in] DWORD dwFlags,
[in] LPCWSTR pszwInterfaceName);
HRESULT IsBoundTo (
[in] INetCfgComponent* pnccItem);
HRESULT IsBindableTo (
[in] INetCfgComponent* pnccItem);
HRESULT EnumBindingPaths (
[in] DWORD dwFlags,
[out] IEnumNetCfgBindingPath** ppIEnum);
HRESULT MoveBefore (
[in] INetCfgBindingPath* pncbItemSrc,
[in] INetCfgBindingPath* pncbItemDest);
HRESULT MoveAfter (
[in] INetCfgBindingPath* pncbItemSrc,
[in] INetCfgBindingPath* pncbItemDest);
};
//+---------------------------------------------------------------------------
// INetCfgSysPrep -
[
local,
object,
uuid(C0E8AE98-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgSysPrep : IUnknown
{
HRESULT HrSetupSetFirstDword(
[in, string] LPCWSTR pwszSection,
[in, string] LPCWSTR pwszKey,
[in] DWORD dwValue);
HRESULT HrSetupSetFirstString(
[in, string] LPCWSTR pwszSection,
[in, string] LPCWSTR pwszKey,
[in, string] LPCWSTR pwszValue);
HRESULT HrSetupSetFirstStringAsBool(
[in, string] LPCWSTR pwszSection,
[in, string] LPCWSTR pwszKey,
[in] BOOL fValue);
HRESULT HrSetupSetFirstMultiSzField(
[in, string] LPCWSTR pwszSection,
[in, string] LPCWSTR pwszKey,
[in] LPCWSTR pmszValue);
};