#include "header.h" #if DBG char DebuggerType[] = "Checked"; #else char DebuggerType[] = "Free"; #endif char COMPILED[] = "File " __FILE__ "\n" "Compiled on " __DATE__ " at " __TIME__ "\n"; #if defined( _WDBGEXTS_ ) EXT_API_VERSION ApiVersion = { 3, 5, EXT_API_VERSION_NUMBER, 0 }; WINDBG_EXTENSION_APIS ExtensionApis; USHORT SavedMajorVersion; USHORT SavedMinorVersion; BOOLEAN ChkTarget; void WinDbgExtensionDllInit( PWINDBG_EXTENSION_APIS lpExtensionApis, USHORT MajorVersion, USHORT MinorVersion ) { ExtensionApis = *lpExtensionApis; SavedMajorVersion = MajorVersion; SavedMinorVersion = MinorVersion; ChkTarget = (SavedMajorVersion == 0x0c); return; } LPEXT_API_VERSION ExtensionApiVersion( void ) { return &ApiVersion; } DECLARE_API( version ) { dprintf( "%s Extension dll for Build %d debugging %s" "kernel for Build %d\n", DebuggerType, VER_PRODUCTBUILD, SavedMajorVersion == 0x0c ? "Checked" : "Free", SavedMinorVersion ); dprintf( COMPILED ); } #else // not _WDBGEXTS_ // // Dummy windbg specific exports allows a common .def // file for both ntsd and windbg. // NTSD_EXTENSION_APIS ExtensionApis; HANDLE ExtensionCurrentProcess; void WinDbgExtensionDllInit( void ) { return; } void ExtensionApiVersion( void ) { return; } DECLARE_API( version ) { INIT_API(); dprintf( "%s Extension dll for Build %d\n", DebuggerType, VER_PRODUCTBUILD ); dprintf( COMPILED ); } #endif // _WDBGEXTS // // Common // void CheckVersion( void ) { return; } DllInit( HANDLE hModule, DWORD dwReason, DWORD dwReserved ) { switch (dwReason) { case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: break; case DLL_PROCESS_ATTACH: break; } return TRUE; }