|
|
/*++
Copyright (c) 1990 - 1994 Microsoft Corporation
Module Name:
dbglocal.h
Abstract:
Header file for NetOle Debugger Extensions
Author:
Krishna Ganugapati (KrishnaG) 11-December-1994
Revision History:
--*/
//
// Macro Land
// Note: if you use any of these macros within your code, you must have the
// following variables present and set to the appropriate value
//
// HANDLE hCurrentProcess
// PNTSD_GET_EXPRESSION EvalExpression
//
//
#define move(dst, src)\
try {\ ReadProcessMemory(hCurrentProcess, (LPVOID)src, &dst, sizeof(dst), NULL);\ } except (EXCEPTION_EXECUTE_HANDLER) {\ return 0;\ }
#define movestruct(src, dst, type)\
try {\ ReadProcessMemory(hCurrentProcess, (LPVOID)src, dst, sizeof(type), NULL);\ } except (EXCEPTION_EXECUTE_HANDLER) {\ return 0;\ }
#define movemem(src, dst, sz)\
try {\ ReadProcessMemory(hCurrentProcess, (LPVOID)src, dst, sz, NULL);\ } except (EXCEPTION_EXECUTE_HANDLER) {\ return 0;\ }
#define GetAddress(dst, src)\
try {\ dst = EvalExpression(src);\ } except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?\ EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {\ Print("NTSD: Access violation on \"%s\", switch to server context\n", src);\ return(0);\ }
typedef void (*PNTSD_OUTPUT_ROUTINE)(char *, ...);
VOID PrintData( PNTSD_OUTPUT_ROUTINE Print, LPSTR TypeString, LPSTR VarString, ... );
BOOL DbgDumpSecurityDescriptor( HANDLE hCurrentProcess, PNTSD_OUTPUT_ROUTINE Print, PISECURITY_DESCRIPTOR pSecurityDescriptor );
BOOL DbgDumpSid( HANDLE hCurrentProcess, PNTSD_OUTPUT_ROUTINE Print, PVOID SidAddress );
BOOL DbgDumpAcl( HANDLE hCurrentProcess, PNTSD_OUTPUT_ROUTINE Print, PVOID AclAddress );
VOID ConvertSidToAsciiString( PSID pSid, LPSTR String );
DWORD EvalValue( LPSTR *pptstr, PNTSD_GET_EXPRESSION EvalExpression, PNTSD_OUTPUT_ROUTINE Print);
#define ntsdPrintf (lpExtensionApis->lpOutputRoutine)
#define ntsdGetSymbol (lpExtensionApis->lpGetSymbolRoutine)
#define ntsdGetExpr (lpExtensionApis->lpGetExpressionRoutine)
#define ntsdCheckC (lpExtensionApis->lpCheckControlCRoutine)
|