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.
107 lines
1.9 KiB
107 lines
1.9 KiB
/*++
|
|
|
|
Copyright (c) 1997 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
main.cxx
|
|
|
|
Abstract:
|
|
|
|
DLL startup routine.
|
|
|
|
Author:
|
|
|
|
Keith Moore (keithmo) 17-Feb-1997
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
extern "C" {
|
|
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include <windows.h>
|
|
|
|
#include <dbgutil.h>
|
|
|
|
} // extern "C"
|
|
|
|
#include <iadmw.h>
|
|
#include <icrypt.hxx>
|
|
#include <secdat.hxx>
|
|
|
|
|
|
//
|
|
// Private globals.
|
|
//
|
|
|
|
|
|
extern "C" void InitializeIISRTL2();
|
|
extern "C" void TerminateIISRTL2();
|
|
|
|
//
|
|
// Private prototypes.
|
|
//
|
|
|
|
|
|
//
|
|
// DLL Entrypoint.
|
|
//
|
|
|
|
extern "C" {
|
|
|
|
BOOL
|
|
WINAPI
|
|
DllMain(
|
|
HINSTANCE hDll,
|
|
DWORD dwReason,
|
|
LPVOID
|
|
)
|
|
{
|
|
|
|
BOOL status = TRUE;
|
|
|
|
switch( dwReason ) {
|
|
|
|
case DLL_PROCESS_ATTACH :
|
|
INITIALIZE_PLATFORM_TYPE();
|
|
|
|
// This needs to be called to initialize the Critical Section which
|
|
// is used by the CREATE_DEBUG_PRINT_OBJECT
|
|
InitializeIISRTL2();
|
|
// NOTE: Now you might be wondering why this needs to do an initialize.
|
|
// This is because this module links with iisrtl2.lib, not with
|
|
// iisrtl.lib and hence not with iisrtl.dll. So in order for tracing
|
|
// to get started this needs to do the initialize.
|
|
CREATE_DEBUG_PRINT_OBJECT( "admwprox");
|
|
LOAD_DEBUG_FLAGS_FROM_REG_STR( "System\\CurrentControlSet\\Services\\iisadmin\\Parameters", 0 );
|
|
|
|
status = ADM_SECURE_DATA::Initialize( hDll );
|
|
ADM_GUID_MAP::Initialize();
|
|
DisableThreadLibraryCalls( hDll );
|
|
break;
|
|
|
|
case DLL_PROCESS_DETACH :
|
|
ADM_GUID_MAP::Terminate();
|
|
ADM_SECURE_DATA::Terminate();
|
|
DELETE_DEBUG_PRINT_OBJECT();
|
|
|
|
// This needs to be called to remove the Critical Section which
|
|
// was used by the DELETE_DEBUG_PRINT_OBJECT
|
|
TerminateIISRTL2();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return status;
|
|
|
|
} // DLLEntry
|
|
|
|
} // extern "C"
|
|
|
|
|