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.

125 lines
2.7 KiB

  1. #ifndef __SSLCONFIGPIPECLIENT__HXX_
  2. #define __SSLCONFIGPIPECLIENT__HXX_
  3. /*++
  4. Copyright (c) 2001 Microsoft Corporation
  5. Module Name :
  6. sslconfigprovclient.hxx
  7. Abstract:
  8. SSL CONFIG PROV client
  9. Client provides easy way of retrieving SSL related parameters
  10. through named pipes.
  11. Only one pipe connection is currently supported and
  12. all client threads have to share it
  13. ( exclusive access is maintained by locking )
  14. Client side is guaranteed not to use any COM stuff.
  15. Not using COM was requirement from NT Security folks
  16. to enable HTTPFilter be hosted in lsass
  17. Author:
  18. Jaroslav Dunajsky April-24-2001
  19. Environment:
  20. Win32 - User Mode
  21. Project:
  22. Stream Filter Worker Process
  23. --*/
  24. #include <sslconfigcommon.hxx>
  25. #include <sslconfigpipe.hxx>
  26. class SSL_CONFIG_PROV_CLIENT: protected SSL_CONFIG_PIPE
  27. {
  28. public:
  29. SSL_CONFIG_PROV_CLIENT()
  30. :_pSslConfigChangeCallback( NULL ),
  31. _pSslConfigChangeCallbackParameter( NULL )
  32. {}
  33. ~SSL_CONFIG_PROV_CLIENT()
  34. {}
  35. HRESULT
  36. Initialize(
  37. IN SSL_CONFIG_CHANGE_CALLBACK * pSslConfigChangeCallback,
  38. IN OPTIONAL PVOID pvParam = NULL
  39. );
  40. HRESULT
  41. Terminate(
  42. VOID
  43. );
  44. HRESULT
  45. MaintainPipeConnection(
  46. VOID
  47. );
  48. VOID
  49. CancelPendingCalls(
  50. VOID
  51. )
  52. {
  53. _SslConfigChangeProvClient.StopListeningForChanges();
  54. SSL_CONFIG_PIPE::PipeCancel();
  55. }
  56. HRESULT
  57. GetOneSiteSecureBindings(
  58. IN DWORD dwSite,
  59. OUT MULTISZ* pSecureBindings
  60. );
  61. HRESULT
  62. StartAllSitesSecureBindingsEnumeration(
  63. VOID
  64. );
  65. HRESULT
  66. StopAllSitesSecureBindingsEnumeration(
  67. VOID
  68. );
  69. HRESULT
  70. GetNextSiteSecureBindings(
  71. OUT DWORD * pdwId,
  72. OUT MULTISZ * pSecureBindings
  73. );
  74. HRESULT
  75. GetOneSiteSslConfiguration(
  76. IN DWORD dwSiteId,
  77. OUT SITE_SSL_CONFIGURATION * pSiteSslConfiguration
  78. );
  79. private:
  80. SSL_CONFIG_PROV_CLIENT( const SSL_CONFIG_PROV_CLIENT& );
  81. SSL_CONFIG_PROV_CLIENT& operator=( const SSL_CONFIG_PROV_CLIENT& );
  82. HRESULT
  83. ReceiveOneSiteSecureBindings(
  84. OUT DWORD * pdwSiteId,
  85. OUT MULTISZ * pSecureBinding
  86. );
  87. SSL_CONFIG_CHANGE_PROV_CLIENT _SslConfigChangeProvClient;
  88. //
  89. // parameters used for config change provider
  90. //
  91. SSL_CONFIG_CHANGE_CALLBACK * _pSslConfigChangeCallback;
  92. PVOID _pSslConfigChangeCallbackParameter;
  93. };
  94. #endif