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.
|
|
//----------------------------------------------------------------------------
//
// Generic routines and initialization code.
//
// Copyright (C) Microsoft Corporation, 2000-2001.
//
//----------------------------------------------------------------------------
#include "dbgexts.h"
PDEBUG_CLIENT2 g_ExtClient; PDEBUG_CONTROL2 g_ExtControl; PDEBUG_DATA_SPACES2 g_ExtData; PDEBUG_REGISTERS g_ExtRegisters; PDEBUG_SYMBOLS2 g_ExtSymbols; PDEBUG_SYSTEM_OBJECTS2 g_ExtSystem;
// Queries for all debugger interfaces.
HRESULT ExtQuery(PDEBUG_CLIENT Client) { HRESULT Status; if ((Status = Client->QueryInterface(__uuidof(IDebugClient2), (void **)&g_ExtClient)) != S_OK || (Status = Client->QueryInterface(__uuidof(IDebugControl2), (void **)&g_ExtControl)) != S_OK || (Status = Client->QueryInterface(__uuidof(IDebugDataSpaces2), (void **)&g_ExtData)) != S_OK || (Status = Client->QueryInterface(__uuidof(IDebugRegisters), (void **)&g_ExtRegisters)) != S_OK || (Status = Client->QueryInterface(__uuidof(IDebugSymbols2), (void **)&g_ExtSymbols)) != S_OK || (Status = Client->QueryInterface(__uuidof(IDebugSystemObjects2), (void **)&g_ExtSystem)) != S_OK) { ExtRelease(); return Status; }
return S_OK; }
// Cleans up all debugger interfaces.
void ExtRelease(void) { EXT_RELEASE(g_ExtClient); EXT_RELEASE(g_ExtControl); EXT_RELEASE(g_ExtData); EXT_RELEASE(g_ExtRegisters); EXT_RELEASE(g_ExtSymbols); EXT_RELEASE(g_ExtSystem); }
void __cdecl ExtOut(PCSTR Format, ...) { va_list Args; va_start(Args, Format); g_ExtControl->OutputVaList(DEBUG_OUTPUT_NORMAL, Format, Args); va_end(Args); }
void __cdecl ExtErr(PCSTR Format, ...) { va_list Args; va_start(Args, Format); g_ExtControl->OutputVaList(DEBUG_OUTPUT_ERROR, Format, Args); va_end(Args); }
void ExtExec(PCSTR Command) { g_ExtControl->Execute(DEBUG_OUTCTL_ALL_CLIENTS, Command, DEBUG_EXECUTE_DEFAULT); }
extern "C" HRESULT CALLBACK DebugExtensionInitialize(PULONG Version, PULONG Flags) { *Version = DEBUG_EXTENSION_VERSION(1, 0); *Flags = 0; return S_OK; }
|