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.
|
|
#include "pch.h"
#include <delayimp.h>
FARPROC WINAPI DliHook(unsigned dliNotify, PDelayLoadInfo pdli) { #ifdef DEBUG
switch (dliNotify) { case dliStartProcessing: // used to bypass or note helper only
OutputDebugString(TEXT("dliStartProcessing reported from DliHook")); break; case dliNotePreLoadLibrary: // called just before LoadLibrary, can
OutputDebugString(TEXT("dliNotePreLoadLibrary reported from DliHook")); // override w/ new HMODULE return val
break; case dliNotePreGetProcAddress: // called just before GetProcAddress, can
OutputDebugString(TEXT("dliNotePreGetProcAddress reported from DliHook")); // override w/ new FARPROC return value
break; case dliFailLoadLib: // failed to load library, fix it by
OutputDebugString(TEXT("dliFailLoadLib reported from DliHook")); // returning a valid HMODULE
break; case dliFailGetProc: // failed to get proc address, fix it by
OutputDebugString(TEXT("dliFailGetProc reported from DliHook")); // returning a valid FARPROC
break; case dliNoteEndProcessing: // called after all processing is done, no
OutputDebugString(TEXT("dliNoteEndProcessing reported from DliHook")); // no bypass possible at this point except
// by longjmp()/throw()/RaiseException.
break; default: break; } #endif
return 0; }
PfnDliHook __pfnDliFailureHook = DliHook;
|