Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

396 lines
9.1 KiB

/*
** WARNING: DO NOT MODIFY THIS CODE. IT IS IMPORTED FROM
** -S \\RASTAMAN\OSDEBUG4 -P OSDEBUG4\OSDEBUG\INCLUDE AND IS KEPT UP TO
** DATE DAILY BY THE BUILD PROCESS.
**
*/
/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
odp.h
Abstract:
This is part of OSDebug version 4.
These are types and data which are private to OSDebug and the
components below it: TL, EM and DM.
Author:
Kent D. Forschmiedt (kentf)
Environment:
Win32, User Mode
--*/
#ifndef _ODP_
#define _ODP_
typedef enum _EMF {
emfDebugPacket,
emfRegisterDBF,
emfInit,
emfGetModel,
emfUnInit,
emfDetach,
emfAttach,
emfGetInfo,
emfSetup,
emfConnect,
emfDisconnect,
emfCreateHpid,
emfDestroyHpid,
emfDestroyHtid,
emfSetMulti,
emfDebugger,
emfProgramLoad,
emfDebugActive,
emfSetPath,
emfProgramFree,
emfThreadStatus,
emfProcessStatus,
emfFreezeThread,
emfSetThreadPriority,
emfGetExceptionState,
emfSetExceptionState,
emfGetModuleList,
emfGo,
emfSingleStep,
emfRangeStep,
emfReturnStep,
emfStop,
emfBreakPoint,
emfSetupExecute,
emfStartExecute,
emfCleanUpExecute,
emfGetAddr,
emfSetAddr,
emfFixupAddr,
emfUnFixupAddr,
emfSetEmi,
emfRegisterEmi,
emfUnRegisterEmi,
emfCompareAddrs,
emfGetObjLength,
emfGetMemoryInfo,
emfReadMemory,
emfWriteMemory,
emfGetRegStruct,
emfGetFlagStruct,
emfGetReg,
emfSetReg,
emfGetFlag,
emfSetFlag,
emfSaveRegs,
emfRestoreRegs,
emfUnassemble,
emfGetPrevInst,
emfAssemble,
emfGetFrame,
emfMetric,
emfGetMessageMap,
emfGetMessageMaskMap,
emfInfoReply,
emfContinue,
emfReadFile,
emfWriteFile,
emfShowDebuggee,
emfGetTaskList,
emfSystemService,
emfSetDebugMode,
emfMax
} EMF;
typedef enum {
dbcoCreateThread = dbcMax,
dbcoNewProc,
dbcoMax
} DBCO; // Debug CallBacks Osdebug specific
// the set of transport layer commands process by TLFunc and DMTLFunc
typedef enum {
tlfRegisterDBF, // register the debugger helper functions
tlfInit, // initialize/create a (specific) transport layer
tlfDestroy, // vaporize any tl structs created
tlfConnect, // connect to the companion transport layer
tlfDisconnect, // disconnected from the companion transport layer
tlfSendVersion, // Send the version packet to the remote side
tlfGetVersion, // Request the version packet from the remote side
tlfSetBuffer, // set the data buffer to be used for incoming packets
tlfDebugPacket, // send the debug packet to the debug monitor
tlfRequest, // request data from the companion transport layer
tlfReply, // reply to a data request message
tlfGetInfo, // return an id string and other data
tlfSetup, // set up the transport layer
tlfGetProc, // return the true TLFUNC proc for the htl
tlfLoadDM, // load the DM module
tlfSetErrorCB, // Set the address of the error callback function
tlfPoll, // WIN32S: enter polling loop
tlfRemoteQuit, // signal loss of connection
tlfMax
} _TLF;
typedef DWORD TLF;
//
// callbacks the TL uses to communicate with shell -- stub or client.
//
typedef enum {
tlcbDisconnect, // Transport layer was disconnected normally
tlcbMax
} _TLCB;
typedef DWORD TLCB;
typedef XOSD (FAR PASCAL LOADDS *TLFUNC) ( TLF, HPID, LPARAM, LPARAM );
typedef XOSD (FAR PASCAL LOADDS *EMFUNC) ( EMF, HPID, HTID, LPARAM, LPARAM );
typedef XOSD (FAR PASCAL LOADDS *TLFUNCTYPE) ( TLF, HPID, LPARAM, LPARAM );
typedef XOSD (FAR PASCAL LOADDS *DMTLFUNCTYPE) ( TLF, HPID, LPARAM, LPARAM );
typedef XOSD (FAR PASCAL LOADDS *TLCALLBACKTYPE) (HPID, LPARAM, LPARAM );
typedef VOID (FAR PASCAL LOADDS *LPDMINIT) ( DMTLFUNCTYPE, LPVOID );
typedef VOID (FAR PASCAL LOADDS *LPDMFUNC) ( DWORD, LPBYTE );
typedef DWORD (FAR PASCAL LOADDS *LPDMDLLINIT) ( LPDBF );
typedef XOSD (FAR PASCAL LOADDS *LPUISERVERCB) (TLCB, HPID, HTID, LPARAM, LPARAM );
DECLARE_HANDLE32(HEMP);
typedef struct _THREADINFO {
HPID hpid;
HLLI llemp;
} THREADINFO;
typedef THREADINFO FAR *LPTHREADINFO; // Thread information
typedef struct _PROCESSINFO {
HTL htl;
HEMP hempNative;
HLLI llemp;
DWORD fNative;
DWORD lastmodel;
LPFNSVC lpfnsvcCC;
HLLI lltid;
} PROCESSINFO;
typedef PROCESSINFO FAR *LPPROCESSINFO; // Process information
typedef struct _EMS {
EMFUNC emfunc;
EMTYPE emtype;
HLLI llhpid;
DWORD model;
} EMS; // Execution Model Structure - per EM
typedef EMS FAR *LPEMS;
typedef struct _EMP {
HEM hem;
EMFUNC emfunc;
EMTYPE emtype;
DWORD model;
} EMP; // Execution Model Structure - per process
typedef EMP FAR *LPEMP;
typedef struct _TLS {
TLFUNC tlfunc;
HLLI llpid;
} TLS; // Transport Layer Structure
typedef TLS FAR *LPTL;
typedef struct _OSDFILE {
HPID hpid;
DWORD dwPrivateData; // EM's representation of the file
} OSDFILE;
typedef OSDFILE FAR * LPOSDFILE;
//
// Compare Address Struct
//
typedef struct _CAS {
LPADDR lpaddr1;
LPADDR lpaddr2;
LPDWORD lpResult;
} CAS;
typedef CAS FAR * LPCAS;
//
// Range Step Struct
//
typedef struct _RSS {
LPADDR lpaddrMin;
LPADDR lpaddrMax;
LPEXOP lpExop;
} RSS;
typedef RSS FAR * LPRSS;
//
// read memory struct
//
typedef struct _RWMS {
LPADDR lpaddr;
LPVOID lpbBuffer;
DWORD cbBuffer;
LPDWORD lpcb;
} RWMS;
typedef RWMS FAR * LPRWMS;
//
// Get Object Length struct
//
typedef struct _GOL {
LPADDR lpaddr;
LPUOFF32 lplBase;
LPUOFF32 lplLen;
} GOL;
typedef GOL FAR * LPGOL;
//
// Get Previous Instruction Structure
//
typedef struct _GPIS {
LPADDR lpaddr;
LPUOFF32 lpuoffset;
} GPIS;
typedef GPIS FAR * LPGPIS;
//
// Set Debug Mode Structure
//
typedef struct _SDMS {
DBM dbmService;
LPVOID lpvData;
DWORD cbData;
} SDMS;
typedef SDMS FAR * LPSDMS;
typedef struct _SSS {
SSVC ssvc;
DWORD cbSend;
DWORD cbReturned;
BYTE rgbData[];
} SSS;
typedef SSS FAR * LPSSS;
//
// The following structure is used by the emfSetupExecute message
//
typedef struct _EXECUTE_STRUCT {
ADDR addr; /* Starting address for function */
HIND hindDm; /* This is the DMs handle */
HDEP lphdep; /* Handle of save area */
DWORD fIgnoreEvents:1; /* Ignore events coming back? */
DWORD fFar:1; /* Is the function a _far routine */
} EXECUTE_STRUCT;
typedef EXECUTE_STRUCT FAR * LPEXECUTE_STRUCT;
//
// Load DM packet, used by TL
//
typedef struct _LOADDMSTRUCT {
LPSTR lpDmName;
LPSTR lpDmParams;
} LOADDMSTRUCT, FAR * LPLOADDMSTRUCT;
void PASCAL LOADDS ODPDKill ( LPVOID );
void PASCAL LOADDS EMKill ( LPVOID );
int PASCAL LOADDS EMHpidCmp ( LPVOID, LPVOID, LONG );
void PASCAL LOADDS EMPKill ( LPVOID );
void PASCAL LOADDS TLKill ( LPVOID );
void PASCAL LOADDS NullKill ( LPVOID );
int PASCAL LOADDS NullComp ( LPVOID, LPVOID, LONG );
typedef struct _EMCB {
XOSD (PASCAL LOADDS *lpfnCallBackDB) ( DBC, HPID, HTID, DWORD, DWORD, VOID FAR * );
XOSD (PASCAL LOADDS *lpfnCallBackTL) ( TLF, HPID, DWORD, VOID FAR * );
XOSD (PASCAL LOADDS *lpfnCallBackNT) ( EMF, HPID, HTID, DWORD, VOID FAR * );
XOSD (PASCAL LOADDS *lpfnCallBackEM) ( EMF, HPID, HTID, DWORD, DWORD, VOID FAR * );
} EMCB; // Execution Model CallBacks
typedef EMCB FAR *LPEMCB;
typedef struct _REMI {
HEMI hemi;
LSZ lsz;
} REMI; // Register EMI structure
typedef REMI FAR * LPREMI;
// packet used by OSDProgramLoad
typedef struct _PRL {
DWORD dwChildFlags;
DWORD cbRemoteExe;
DWORD cbWorkingDir;
DWORD cbArgs;
CHAR lszRemoteExe[];
// CHAR lszArgs[];
// CHAR lszWorkingDir[];
} PRL; // PRogram Load structure
typedef PRL FAR * LPPRL;
#define MHAlloc (*lpdbf->lpfnMHAlloc)
#define MHRealloc (*lpdbf->lpfnMHRealloc)
#define MHFree (*lpdbf->lpfnMHFree)
#define LLInit (*lpdbf->lpfnLLInit)
#define LLCreate (*lpdbf->lpfnLLCreate)
#define LLAdd (*lpdbf->lpfnLLAdd)
#define LLInsert (*lpdbf->lpfnLLInsert)
#define LLDelete (*lpdbf->lpfnLLDelete)
#define LLNext (*lpdbf->lpfnLLNext)
#define LLDestroy (*lpdbf->lpfnLLDestroy)
#define LLFind (*lpdbf->lpfnLLFind)
#define LLSize (*lpdbf->lpfnLLSize)
#define LLLock (*lpdbf->lpfnLLLock)
#define LLUnlock (*lpdbf->lpfnLLUnlock)
#define LLLast (*lpdbf->lpfnLLLast)
#define LLAddHead (*lpdbf->lpfnLLAddHead)
#define LLRemove (*lpdbf->lpfnLLRemove)
#define LBAssert (*lpdbf->lpfnLBAssert)
#define DHGetNumber (*lpdbf->lpfnDHGetNumber)
#define SHLocateSymbolFile (*lpdbf->lpfnSHLocateSymbolFile)
#define SHGetSymbol (*lpdbf->lpfnSHGetSymbol)
#define SHLpGSNGetTable (*lpdbf->lpfnSHLpGSNGetTable)
#define SHFindSymbol (*lpdbf->lpfnSHFindSymbol)
#define SHGetDebugData (*lpdbf->lpfnSHGetDebugData)
#define SHGetPublicAddr (*lpdbf->lpfnSHGetPublicAddr)
#define SHAddrToPublicName (*lpdbf->lpfnSHAddrToPublicName)
#endif // _ODP_