| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Declaration of a Windows event trace provider class, to allow using | 5 // Declaration of a Windows event trace provider class, to allow using |
| 6 // Windows Event Tracing for logging transport and control. | 6 // Windows Event Tracing for logging transport and control. |
| 7 #ifndef BASE_EVENT_TRACE_PROVIDER_WIN_H_ | 7 #ifndef BASE_EVENT_TRACE_PROVIDER_WIN_H_ |
| 8 #define BASE_EVENT_TRACE_PROVIDER_WIN_H_ | 8 #define BASE_EVENT_TRACE_PROVIDER_WIN_H_ |
| 9 #pragma once | 9 #pragma once |
| 10 | 10 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 // Do nothing if !ShouldLog(level, 0xFFFFFFFF). | 119 // Do nothing if !ShouldLog(level, 0xFFFFFFFF). |
| 120 ULONG Log(const EtwEventClass& event_class, EtwEventType type, | 120 ULONG Log(const EtwEventClass& event_class, EtwEventType type, |
| 121 EtwEventLevel level, const char *message); | 121 EtwEventLevel level, const char *message); |
| 122 ULONG Log(const EtwEventClass& event_class, EtwEventType type, | 122 ULONG Log(const EtwEventClass& event_class, EtwEventType type, |
| 123 EtwEventLevel level, const wchar_t *message); | 123 EtwEventLevel level, const wchar_t *message); |
| 124 | 124 |
| 125 // Log the provided event. | 125 // Log the provided event. |
| 126 ULONG Log(EVENT_TRACE_HEADER* event); | 126 ULONG Log(EVENT_TRACE_HEADER* event); |
| 127 | 127 |
| 128 protected: | 128 protected: |
| 129 // These are called after events have been enabled or disabled. | 129 // Called after events have been enabled, override in subclasses |
| 130 // Override them if you want to do processing at the start or | 130 // to set up state or log at the start of a session. |
| 131 // end of collection. | 131 // Note: This function may be called ETW's thread and may be racy, |
| 132 // Note: These may be called ETW's thread and they may be racy. | 132 // bring your own locking if needed. |
| 133 virtual void OnEventsEnabled() {} | 133 virtual void OnEventsEnabled() {} |
| 134 |
| 135 // Called just before events are disabled, override in subclasses |
| 136 // to tear down state or log at the end of a session. |
| 137 // Note: This function may be called ETW's thread and may be racy, |
| 138 // bring your own locking if needed. |
| 134 virtual void OnEventsDisabled() {} | 139 virtual void OnEventsDisabled() {} |
| 135 | 140 |
| 141 // Called just after events have been disabled, override in subclasses |
| 142 // to tear down state at the end of a session. At this point it's |
| 143 // to late to log anything to the session. |
| 144 // Note: This function may be called ETW's thread and may be racy, |
| 145 // bring your own locking if needed. |
| 146 virtual void PostEventsDisabled() {} |
| 147 |
| 136 private: | 148 private: |
| 137 ULONG EnableEvents(PVOID buffer); | 149 ULONG EnableEvents(PVOID buffer); |
| 138 ULONG DisableEvents(); | 150 ULONG DisableEvents(); |
| 139 ULONG Callback(WMIDPREQUESTCODE request, PVOID buffer); | 151 ULONG Callback(WMIDPREQUESTCODE request, PVOID buffer); |
| 140 static ULONG WINAPI ControlCallback(WMIDPREQUESTCODE request, PVOID context, | 152 static ULONG WINAPI ControlCallback(WMIDPREQUESTCODE request, PVOID context, |
| 141 ULONG *reserved, PVOID buffer); | 153 ULONG *reserved, PVOID buffer); |
| 142 | 154 |
| 143 GUID provider_name_; | 155 GUID provider_name_; |
| 144 TRACEHANDLE registration_handle_; | 156 TRACEHANDLE registration_handle_; |
| 145 TRACEHANDLE session_handle_; | 157 TRACEHANDLE session_handle_; |
| 146 EtwEventFlags enable_flags_; | 158 EtwEventFlags enable_flags_; |
| 147 EtwEventLevel enable_level_; | 159 EtwEventLevel enable_level_; |
| 148 | 160 |
| 149 // We don't use this, but on XP we're obliged to pass one in to | 161 // We don't use this, but on XP we're obliged to pass one in to |
| 150 // RegisterTraceGuids. Non-const, because that's how the API needs it. | 162 // RegisterTraceGuids. Non-const, because that's how the API needs it. |
| 151 static TRACE_GUID_REGISTRATION obligatory_guid_registration_; | 163 static TRACE_GUID_REGISTRATION obligatory_guid_registration_; |
| 152 | 164 |
| 153 DISALLOW_COPY_AND_ASSIGN(EtwTraceProvider); | 165 DISALLOW_COPY_AND_ASSIGN(EtwTraceProvider); |
| 154 }; | 166 }; |
| 155 | 167 |
| 156 #endif // BASE_EVENT_TRACE_PROVIDER_WIN_H_ | 168 #endif // BASE_EVENT_TRACE_PROVIDER_WIN_H_ |
| OLD | NEW |