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.
 
 
 
 
 
 

109 lines
2.3 KiB

#ifndef _W3SSL_SERVICE_HXX_
#define _W3SSL_SERVICE_HXX_
/*++
Copyright (c) 2001 Microsoft Corporation
Module Name :
w3ssl.cxx
Abstract:
SSL service for W3SVC.
New SSL service is introduced to IIS6.
In the dedicated (new process mode) it will run
in lsass. That should boost ssl performance by eliminating
context switches and interprocess communication during
SSL handshakes.
In the backward compatibility mode it will not do much.
Service will register with http for ssl processing, but w3svc
will register it's strmfilt and http.sys always uses the
last registered filter so that the one loaded by inetinfo.exe
will be used.
Author:
Jaroslav Dunajsky (Jaroslad) 04-16-2001
Environment:
Win32 - User Mode
Project:
Stream Filter Worker Process
--*/
#define HTTPFILTER_SERVICE_NAME_W L"HTTPFilter"
class W3SSL_SERVICE: public SCM_MANAGER
{
private:
enum INIT_STATUS {
INIT_NONE,
INIT_STRMFILT_LOADED,
INIT_STREAMFILTER,
INIT_STREAMFILTER_STARTED
};
public:
W3SSL_SERVICE()
: SCM_MANAGER( HTTPFILTER_SERVICE_NAME_W ),
_InitStatus( INIT_NONE ),
_hStrmfilt( NULL )
{
}
virtual
~W3SSL_SERVICE()
{
}
protected:
virtual
HRESULT
OnServiceStart(
VOID
);
virtual
HRESULT
OnServiceStop(
VOID
);
private:
//
// Not implemented
//
W3SSL_SERVICE( const W3SSL_SERVICE& );
W3SSL_SERVICE& operator=( const W3SSL_SERVICE& );
HRESULT
LoadStrmfilt(
VOID
);
HRESULT
UnloadStrmfilt(
VOID
);
// Status of Initialization ( used for proper Cleanup )
INIT_STATUS _InitStatus;
// entrypoints of strmfilt used by HTTPFilter
PFN_STREAM_FILTER_INITIALIZE _fnStreamFilterInitialize;
PFN_STREAM_FILTER_START _fnStreamFilterStart;
PFN_STREAM_FILTER_STOP _fnStreamFilterStop;
PFN_STREAM_FILTER_TERMINATE _fnStreamFilterTerminate;
// handle to strmfilt.dll
HMODULE _hStrmfilt;
};
#endif