OLD | NEW |
1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 uint64_t token; | 75 uint64_t token; |
76 }; | 76 }; |
77 | 77 |
78 //! \brief The message passed from client to server by | 78 //! \brief The message passed from client to server by |
79 //! SendToCrashHandlerServer(). | 79 //! SendToCrashHandlerServer(). |
80 struct ClientToServerMessage { | 80 struct ClientToServerMessage { |
81 //! \brief Indicates which field of the union is in use. | 81 //! \brief Indicates which field of the union is in use. |
82 enum Type : uint32_t { | 82 enum Type : uint32_t { |
83 //! \brief For RegistrationRequest. | 83 //! \brief For RegistrationRequest. |
84 kRegister, | 84 kRegister, |
| 85 |
85 //! \brief For ShutdownRequest. | 86 //! \brief For ShutdownRequest. |
86 kShutdown, | 87 kShutdown, |
| 88 |
| 89 //! \brief An empty message sent by the initial client in asynchronous mode. |
| 90 //! No data is required, this just confirms that the server is ready to |
| 91 //! accept client registrations. |
| 92 kPing, |
87 } type; | 93 } type; |
88 | 94 |
89 union { | 95 union { |
90 RegistrationRequest registration; | 96 RegistrationRequest registration; |
91 ShutdownRequest shutdown; | 97 ShutdownRequest shutdown; |
92 }; | 98 }; |
93 }; | 99 }; |
94 | 100 |
95 //! \brief A client registration response. | 101 //! \brief A client registration response. |
96 struct RegistrationResponse { | 102 struct RegistrationResponse { |
(...skipping 24 matching lines...) Expand all Loading... |
121 //! server, storing the server's reply into \a response. | 127 //! server, storing the server's reply into \a response. |
122 //! | 128 //! |
123 //! Typically clients will not use this directly, instead using | 129 //! Typically clients will not use this directly, instead using |
124 //! CrashpadClient::SetHandler(). | 130 //! CrashpadClient::SetHandler(). |
125 //! | 131 //! |
126 //! \sa CrashpadClient::SetHandler() | 132 //! \sa CrashpadClient::SetHandler() |
127 bool SendToCrashHandlerServer(const base::string16& pipe_name, | 133 bool SendToCrashHandlerServer(const base::string16& pipe_name, |
128 const ClientToServerMessage& message, | 134 const ClientToServerMessage& message, |
129 ServerToClientMessage* response); | 135 ServerToClientMessage* response); |
130 | 136 |
| 137 //! \brief Wraps CreateNamedPipe() to create a single named pipe instance. |
| 138 //! |
| 139 //! \param[in] pipe_name The name to use for the pipe. |
| 140 //! \param[in] first_instance If `true`, the named pipe instance will be |
| 141 //! created with `FILE_FLAG_FIRST_PIPE_INSTANCE`. This ensures that the the |
| 142 //! pipe name is not already in use when created. The first instance will be |
| 143 //! created with an untrusted integrity SACL so instances of this pipe can |
| 144 //! be connected to by processes of any integrity level. |
| 145 HANDLE CreateNamedPipeInstance(const std::wstring& pipe_name, |
| 146 bool first_instance); |
| 147 |
131 } // namespace crashpad | 148 } // namespace crashpad |
132 | 149 |
133 #endif // CRASHPAD_UTIL_WIN_REGISTRATION_PROTOCOL_WIN_H_ | 150 #endif // CRASHPAD_UTIL_WIN_REGISTRATION_PROTOCOL_WIN_H_ |
OLD | NEW |