Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
4.0 KiB

  1. // Copyright (c) 2000-2004 Microsoft Corporation
  2. // WMI Class Definitions for the Security Configuration Engine
  3. // Version 1.0
  4. // this file is reserved for embedding foreign classes into SCE namespace
  5. // It should and should only contain the registration information of the following classes:
  6. // (1) Subclasses of Sce_EmbedFO. That is how embedding is accomplished.
  7. // (2) Instances of Sce_Sequence. That is how we control the order of classes in method execution.
  8. #pragma autorecover
  9. #pragma classflags("forceupdate")
  10. #pragma namespace("\\\\.\\root")
  11. instance of __Namespace
  12. {
  13. Name = "Security";
  14. };
  15. #pragma namespace("\\\\.\\root\\Security")
  16. instance of __Namespace
  17. {
  18. Name = "SCE";
  19. };
  20. #pragma namespace("\\\\.\\root\\Security\\SCE")
  21. //**************************************************************************
  22. //* Declare an instance of the __Win32Provider so as to "register" the
  23. //* SCE provider.
  24. //**************************************************************************
  25. instance of __Win32Provider as $P
  26. {
  27. Name = "SCEProvider|1.0" ;
  28. ClsId = "{bd7570f7-9f0e-4c6b-b525-e078691b6d0e}" ;
  29. ImpersonationLevel = 1;
  30. PerUserInitialization = TRUE;
  31. HostingModel = "NetworkServiceHost";
  32. };
  33. instance of __InstanceProviderRegistration
  34. {
  35. Provider = $P;
  36. SupportsPut = TRUE;
  37. SupportsGet = TRUE;
  38. SupportsDelete = TRUE;
  39. SupportsEnumeration = TRUE;
  40. QuerySupportLevels = {"WQL:UnarySelect"};
  41. };
  42. instance of __MethodProviderRegistration
  43. {
  44. Provider = $P;
  45. };
  46. // **************************************************************************
  47. // The following is a sample of instance registration of Sce_Sequence class so that
  48. // Sce knows that when executing the "Configure" method, it should access the embedding
  49. // classes in the following order:
  50. // (1) Sce_EmbedIPSecRollback,
  51. // (2) Sce_EmbedIISRollback,
  52. // (3) Sce_EmbedSQLServerRollback,
  53. // (4) Sce_EmbedMMAuth,
  54. // (5) Sce_EmbedQMPolicy,
  55. // (6) Sce_EmbedTransportFilter
  56. // **************************************************************************
  57. /*
  58. instance of Sce_Sequence
  59. {
  60. Method = "Configure";
  61. Priority = 0;
  62. Order = "Sce_EmbedIPSecRollback:Sce_EmbedIISRollback:Sce_EmbedSQLServerRollback";
  63. };
  64. instance of Sce_Sequence
  65. {
  66. Method = "Configure";
  67. Priority = 1;
  68. Order = "Sce_EmbedMMAuth:Sce_EmbedQMPolicy:Sce_EmbedTransportFilter";
  69. };
  70. */
  71. // **************************************************************************
  72. // the following is a sample of embedding a foreign class into SCE namespace so that
  73. // SCE can persist information regarding a foreign class and use it in its flexible way.
  74. // Any embedding class must have the following critical information:
  75. // (1) Foreign namespace, (should be static because they don't change across instances)
  76. // (2) Foreign class name, (should be static because they don't change across instances)
  77. // (3) SceStorePath as key property
  78. // (4) [Implemented] uint32 Configure([in] string LogFilePath);
  79. // **************************************************************************
  80. /*
  81. // the following is to embed the IPSec classes
  82. [dynamic, provider("SCEProvider|1.0")]
  83. class Sce_EmbedBlockAllFilter : Sce_EmbedFO
  84. {
  85. [key] string SceStorePath;
  86. [key] string FilterName; // foreign class's key
  87. [static] string ForeignNamespace = "\\\\.\\root\\Security\\NetSecProv";
  88. [static] string ForeignClassName = "Nsp_TransportFilterSettings";
  89. string SrcAddr = "IP_ADDRESS_ME";
  90. string DestAddr = "SUBNET_ADDRESS_ANY";
  91. uint32 InboundFilterFlag = 2; //PASS_THRU = 1, BLOCKING = 2, NEGOTIATE_SECURITY = 3,
  92. uint32 OutboundFilterFlag = 2; //PASS_THRU = 1, BLOCKING = 2, NEGOTIATE_SECURITY = 3,
  93. [Implemented] uint32 Configure([in] string LogFilePath);
  94. };
  95. */