// Copyright (c) 2000-2004 Microsoft Corporation // WMI Class Definitions for the Security Configuration Engine // Version 1.0 // this file is reserved for embedding foreign classes into SCE namespace // It should and should only contain the registration information of the following classes: // (1) Subclasses of Sce_EmbedFO. That is how embedding is accomplished. // (2) Instances of Sce_Sequence. That is how we control the order of classes in method execution. #pragma autorecover #pragma classflags("forceupdate") #pragma namespace("\\\\.\\root") instance of __Namespace { Name = "Security"; }; #pragma namespace("\\\\.\\root\\Security") instance of __Namespace { Name = "SCE"; }; #pragma namespace("\\\\.\\root\\Security\\SCE") //************************************************************************** //* Declare an instance of the __Win32Provider so as to "register" the //* SCE provider. //************************************************************************** instance of __Win32Provider as $P { Name = "SCEProvider|1.0" ; ClsId = "{bd7570f7-9f0e-4c6b-b525-e078691b6d0e}" ; ImpersonationLevel = 1; PerUserInitialization = TRUE; HostingModel = "NetworkServiceHost"; }; instance of __InstanceProviderRegistration { Provider = $P; SupportsPut = TRUE; SupportsGet = TRUE; SupportsDelete = TRUE; SupportsEnumeration = TRUE; QuerySupportLevels = {"WQL:UnarySelect"}; }; instance of __MethodProviderRegistration { Provider = $P; }; // ************************************************************************** // The following is a sample of instance registration of Sce_Sequence class so that // Sce knows that when executing the "Configure" method, it should access the embedding // classes in the following order: // (1) Sce_EmbedIPSecRollback, // (2) Sce_EmbedIISRollback, // (3) Sce_EmbedSQLServerRollback, // (4) Sce_EmbedMMAuth, // (5) Sce_EmbedQMPolicy, // (6) Sce_EmbedTransportFilter // ************************************************************************** /* instance of Sce_Sequence { Method = "Configure"; Priority = 0; Order = "Sce_EmbedIPSecRollback:Sce_EmbedIISRollback:Sce_EmbedSQLServerRollback"; }; instance of Sce_Sequence { Method = "Configure"; Priority = 1; Order = "Sce_EmbedMMAuth:Sce_EmbedQMPolicy:Sce_EmbedTransportFilter"; }; */ // ************************************************************************** // the following is a sample of embedding a foreign class into SCE namespace so that // SCE can persist information regarding a foreign class and use it in its flexible way. // Any embedding class must have the following critical information: // (1) Foreign namespace, (should be static because they don't change across instances) // (2) Foreign class name, (should be static because they don't change across instances) // (3) SceStorePath as key property // (4) [Implemented] uint32 Configure([in] string LogFilePath); // ************************************************************************** /* // the following is to embed the IPSec classes [dynamic, provider("SCEProvider|1.0")] class Sce_EmbedBlockAllFilter : Sce_EmbedFO { [key] string SceStorePath; [key] string FilterName; // foreign class's key [static] string ForeignNamespace = "\\\\.\\root\\Security\\NetSecProv"; [static] string ForeignClassName = "Nsp_TransportFilterSettings"; string SrcAddr = "IP_ADDRESS_ME"; string DestAddr = "SUBNET_ADDRESS_ANY"; uint32 InboundFilterFlag = 2; //PASS_THRU = 1, BLOCKING = 2, NEGOTIATE_SECURITY = 3, uint32 OutboundFilterFlag = 2; //PASS_THRU = 1, BLOCKING = 2, NEGOTIATE_SECURITY = 3, [Implemented] uint32 Configure([in] string LogFilePath); }; */