ep_requires_lock_not_held ();
+ // Keyword bits 44-47 are reserved for use by EventSources, and every EventSource sets them all.
+ // We filter out those bits here so later comparisons don't have to take them in to account. Without
+ // filtering, EventSources wouldn't show up with Keywords=0.
+ uint64_t session_mask = ~0xF00000000000;
+ // -1 is special, it means all keywords. Don't change it.
+ uint64_t all_keywords = (uint64_t)(-1);
+ if (keywords != all_keywords) {
+ keywords &= session_mask;
+ }
+
EventPipeEvent *instance = ep_event_alloc (
provider,
keywords,