Chromium Code Reviews| Index: util/win/registration_protocol_win.h |
| diff --git a/client/registration_protocol_win.h b/util/win/registration_protocol_win.h |
| similarity index 56% |
| rename from client/registration_protocol_win.h |
| rename to util/win/registration_protocol_win.h |
| index 68eaa76c3c51adda1c7a3d2f52169b8b78a2a5da..929ff3ac5bad93ccd0bf00de8b1e26d103b3f095 100644 |
| --- a/client/registration_protocol_win.h |
| +++ b/util/win/registration_protocol_win.h |
| @@ -12,28 +12,40 @@ |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| -#ifndef CRASHPAD_CLIENT_REGISTRATION_PROTOCOL_WIN_H_ |
| -#define CRASHPAD_CLIENT_REGISTRATION_PROTOCOL_WIN_H_ |
| +#ifndef CRASHPAD_UTIL_WIN_REGISTRATION_PROTOCOL_WIN_H_ |
| +#define CRASHPAD_UTIL_WIN_REGISTRATION_PROTOCOL_WIN_H_ |
| #include <windows.h> |
| #include <stdint.h> |
| +#include "base/strings/string16.h" |
| #include "util/win/address_types.h" |
| namespace crashpad { |
| #pragma pack(push, 1) |
| + |
| +//! \brief Structure read out of the client process by the crash handler when an |
| +//! exception occurs. |
| +struct ExceptionInformation { |
| + //! \brief The thread on which the exception happened. |
| + DWORD thread_id; |
| + |
| + //! \brief The address of an EXCEPTION_POINTERS structure in the client |
| + //! process that describes the exception. |
| + WinVMAddress exception_pointers; |
|
Mark Mentovai
2015/08/26 21:40:28
Packs better if the WinVMAddress comes before the
scottmg
2015/08/27 01:04:38
Done.
|
| +}; |
| + |
| //! \brief A client registration request. |
| struct RegistrationRequest { |
| //! \brief The PID of the client process. |
| DWORD client_process_id; |
|
Mark Mentovai
2015/08/26 21:40:28
Can the server determine this from the message wit
scottmg
2015/08/27 01:04:38
Right, I don't think it's possible on XP. (swapped
|
| - //! \brief The address, in the client process address space, of a CrashpadInfo |
| - //! structure. |
| - crashpad::WinVMAddress crashpad_info_address; |
| + |
| + //! \brief The address, in the client process address space, of an |
| + //! ExceptionInformation structure. |
| + WinVMAddress exception_information; |
| }; |
| -#pragma pack(pop) |
| -#pragma pack(push, 1) |
| //! \brief A client registration response. |
| //! |
| //! See <a |
| @@ -45,13 +57,25 @@ struct RegistrationResponse { |
| //! signaled to request a crash report. 64-bit clients should convert the |
| //! value to a `HANDLE` using sign-extension. |
| uint32_t request_report_event; |
| - //! \brief An event `HANDLE`, valid in the client process, that will be |
| - //! signaled when the requested crash report is complete. 64-bit clients |
| - //! should convert the value to a `HANDLE` using sign-extension. |
| - uint32_t report_complete_event; |
| }; |
| + |
| #pragma pack(pop) |
| +namespace internal { |
| + |
| +//! \brief Connect over the given \a pipe_name, passing \a request to the |
| +//! server, and reading its reply into \a response. |
| +//! |
| +//! Typically clients will not use this directly, instead using |
| +//! CrashpadClient::SetHandler(). |
| +//! |
| +//! \sa CrashpadClient::SetHandler() |
| +bool RegisterWithCrashHandlerServer(const base::string16& pipe_name, |
| + const RegistrationRequest& request, |
| + RegistrationResponse* response); |
| + |
| +} // namespace internal |
| + |
| } // namespace crashpad |
| -#endif // CRASHPAD_CLIENT_REGISTRATION_PROTOCOL_WIN_H_ |
| +#endif // CRASHPAD_UTIL_WIN_REGISTRATION_PROTOCOL_WIN_H_ |