|
|
#pragma once
#include "diagctx.h"
#include "ncstring.h"
#include "netcon.h"
// The enum constants CMD_SHOW_LANA_DIAG, CMD_SHOW_LANA_PATHS,
// CMD_SET_LANA_NUMBER, and CMD_REWRITE_LANA_INFO are used by lanacfg.exe
// which is published outside Microsoft.
// To keep lanacfg.exe working with new versions of netcfgx.dll, we need
// to make sure these constants do not change. These are sent to a different
// entry point than the previous COMMANDs so overlap is not a problem.
//
enum COMMAND { CMD_SHOW_LANA_DIAG = 17, CMD_SHOW_LANA_PATHS = 19, CMD_SET_LANA_NUMBER = 20, CMD_REWRITE_LANA_INFO = 21, CMD_INVALID = 0, CMD_SHOW_BINDINGS, CMD_SHOW_COMPONENTS, CMD_SHOW_STACK_TABLE, CMD_SHOW_LAN_ADAPTER_PNPIDS, CMD_ADD_COMPONENT, CMD_REMOVE_COMPONENT, CMD_UPDATE_COMPONENT, CMD_REMOVE_REFS, CMD_ENABLE_BINDING, CMD_DISABLE_BINDING, CMD_MOVE_BINDING, CMD_WRITE_BINDINGS, CMD_SET_WANORDER, CMD_FULL_DIAGNOSTIC, CMD_CLEANUP, CMD_ADD_REMOVE_STRESS, CMD_SHOW_LAN_CONNECTIONS, CMD_SHOW_LAN_DETAILS, CMD_LAN_CHANGE_STATE, CMD_SHOW_ALL_DEVICES, };
//+---------------------------------------------------------------------------
// Parameters for SZ_CMD_SHOW_BINDINGS
//
enum SHOW_BINDINGS_PARAM { SHOW_INVALID = 0, SHOW_BELOW, SHOW_INVOLVING, SHOW_UPPER, SHOW_DISABLED, };
enum COMPONENT_SPECIFIER_TYPE { CST_INVALID = 0, CST_ALL, CST_BY_NAME, };
struct COMPONENT_SPECIFIER { COMPONENT_SPECIFIER_TYPE Type; PCWSTR pszInfOrPnpId; };
struct DIAG_OPTIONS { CDiagContext* pDiagCtx;
COMMAND Command;
// Valid for CMD_ADD_COMPONENT
GUID ClassGuid; PCWSTR pszInfId;
// Valid for SZ_CMD_SHOW_BINDINGS
//
SHOW_BINDINGS_PARAM ShowBindParam; COMPONENT_SPECIFIER CompSpecifier;
// Valid for SZ_CMD_ENABLE_BINDING and SZ_CMD_DISABLE_BINDING
//
PCWSTR pszBindPath;
// Valid for SZ_CMD_MOVE_BINDING
//
PCWSTR pszOtherBindPath; BOOL fMoveBefore;
// Valid for SZ_CMD_SET_WANORDER
//
BOOL fWanAdaptersFirst;
// Valid for SZ_CMD_FULL_DIAGNOSTIC
//
BOOL fLeakCheck;
// Need this reserved in order to keep the lanacfg.exe tool working.
// Otherwise the offsets for OldLanaNumber and NewLanaNumber will
// be wrong since we published an earlier version of the tool compiled
// with this BOOL in the structure definition.
//
BOOL fReserved;
// Valid for SZ_SET_LANA_NUMBER
//
BYTE OldLanaNumber; BYTE NewLanaNumber;
// Used by CMD_SHOW_LAN_DETAILS
PCWSTR szLanConnection;
// Used by CMD_LAN_CHANGE_STATE & CMD_SHOW_LAN_DETAILS
BOOL fConnect; };
VOID SzFromCharacteristics ( DWORD dwChars, tstring *pstrChars);
PCWSTR SzFromNetconStatus ( NETCON_STATUS Status);
PCWSTR SzFromCmProb ( ULONG ulProb);
VOID SzFromCmStatus ( ULONG ulStatus, tstring *pstrStatus);
EXTERN_C VOID WINAPI NetCfgDiagFromCommandArgs ( IN DIAG_OPTIONS *pOptions);
EXTERN_C VOID WINAPI LanaCfgFromCommandArgs ( IN DIAG_OPTIONS *pOptions);
EXTERN_C VOID WINAPI NetManDiagFromCommandArgs ( IN DIAG_OPTIONS *pOptions);
|