mirror of https://github.com/UMSKT/xpmgr.git
306 lines
8.4 KiB
Plaintext
306 lines
8.4 KiB
Plaintext
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992-2004.
|
|
//
|
|
// NDAttrib.idl : IDL source for Network Diagnostics Helper Attribute
|
|
// and Repair Info structures.
|
|
//
|
|
// This file will be processed by the MIDL tool to
|
|
// produce the .h file for C++ COM client.
|
|
// type library and marshaling code are registered by the .NET serviced component
|
|
//
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
cpp_quote("//+--------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1992-2004.")
|
|
cpp_quote("//")
|
|
cpp_quote("//---------------------------------------------------------------------------")
|
|
|
|
cpp_quote("#if ( _MSC_VER >= 800 )")
|
|
cpp_quote("#pragma warning(disable:4201)")
|
|
cpp_quote("#endif")
|
|
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "unknwn.idl";
|
|
import "wtypes.idl";
|
|
#endif
|
|
|
|
cpp_quote("#define NDF_ERROR_START (0xF900)")
|
|
|
|
cpp_quote("//error code deprecated")
|
|
cpp_quote("#define NDF_E_LENGTH_EXCEEDED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START)")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageId: NDF_E_NOHELPERCLASS")
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageText:")
|
|
cpp_quote("//")
|
|
cpp_quote("// Helper Class parameter not specified to NdfCreateIncident API.")
|
|
cpp_quote("//")
|
|
cpp_quote("#define NDF_E_NOHELPERCLASS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 1)")
|
|
|
|
cpp_quote("//error code deprecated")
|
|
cpp_quote("#define NDF_E_CANCELLED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 2)")
|
|
|
|
cpp_quote("//error code deprecated")
|
|
cpp_quote("#define NDF_E_DISABLED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 4)")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageId: NDF_E_BAD_PARAM")
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageText:")
|
|
cpp_quote("//")
|
|
cpp_quote("// Inavlid parameter.")
|
|
cpp_quote("//")
|
|
cpp_quote("#define NDF_E_BAD_PARAM MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 5)")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageId: NDF_E_VALIDATION")
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageText:")
|
|
cpp_quote("//")
|
|
cpp_quote("// Diagnosis failed to resolve the problems.")
|
|
cpp_quote("//")
|
|
cpp_quote("#define NDF_E_VALIDATION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 6)")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageId: NDF_E_UNKNOWN")
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageText:")
|
|
cpp_quote("//")
|
|
cpp_quote("// Diagnostics session result is unkown, the diagnostics phase did not complete.")
|
|
cpp_quote("//")
|
|
cpp_quote("#define NDF_E_UNKNOWN MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 7)")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageId: NDF_E_PROBLEM_PRESENT")
|
|
cpp_quote("//")
|
|
cpp_quote("// MessageText:")
|
|
cpp_quote("//")
|
|
cpp_quote("// Diagnostics session finished with problems still present.")
|
|
cpp_quote("//")
|
|
cpp_quote("#define NDF_E_PROBLEM_PRESENT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WINDOWS, NDF_ERROR_START + 8)")
|
|
|
|
// Allowed helper attribute types
|
|
typedef [v1_enum] enum tagATTRIBUTE_TYPE
|
|
{
|
|
AT_INVALID = 0,
|
|
AT_BOOLEAN,
|
|
AT_INT8,
|
|
AT_UINT8,
|
|
AT_INT16,
|
|
AT_UINT16,
|
|
AT_INT32,
|
|
AT_UINT32,
|
|
AT_INT64,
|
|
AT_UINT64,
|
|
AT_STRING,
|
|
AT_GUID,
|
|
AT_LIFE_TIME,
|
|
AT_SOCKADDR,
|
|
AT_OCTET_STRING
|
|
} ATTRIBUTE_TYPE;
|
|
|
|
typedef struct tagOCTET_STRING
|
|
{
|
|
DWORD dwLength;
|
|
[size_is(dwLength)]BYTE *lpValue;
|
|
} OCTET_STRING, *POCTET_STRING;
|
|
|
|
typedef struct tagLIFE_TIME
|
|
{
|
|
FILETIME startTime;
|
|
FILETIME endTime;
|
|
} LIFE_TIME, *PLIFE_TIME;
|
|
|
|
typedef struct tagSOCK_ADDR
|
|
{
|
|
USHORT family;
|
|
CHAR data[126]; // _SS_MAXSIZE - sizeof(USHORT)
|
|
} DIAG_SOCKADDR, *PDIAG_SOCK_ADDR;
|
|
|
|
#define MAX_HELPER_ATTRIBUTE_NAME_SIZE 512
|
|
#define MAX_HELPER_ATTRIBUTE_PWSTR_SIZE 4096
|
|
|
|
// Attribute value structure.
|
|
typedef struct tagHELPER_ATTRIBUTE
|
|
{
|
|
|
|
|
|
// name
|
|
[max_is(MAX_HELPER_ATTRIBUTE_NAME_SIZE), string] LPWSTR pwszName;
|
|
// value
|
|
ATTRIBUTE_TYPE type;
|
|
[switch_type(ATTRIBUTE_TYPE), switch_is(type) ] union
|
|
{
|
|
[ case(AT_BOOLEAN) ]
|
|
BOOL Boolean;
|
|
|
|
[ case(AT_INT8) ]
|
|
char Char;
|
|
[ case(AT_UINT8) ]
|
|
byte Byte;
|
|
|
|
[ case(AT_INT16) ]
|
|
short Short;
|
|
[ case(AT_UINT16) ]
|
|
WORD Word;
|
|
|
|
[ case(AT_INT32) ]
|
|
int Int;
|
|
[ case(AT_UINT32) ]
|
|
DWORD DWord;
|
|
|
|
[ case(AT_INT64) ]
|
|
LONGLONG Int64;
|
|
[ case(AT_UINT64) ]
|
|
ULONGLONG UInt64;
|
|
|
|
[ case(AT_STRING) ]
|
|
[max_is(MAX_HELPER_ATTRIBUTE_PWSTR_SIZE), string] LPWSTR PWStr;
|
|
|
|
[ case(AT_GUID) ]
|
|
GUID Guid;
|
|
|
|
[ case(AT_LIFE_TIME) ]
|
|
LIFE_TIME LifeTime;
|
|
|
|
[ case(AT_SOCKADDR) ]
|
|
DIAG_SOCKADDR Address;
|
|
|
|
[ case(AT_OCTET_STRING) ]
|
|
OCTET_STRING OctetString;
|
|
};
|
|
} HELPER_ATTRIBUTE, *PHELPER_ATTRIBUTE;
|
|
|
|
//
|
|
// The layout of flags in RepairInfo structure
|
|
//
|
|
typedef [v1_enum] enum tagREPAIR_SCOPE
|
|
{
|
|
RS_SYSTEM = 0,
|
|
RS_USER,
|
|
RS_APPLICATION,
|
|
RS_PROCESS
|
|
}REPAIR_SCOPE, *PREPAIR_SCOPE;
|
|
|
|
typedef [v1_enum] enum {
|
|
RR_NOROLLBACK = 0,
|
|
RR_ROLLBACK,
|
|
RR_NORISK
|
|
} REPAIR_RISK;
|
|
|
|
typedef [v1_enum] enum {
|
|
UIT_INVALID = 0,
|
|
UIT_NONE = 1,
|
|
UIT_SHELL_COMMAND,
|
|
UIT_HELP_PANE,
|
|
UIT_DUI
|
|
} UI_INFO_TYPE;
|
|
|
|
typedef struct tagShellCommandInfo
|
|
{
|
|
[string] LPWSTR pwszOperation;
|
|
[string] LPWSTR pwszFile;
|
|
[string] LPWSTR pwszParameters;
|
|
[string] LPWSTR pwszDirectory;
|
|
ULONG nShowCmd;
|
|
} ShellCommandInfo, *PShellCommandInfo;
|
|
|
|
typedef struct tagUiInfo
|
|
{
|
|
UI_INFO_TYPE type;
|
|
[switch_type(UI_INFO_TYPE), switch_is(type) ] union
|
|
{
|
|
[ case(UIT_NONE) ]
|
|
LPWSTR pwzNull;
|
|
|
|
[ case(UIT_SHELL_COMMAND) ]
|
|
ShellCommandInfo ShellInfo;
|
|
|
|
[ case(UIT_HELP_PANE) ]
|
|
LPWSTR pwzHelpUrl;
|
|
|
|
[ case(UIT_DUI) ]
|
|
LPWSTR pwzDui;
|
|
} ;
|
|
} UiInfo, *PUiInfo;
|
|
|
|
cpp_quote("#define RF_WORKAROUND 0x20000000")
|
|
cpp_quote("#define RF_USER_ACTION 0x10000000")
|
|
cpp_quote("#define RF_USER_CONFIRMATION 0x8000000")
|
|
cpp_quote("#define RF_INFORMATION_ONLY 0x2000000")
|
|
cpp_quote("//RF_UI_ONLY is deprecated")
|
|
cpp_quote("#define RF_UI_ONLY 0x1000000")
|
|
cpp_quote("#define RF_SHOW_EVENTS 0x800000")
|
|
cpp_quote("#define RF_VALIDATE_HELPTOPIC 0x400000")
|
|
cpp_quote("#define RF_REPRO 0x200000")
|
|
cpp_quote("#define RF_CONTACT_ADMIN 0x20000")
|
|
cpp_quote("#define RF_RESERVED 0x40000000")
|
|
cpp_quote("#define RF_RESERVED_CA 0x80000000")
|
|
cpp_quote("#define RF_RESERVED_LNI 0x10000")
|
|
|
|
typedef struct tagRepairInfo
|
|
{
|
|
GUID guid;
|
|
[string] LPWSTR pwszClassName;
|
|
[string] LPWSTR pwszDescription;
|
|
DWORD sidType;
|
|
long cost;
|
|
ULONG flags;
|
|
REPAIR_SCOPE scope;
|
|
REPAIR_RISK risk;
|
|
UiInfo UiInfo;
|
|
int rootCauseIndex;
|
|
} RepairInfo, *PRepairInfo;
|
|
|
|
typedef struct tagRepairInfoEx
|
|
{
|
|
RepairInfo repair;
|
|
USHORT repairRank;
|
|
} RepairInfoEx, *PRepairInfoEx;
|
|
|
|
cpp_quote("#define RCF_ISLEAF 0x1")
|
|
cpp_quote("#define RCF_ISCONFIRMED 0x2")
|
|
cpp_quote("#define RCF_ISTHIRDPARTY 0x4")
|
|
|
|
typedef struct tagRootCauseInfo
|
|
{
|
|
[string] LPWSTR pwszDescription;
|
|
GUID rootCauseID;
|
|
DWORD rootCauseFlags;
|
|
GUID networkInterfaceID;
|
|
[size_is(repairCount)] RepairInfoEx *pRepairs;
|
|
USHORT repairCount;
|
|
} RootCauseInfo, *PRootCauseInfo;
|
|
|
|
cpp_quote("EXTERN_C HRESULT EncodeHelperAttribute(HELPER_ATTRIBUTE *attribute, BYTE **buf, size_t *bufSize);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT DecodeHelperAttribute(BYTE *buf, size_t bufSize, HELPER_ATTRIBUTE *attribute);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT EncodeRepairInfo(RepairInfo *info, BYTE **buf, size_t *bufSize);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT DecodeRepairInfo(BYTE *buf, size_t bufSize, RepairInfo *info);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT EncodeRepairInfoEx(RepairInfoEx *info, BYTE **buf, size_t *bufSize);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT DecodeRepairInfoEx(BYTE *buf, size_t bufSize, RepairInfoEx *info);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT EncodeRootCauseInfo(RootCauseInfo *info, BYTE **buf, size_t *bufSize);")
|
|
|
|
cpp_quote("EXTERN_C HRESULT DecodeRootCauseInfo(BYTE *buf, size_t bufSize, RootCauseInfo *info);")
|
|
|
|
cpp_quote("EXTERN_C GUID NetDiagModuleId;")
|
|
|
|
cpp_quote("EXTERN_C GUID NetDiagScenarioId;")
|
|
|