100 lines
2.4 KiB
OpenEdge ABL
100 lines
2.4 KiB
OpenEdge ABL
#ifndef PCHREXEC_H
|
|
#define PCHREXEC_H
|
|
|
|
#define ERRORREP_HANG_PIPENAME L"\\\\.\\pipe\\PCHHangRepExecPipe"
|
|
#define ERRORREP_FAULT_PIPENAME L"\\\\.\\pipe\\PCHFaultRepExecPipe"
|
|
#define ERRORREP_PIPE_BUF_SIZE 8192
|
|
|
|
/*
|
|
* Data structure passed for a remote exec request
|
|
*
|
|
* NOTE: pointers are self relative
|
|
*
|
|
*/
|
|
|
|
typedef enum tagEExecServStatus
|
|
{
|
|
essErr = 0,
|
|
essOk,
|
|
essOkQueued,
|
|
} EExecServStatus;
|
|
|
|
|
|
// *** Note: the size of these structures must be divisible by sizeof(WCHAR)
|
|
// or we'll get an alignment fault on ia64 (and other alignment
|
|
// sensitive processors)
|
|
|
|
|
|
typedef struct tagSPCHExecServGenericReply
|
|
{
|
|
DWORD cb;
|
|
|
|
EExecServStatus ess;
|
|
DWORD dwErr;
|
|
|
|
} SPCHExecServGenericReply;
|
|
|
|
typedef struct tagSPCHExecServHangRequest
|
|
{
|
|
DWORD cbTotal;
|
|
DWORD cbESR;
|
|
DWORD pidReqProcess;
|
|
|
|
BOOL fIs64bit;
|
|
ULONG ulSessionId;
|
|
|
|
UINT64 wszEventName;
|
|
DWORD dwpidHung;
|
|
DWORD dwtidHung;
|
|
} SPCHExecServHangRequest;
|
|
|
|
|
|
// this structure MUST have the same initial 3 elements as SPCHExecServGenericReply
|
|
typedef struct tagSPCHExecServHangReply
|
|
{
|
|
DWORD cb;
|
|
|
|
EExecServStatus ess;
|
|
DWORD dwErr;
|
|
|
|
// NOTE: The handle for hProcess is converted from the remove exec
|
|
// server into the requestors process using the pidReqProcess
|
|
// in the request.
|
|
HANDLE hProcess;
|
|
} SPCHExecServHangReply;
|
|
|
|
typedef struct tagSPCHExecServFaultRequest
|
|
{
|
|
DWORD cbTotal;
|
|
DWORD cbESR;
|
|
DWORD pidReqProcess;
|
|
|
|
BOOL fIs64bit;
|
|
|
|
DWORD thidFault;
|
|
UINT64 pvFaultAddr;
|
|
UINT64 wszExe;
|
|
UINT64 pEP;
|
|
} SPCHExecServFaultRequest;
|
|
|
|
// this structure MUST have the same initial 3 elements as SPCHExecServGenericReply
|
|
typedef struct tagSPCHExecServFaultReply
|
|
{
|
|
DWORD cb;
|
|
|
|
EExecServStatus ess;
|
|
DWORD dwErr;
|
|
|
|
// NOTE: The handle for hProcess is converted from the remove exec
|
|
// server into the requestors process using the pidReqProcess
|
|
// in the request.
|
|
HANDLE hProcess;
|
|
|
|
// these point into data immediately following the struct
|
|
UINT64 wszDir;
|
|
UINT64 wszDumpName;
|
|
} SPCHExecServFaultReply;
|
|
|
|
|
|
#endif
|