#include "iisprov.h" // // Initialize WMI_ASSOCIATION_TYPE_DATA // WMI_ASSOCIATION_TYPE WMI_ASSOCIATION_TYPE_DATA::s_ElementSetting = { L"Element", L"Setting", g_wszElementSettingAssocParent, g_wszExtElementSettingAssocParent }; WMI_ASSOCIATION_TYPE WMI_ASSOCIATION_TYPE_DATA::s_Component = { L"GroupComponent", L"PartComponent", g_wszGroupPartAssocParent, g_wszExtGroupPartAssocParent }; WMI_ASSOCIATION_TYPE WMI_ASSOCIATION_TYPE_DATA::s_AdminACL = { L"GroupComponent", L"PartComponent", g_wszGroupPartAssocParent, g_wszExtGroupPartAssocParent }; WMI_ASSOCIATION_TYPE WMI_ASSOCIATION_TYPE_DATA::s_IPSecurity = { L"Element", L"Setting", g_wszElementSettingAssocParent, g_wszExtElementSettingAssocParent }; // // Initialize METABASE_KEYTYPE_DATA // METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsApplicationPool = { L"IIsApplicationPool", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsApplicationPools = { L"IIsApplicationPools", NULL, L"/LM/w3svc/AppPools" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsCertMapper = { L"IIsCertMapper", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsCompressionScheme = { L"IIsCompressionScheme", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsCompressionSchemes = { L"IIsCompressionSchemes", NULL, L"/LM/w3svc/Filters/Compression/Parameters" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsComputer = { L"IIsComputer", NULL, L"/LM" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsCustomLogModule = { L"IIsCustomLogModule", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsFilter = { L"IIsFilter", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsFilters = { L"IIsFilters", NULL, L"/LM/w3svc/filters" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsFtpInfo = { L"IIsFtpInfo", NULL, L"/LM/msftpsvc/info" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsFtpServer = { L"IIsFtpServer", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsFtpService = { L"IIsFtpService", NULL, L"/LM/msftpsvc" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsFtpVirtualDir = { L"IIsFtpVirtualDir", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsImapInfo = { L"IIsImapInfo", NULL, L"/LM/imapsvc/info" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsImapService = { L"IIsImapService", NULL, L"/LM/imapsvc" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsLogModule = { L"IIsLogModule", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsLogModules = { L"IIsLogModules", NULL, L"/LM/Logging" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsMimeMap = { L"IIsMimeMap", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsNntpInfo = { L"IIsNntpInfo", NULL, L"/LM/nntpsvc/info" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsNntpService = { L"IIsNntpService", NULL, L"/LM/nntpsvc" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsObject = { L"IIsObject", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsPop3Info = { L"IIsPop3Info", NULL, L"/LM/pop3svc/info" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsPop3Service = { L"IIsPop3Service", NULL, L"/LM/pop3svc" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsSmtpInfo = { L"IIsSmtpInfo", NULL, L"/LM/smtpsvc/info" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsSmtpService = { L"IIsSmtpService", NULL, L"/LM/smtpsvc" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsWebDirectory = { L"IIsWebDirectory", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsWebFile = { L"IIsWebFile", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsWebInfo = { L"IIsWebInfo", NULL, L"/LM/w3svc/info" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsWebServer = { L"IIsWebServer", NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsWebService = { L"IIsWebService", NULL, L"/LM/w3svc" }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_IIsWebVirtualDir = { L"IIsWebVirtualDir", NULL, NULL }; // // These are special. They don't get put into the hashtable of keytypes // METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_TYPE_AdminACL = { NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_TYPE_AdminACE = { NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_TYPE_IPSecurity = { NULL, NULL }; METABASE_KEYTYPE METABASE_KEYTYPE_DATA::s_NO_TYPE = { NULL, NULL }; METABASE_KEYTYPE* METABASE_KEYTYPE_DATA::s_MetabaseKeyTypes[] = { &s_IIsApplicationPool, &s_IIsApplicationPools, &s_IIsCertMapper, &s_IIsCompressionScheme, &s_IIsCompressionSchemes, &s_IIsComputer, &s_IIsCustomLogModule, &s_IIsFilter, &s_IIsFilters, &s_IIsFtpInfo, &s_IIsFtpServer, &s_IIsFtpService, &s_IIsFtpVirtualDir, &s_IIsImapInfo, &s_IIsImapService, &s_IIsLogModule, &s_IIsLogModules, &s_IIsMimeMap, &s_IIsNntpInfo, &s_IIsNntpService, &s_IIsObject, &s_IIsPop3Info, &s_IIsPop3Service, &s_IIsSmtpInfo, &s_IIsSmtpService, &s_IIsWebDirectory, &s_IIsWebFile, &s_IIsWebInfo, &s_IIsWebServer, &s_IIsWebService, &s_IIsWebVirtualDir, &s_TYPE_AdminACL, &s_TYPE_AdminACE, &s_TYPE_IPSecurity, &s_NO_TYPE, NULL }; /// // initialize METABASE_PROPERTY_DATA // METABASE_PROPERTY METABASE_PROPERTY_DATA::s_AppRoot = { L"AppRoot",MD_APP_ROOT, IIS_MD_UT_FILE, STRING_METADATA, NULL, METADATA_INHERIT, TRUE, NULL }; METABASE_PROPERTY METABASE_PROPERTY_DATA::s_Path = { L"Path", MD_VR_PATH, IIS_MD_UT_FILE, STRING_METADATA, NULL, METADATA_INHERIT, FALSE, NULL }; METABASE_PROPERTY METABASE_PROPERTY_DATA::s_ServerBindings = { L"ServerBindings",MD_SERVER_BINDINGS, IIS_MD_UT_SERVER, MULTISZ_METADATA, NULL, METADATA_NO_ATTRIBUTES, FALSE, NULL }; METABASE_PROPERTY METABASE_PROPERTY_DATA::s_ServerComment = { L"ServerComment",MD_SERVER_COMMENT, IIS_MD_UT_SERVER, STRING_METADATA, NULL, METADATA_INHERIT, FALSE, L"" }; METABASE_PROPERTY METABASE_PROPERTY_DATA::s_KeyType = { L"", MD_KEY_TYPE, IIS_MD_UT_SERVER, STRING_METADATA, NULL, METADATA_NO_ATTRIBUTES, FALSE, L"IIsObject", 0 }; METABASE_PROPERTY* METABASE_PROPERTY_DATA::s_MetabaseProperties[] = { &s_AppRoot, &s_Path, &s_ServerBindings, &s_ServerComment, &s_KeyType, NULL }; // //initiailze WMI_METHOD_PARAM_DATA // WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_Applications = { L"Applications", CIM_STRING | VT_ARRAY, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_AppMode = { L"AppMode", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_BackupDateTimeOut = { L"BackupDateTimeOut", CIM_DATETIME, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_BackupFlags = { L"BackupFlags", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_BackupLocation = { L"BackupLocation", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_BackupLocation_io = { L"BackupLocation", CIM_STRING, PARAM_INOUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_BackupVersion = { L"BackupVersion", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_BackupVersionOut = { L"BackupVersionOut", CIM_SINT32, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_DestPath = { L"DestPath", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_EnumIndex = { L"EnumIndex", CIM_SINT32, PARAM_IN}; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_FileName = { L"FileName", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_HistoryTime = { L"HistoryTime", CIM_DATETIME, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_IEnabled = { L"IEnabled", CIM_BOOLEAN, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_IEnabled_o = { L"IEnabled", CIM_BOOLEAN, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_IMethod = { L"IMethod", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_IndexIn = { L"IndexIn", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_InProcFlag = { L"InProcFlag", CIM_BOOLEAN, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_AppPoolName = { L"AppPoolName", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_bCreate = { L"bCreate", CIM_BOOLEAN, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MajorVersion = { L"MajorVersion", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MajorVersion_o = { L"MajorVersion", CIM_SINT32, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MDFlags = { L"MDFlags", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MDHistoryLocation = { L"MDHistoryLocation", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MDHistoryLocation_io = { L"MDHistoryLocation", CIM_STRING, PARAM_INOUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MinorVersion = { L"MinorVersion", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_MinorVersion_o = { L"MinorVersion", CIM_SINT32, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_NtAcct = { L"NtAcct", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_NtAcct_o = { L"NtAcct", CIM_STRING, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_NtPwd = { L"NtPwd", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_NtPwd_o = { L"NtPwd", CIM_STRING, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_Password = { L"Password", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_Passwd = { L"Passwd", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_PathOfRootVirtualDir = { L"PathOfRootVirtualDir", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_Recursive = { L"Recursive", CIM_BOOLEAN, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_ServerComment = { L"ServerComment", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_ServerBindings = { L"ServerBindings", VT_ARRAY | VT_UNKNOWN, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_ServerId = { L"ServerId", CIM_SINT32, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_ServerMode = { L"ServerMode", CIM_SINT32, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_SourcePath = { L"SourcePath", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_strName = { L"strName", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_strName_o = { L"strName", CIM_STRING, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_vCert = { L"vCert", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_vCert_o = { L"vCert", CIM_STRING, PARAM_OUT }; WMI_METHOD_PARAM WMI_METHOD_PARAM_DATA::s_vKey = { L"vKey", CIM_STRING, PARAM_IN }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_ServiceCreateNewServer[] = { &s_ServerComment, &s_ServerBindings, &s_PathOfRootVirtualDir, &s_ServerId, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_GetCurrentMode[] = { &s_ServerMode, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_AppCreate[] = { &s_InProcFlag, &s_AppPoolName, &s_bCreate, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_AppCreate2[] = { &s_AppMode, &s_AppPoolName, &s_bCreate, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_AppDelete[] = { &s_Recursive, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_AppUnLoad[] = { &s_Recursive, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_AppEnable[] = { &s_Recursive, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_AppDisable[] = { &s_Recursive, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_BackupWithPasswd[] = { &s_BackupLocation, &s_BackupVersion, &s_BackupFlags, &s_Password, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_DeleteBackup[] = { &s_BackupLocation, &s_BackupVersion, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_EnumBackups[] = { &s_BackupLocation_io, &s_IndexIn, &s_BackupVersionOut, &s_BackupDateTimeOut, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_RestoreWithPasswd[] = { &s_BackupLocation, &s_BackupVersion, &s_BackupFlags, &s_Password, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_Export[] = { &s_Passwd, &s_FileName, &s_SourcePath, &s_MDFlags, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_Import[] = { &s_Passwd, &s_FileName, &s_SourcePath, &s_DestPath, &s_MDFlags, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_RestoreHistory[] = { &s_MDHistoryLocation, &s_MajorVersion, &s_MinorVersion, &s_MDFlags, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_EnumHistory[] = { &s_MDHistoryLocation_io, &s_MajorVersion_o, &s_MinorVersion_o, &s_HistoryTime, &s_EnumIndex, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_CreateMapping[] = { &s_vCert, &s_NtAcct, &s_NtPwd, &s_strName, &s_IEnabled, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_DeleteMapping[] = { &s_IMethod, &s_vKey, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_GetMapping[] = { &s_IMethod, &s_vKey, &s_vCert_o, &s_NtAcct_o, &s_NtPwd_o, &s_strName_o, &s_IEnabled_o, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_SetAcct[] = { &s_IMethod, &s_vKey, &s_NtAcct, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_SetEnabled[] = { &s_IMethod, &s_vKey, &s_IEnabled, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_SetName[] = { &s_IMethod, &s_vKey, &s_strName, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_SetPwd[] = { &s_IMethod, &s_vKey, &s_NtPwd, NULL }; WMI_METHOD_PARAM* WMI_METHOD_PARAM_DATA::s_EnumAppsInPool[] = { &s_Applications, NULL }; // //initialize WMI_METHOD_DATA // WMI_METHOD WMI_METHOD_DATA::s_ServiceCreateNewServer = {L"CreateNewSite", 0, L"string", WMI_METHOD_PARAM_DATA::s_ServiceCreateNewServer, L"Creates a new site." }; WMI_METHOD WMI_METHOD_DATA::s_GetCurrentMode = {L"GetCurrentMode", 0, NULL, WMI_METHOD_PARAM_DATA::s_GetCurrentMode, L"Returns what mode -- Full Isolation (= 1) or Shared Isolation (= 0) -- the W3SVC is running in." }; WMI_METHOD WMI_METHOD_DATA::s_ServerStart = {L"Start", MD_SERVER_COMMAND_START, NULL, NULL, L"Starts the server." }; WMI_METHOD WMI_METHOD_DATA::s_ServerStop = {L"Stop", MD_SERVER_COMMAND_STOP, NULL, NULL, L"Stops the server." }; WMI_METHOD WMI_METHOD_DATA::s_ServerContinue = {L"Continue", MD_SERVER_COMMAND_CONTINUE, NULL, NULL, L"Continues the server." }; WMI_METHOD WMI_METHOD_DATA::s_ServerPause = {L"Pause", MD_SERVER_COMMAND_PAUSE, NULL, NULL, L"Pauses the server." }; WMI_METHOD WMI_METHOD_DATA::s_AppCreate = {L"AppCreate", 0, NULL, WMI_METHOD_PARAM_DATA::s_AppCreate, L"Creates an application at the specified metabase key(parameter is a Boolean)." }; WMI_METHOD WMI_METHOD_DATA::s_AppCreate2 = {L"AppCreate2", 0, NULL, WMI_METHOD_PARAM_DATA::s_AppCreate2, L"Creates an application at the specified metabase key(parameter is a Long)." }; WMI_METHOD WMI_METHOD_DATA::s_AppDelete = {L"AppDelete", 0, NULL, WMI_METHOD_PARAM_DATA::s_AppDelete, L"Deletes an application definition at the specified key (and its subkeys)." }; WMI_METHOD WMI_METHOD_DATA::s_AppUnLoad = {L"AppUnLoad", 0, NULL, WMI_METHOD_PARAM_DATA::s_AppUnLoad, L"Unloads an application at the specified key (and its subkeys)." }; WMI_METHOD WMI_METHOD_DATA::s_AppDisable = {L"AppDisable", 0, NULL, WMI_METHOD_PARAM_DATA::s_AppDisable, NULL }; WMI_METHOD WMI_METHOD_DATA::s_AppEnable = {L"AppEnable", 0, NULL, WMI_METHOD_PARAM_DATA::s_AppEnable, NULL }; WMI_METHOD WMI_METHOD_DATA::s_AppGetStatus = {L"AppGetStatus", 0, L"uint32", NULL, NULL }; WMI_METHOD WMI_METHOD_DATA::s_AspAppRestart = {L"AspAppRestart", 0, NULL, NULL, L"Restarts the ASP application that invoked it." }; WMI_METHOD WMI_METHOD_DATA::s_SaveData = {L"SaveData", 0, NULL, NULL, L"Explicitly saves the metabase data to disk." }; WMI_METHOD WMI_METHOD_DATA::s_BackupWithPasswd = {L"BackupWithPassword", 0, NULL, WMI_METHOD_PARAM_DATA::s_BackupWithPasswd, L"Saves the metabase to long-term storage." }; WMI_METHOD WMI_METHOD_DATA::s_DeleteBackup = {L"DeleteBackup", 0, NULL, WMI_METHOD_PARAM_DATA::s_DeleteBackup, L"Deletes a metabase backup from long-term storage." }; WMI_METHOD WMI_METHOD_DATA::s_EnumBackups = {L"EnumBackups", 0, NULL, WMI_METHOD_PARAM_DATA::s_EnumBackups, L"Enumerates metabase backups in long-term storage." }; WMI_METHOD WMI_METHOD_DATA::s_RestoreWithPasswd = {L"RestoreWithPassword", 0, NULL, WMI_METHOD_PARAM_DATA::s_RestoreWithPasswd, L"Restores a metabase backup from long-term storage." }; WMI_METHOD WMI_METHOD_DATA::s_Export = {L"Export", 0, NULL, WMI_METHOD_PARAM_DATA::s_Export, NULL }; WMI_METHOD WMI_METHOD_DATA::s_Import = {L"Import", 0, NULL, WMI_METHOD_PARAM_DATA::s_Import, NULL }; WMI_METHOD WMI_METHOD_DATA::s_RestoreHistory = {L"RestoreHistory", 0, NULL, WMI_METHOD_PARAM_DATA::s_RestoreHistory, NULL }; WMI_METHOD WMI_METHOD_DATA::s_EnumHistory = {L"EnumHistory", 0, NULL, WMI_METHOD_PARAM_DATA::s_EnumHistory, NULL }; WMI_METHOD WMI_METHOD_DATA::s_CreateMapping = {L"CreateMapping", 0, NULL, WMI_METHOD_PARAM_DATA::s_CreateMapping, L"Maps a certificate to a Windows account." }; WMI_METHOD WMI_METHOD_DATA::s_DeleteMapping = {L"DeleteMapping", 0, NULL, WMI_METHOD_PARAM_DATA::s_DeleteMapping, L"Deletes an existing certificate mapping." }; WMI_METHOD WMI_METHOD_DATA::s_GetMapping = {L"GetMapping", 0, NULL, WMI_METHOD_PARAM_DATA::s_GetMapping, L"Retrieves a certificate and the mapping data from an existing certificate mapping." }; WMI_METHOD WMI_METHOD_DATA::s_SetAcct = {L"SetAcct", 0, NULL, WMI_METHOD_PARAM_DATA::s_SetAcct, L"Sets a new value for the Windows account string in an existing certificate mapping." }; WMI_METHOD WMI_METHOD_DATA::s_SetEnabled = {L"SetEnabled", 0, NULL, WMI_METHOD_PARAM_DATA::s_SetEnabled, L"Enables or disables an existing certificate mapping." }; WMI_METHOD WMI_METHOD_DATA::s_SetName = {L"SetName", 0, NULL, WMI_METHOD_PARAM_DATA::s_SetName, L"Sets a new value for the name string in an existing certificate mapping." }; WMI_METHOD WMI_METHOD_DATA::s_SetPwd = {L"SetPwd", 0, NULL, WMI_METHOD_PARAM_DATA::s_SetPwd, L"Sets a new value for the Windows password string in an existing certificate mapping." }; WMI_METHOD WMI_METHOD_DATA::s_RecycleAppPool = {L"RecycleAppPool", 0, NULL, NULL, L"Recycle an already enabled application pool on demand" }; WMI_METHOD WMI_METHOD_DATA::s_EnumAppsInPool = {L"EnumAppsInPool", 0, NULL, WMI_METHOD_PARAM_DATA::s_EnumAppsInPool, L"Determine which applications are currently routed to the given application pool" }; WMI_METHOD WMI_METHOD_DATA::s_Start = {L"Start", 0, NULL, NULL, L"Starts an application pool"}; WMI_METHOD WMI_METHOD_DATA::s_Stop = {L"Stop", 0, NULL, NULL, L"Stops an application pool"}; WMI_METHOD* WMI_METHOD_DATA::s_WebServiceMethods[] = { &s_ServiceCreateNewServer, &s_GetCurrentMode, NULL }; WMI_METHOD* WMI_METHOD_DATA::s_ServiceMethods[] = { &s_ServiceCreateNewServer, NULL }; WMI_METHOD* WMI_METHOD_DATA::s_ServerMethods[] = { &s_ServerStart, &s_ServerStop, &s_ServerContinue, &s_ServerPause, NULL }; WMI_METHOD* WMI_METHOD_DATA::s_WebAppMethods[] = { &s_AppCreate, &s_AppCreate2, &s_AppDelete, &s_AppUnLoad, &s_AppDisable, &s_AppEnable, &s_AppGetStatus, &s_AspAppRestart, NULL }; WMI_METHOD* WMI_METHOD_DATA::s_ComputerMethods[] = { &s_SaveData, &s_BackupWithPasswd, &s_DeleteBackup, &s_EnumBackups, &s_RestoreWithPasswd, &s_Export, &s_Import, &s_RestoreHistory, &s_EnumHistory, NULL }; WMI_METHOD* WMI_METHOD_DATA::s_CertMapperMethods[] = { &s_CreateMapping, &s_DeleteMapping, &s_GetMapping, &s_SetAcct, &s_SetEnabled, &s_SetName, &s_SetPwd, NULL }; WMI_METHOD* WMI_METHOD_DATA::s_AppPoolMethods[] = { &s_EnumAppsInPool, &s_RecycleAppPool, &s_Start, &s_Stop, NULL }; // // initialize WMI_CLASS_DATA // //** Computer WMI_CLASS WMI_CLASS_DATA::s_Computer = {L"IIsComputer", L"", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsComputer, WMI_METHOD_DATA::s_ComputerMethods, SHIPPED_TO_MOF, L"CIM_ApplicationSystem", true, NULL}; WMI_CLASS WMI_CLASS_DATA::s_ComputerSetting = {L"IIsComputerSetting", L"", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsComputer, NULL, SHIPPED_TO_MOF, g_wszSettingParent, true, NULL}; //** FtpService WMI_CLASS WMI_CLASS_DATA::s_FtpService = {L"IIsFtpService", L"/LM", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsFtpService, WMI_METHOD_DATA::s_ServiceMethods, SHIPPED_TO_MOF, g_awszParentClassWithNamePK[eWin32_Service], false, NULL}; //** FtpServer WMI_CLASS WMI_CLASS_DATA::s_FtpServer = {L"IIsFtpServer", L"/LM", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsFtpServer, WMI_METHOD_DATA::s_ServerMethods, SHIPPED_TO_MOF, g_wszElementParent, true, NULL}; //** FtpVirtualDir WMI_CLASS WMI_CLASS_DATA::s_FtpVirtualDir = {L"IIsFtpVirtualDir",L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsFtpVirtualDir, NULL, SHIPPED_TO_MOF, g_awszParentClassWithNamePK[eIIsDirectory], true, NULL}; //** WebService WMI_CLASS WMI_CLASS_DATA::s_WebService = {L"IIsWebService", L"/LM", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsWebService, WMI_METHOD_DATA::s_WebServiceMethods, SHIPPED_TO_MOF, g_awszParentClassWithNamePK[eWin32_Service], false, NULL}; //** WebFilter WMI_CLASS WMI_CLASS_DATA::s_WebFilter = {L"IIsFilter", L"/LM", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsFilter, NULL, SHIPPED_TO_MOF, g_wszElementParent, true, NULL}; //** WebServer WMI_CLASS WMI_CLASS_DATA::s_WebServer = {L"IIsWebServer", L"/LM", L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsWebServer, WMI_METHOD_DATA::s_ServerMethods, SHIPPED_TO_MOF, g_wszElementParent, true, NULL}; //** Web CertMapper WMI_CLASS WMI_CLASS_DATA::s_WebCertMapper = {L"IIsCertMapper",L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsCertMapper, WMI_METHOD_DATA::s_CertMapperMethods, SHIPPED_TO_MOF, g_wszElementParent, true, NULL}; //** Web VirtualDir WMI_CLASS WMI_CLASS_DATA::s_WebVirtualDir = {L"IIsWebVirtualDir",L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsWebVirtualDir, WMI_METHOD_DATA::s_WebAppMethods, SHIPPED_TO_MOF, g_awszParentClassWithNamePK[eIIsDirectory], true, NULL}; //** Web Directory WMI_CLASS WMI_CLASS_DATA::s_WebDirectory = {L"IIsWebDirectory",L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsWebDirectory, WMI_METHOD_DATA::s_WebAppMethods, SHIPPED_TO_MOF, g_awszParentClassWithNamePK[eIIsDirectory], true, NULL}; //** Web File WMI_CLASS WMI_CLASS_DATA::s_WebFile = {L"IIsWebFile",L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_IIsWebFile, NULL, SHIPPED_TO_MOF, g_awszParentClassWithNamePK[eIIsDirectory], true, NULL}; //** Application Pool WMI_CLASS WMI_CLASS_DATA::s_ApplicationPool = {L"IIsApplicationPool",L"/LM",L"Name",NULL, &METABASE_KEYTYPE_DATA::s_IIsApplicationPool, WMI_METHOD_DATA::s_AppPoolMethods, SHIPPED_TO_MOF, g_wszElementParent, true, NULL}; //** AdminACL WMI_CLASS WMI_CLASS_DATA::s_AdminACL = {L"IIsAdminACL", L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_TYPE_AdminACL, NULL, SHIPPED_NOT_TO_MOF, g_wszElementParent, true, NULL}; WMI_CLASS WMI_CLASS_DATA::s_ACE = {L"IIsACE", L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_TYPE_AdminACE, NULL, SHIPPED_NOT_TO_MOF, g_wszElementParent, true, NULL}; //** IPSecurity WMI_CLASS WMI_CLASS_DATA::s_IPSecurity = {L"IIsIPSecuritySetting", L"/LM",L"Name", NULL, &METABASE_KEYTYPE_DATA::s_TYPE_IPSecurity, NULL, SHIPPED_NOT_TO_MOF, g_wszSettingParent, true, NULL}; WMI_CLASS* WMI_CLASS_DATA:: s_WmiClasses[] = { &s_Computer, &s_ComputerSetting, &s_FtpService, &s_FtpServer, &s_FtpVirtualDir, &s_WebService, &s_WebFilter, &s_WebServer, &s_WebCertMapper, &s_WebVirtualDir, &s_WebDirectory, &s_WebFile, &s_ApplicationPool, &s_AdminACL, &s_ACE, &s_IPSecurity, NULL }; //** Hard-coded Associations WMI_ASSOCIATION WMI_ASSOCIATION_DATA::s_AdminACLToACE = { L"IIsAdminACL_IIsACE", &WMI_CLASS_DATA::s_AdminACL, &WMI_CLASS_DATA::s_ACE, &WMI_ASSOCIATION_TYPE_DATA::s_AdminACL, 0, SHIPPED_TO_MOF, g_wszGroupPartAssocParent}; WMI_ASSOCIATION* WMI_ASSOCIATION_DATA:: s_WmiAssociations[] = { &s_AdminACLToACE, NULL };