Source code of Windows XP (NT5)
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.

99 lines
2.3 KiB

  1. #ifndef PCHREXEC_H
  2. #define PCHREXEC_H
  3. #define ERRORREP_HANG_PIPENAME L"\\\\.\\pipe\\PCHHangRepExecPipe"
  4. #define ERRORREP_FAULT_PIPENAME L"\\\\.\\pipe\\PCHFaultRepExecPipe"
  5. #define ERRORREP_PIPE_BUF_SIZE 8192
  6. /*
  7. * Data structure passed for a remote exec request
  8. *
  9. * NOTE: pointers are self relative
  10. *
  11. */
  12. typedef enum tagEExecServStatus
  13. {
  14. essErr = 0,
  15. essOk,
  16. essOkQueued,
  17. } EExecServStatus;
  18. // *** Note: the size of these structures must be divisible by sizeof(WCHAR)
  19. // or we'll get an alignment fault on ia64 (and other alignment
  20. // sensitive processors)
  21. typedef struct tagSPCHExecServGenericReply
  22. {
  23. DWORD cb;
  24. EExecServStatus ess;
  25. DWORD dwErr;
  26. } SPCHExecServGenericReply;
  27. typedef struct tagSPCHExecServHangRequest
  28. {
  29. DWORD cbTotal;
  30. DWORD cbESR;
  31. DWORD pidReqProcess;
  32. BOOL fIs64bit;
  33. ULONG ulSessionId;
  34. UINT64 wszEventName;
  35. DWORD dwpidHung;
  36. DWORD dwtidHung;
  37. } SPCHExecServHangRequest;
  38. // this structure MUST have the same initial 3 elements as SPCHExecServGenericReply
  39. typedef struct tagSPCHExecServHangReply
  40. {
  41. DWORD cb;
  42. EExecServStatus ess;
  43. DWORD dwErr;
  44. // NOTE: The handle for hProcess is converted from the remove exec
  45. // server into the requestors process using the pidReqProcess
  46. // in the request.
  47. HANDLE hProcess;
  48. } SPCHExecServHangReply;
  49. typedef struct tagSPCHExecServFaultRequest
  50. {
  51. DWORD cbTotal;
  52. DWORD cbESR;
  53. DWORD pidReqProcess;
  54. BOOL fIs64bit;
  55. DWORD thidFault;
  56. UINT64 pvFaultAddr;
  57. UINT64 wszExe;
  58. UINT64 pEP;
  59. } SPCHExecServFaultRequest;
  60. // this structure MUST have the same initial 3 elements as SPCHExecServGenericReply
  61. typedef struct tagSPCHExecServFaultReply
  62. {
  63. DWORD cb;
  64. EExecServStatus ess;
  65. DWORD dwErr;
  66. // NOTE: The handle for hProcess is converted from the remove exec
  67. // server into the requestors process using the pidReqProcess
  68. // in the request.
  69. HANDLE hProcess;
  70. // these point into data immediately following the struct
  71. UINT64 wszDir;
  72. UINT64 wszDumpName;
  73. } SPCHExecServFaultReply;
  74. #endif