| 190 | } |
| 191 | |
| 192 | ULONG Enable( |
| 193 | TRACEHANDLE sessionHandle, |
| 194 | GUID const& providerGuid, |
| 195 | ULONG controlCode = EVENT_CONTROL_CODE_ENABLE_PROVIDER) |
| 196 | { |
| 197 | if (pListener_) { |
| 198 | pListener_->ProviderEnabled(providerGuid, anyKeywordMask_, allKeywordMask_, maxLevel_, controlCode); |
| 199 | } |
| 200 | |
| 201 | if (!isDryRun_) { |
| 202 | ENABLE_TRACE_PARAMETERS* pparams = nullptr; |
| 203 | if (filterDesc_.Ptr != 0) { |
| 204 | pparams = ¶ms_; |
| 205 | |
| 206 | // EnableTraceEx2() fails unless Size agrees with Count. |
| 207 | auto filterEventIds = (EVENT_FILTER_EVENT_ID*)filterDesc_.Ptr; |
| 208 | filterDesc_.Size = sizeof(EVENT_FILTER_EVENT_ID) + sizeof(USHORT) * (filterEventIds->Count - ANYSIZE_ARRAY); |
| 209 | } |
| 210 | |
| 211 | return EnableTraceEx2(sessionHandle, &providerGuid, controlCode, |
| 212 | maxLevel_, anyKeywordMask_, allKeywordMask_, 0, pparams); |
| 213 | } |
| 214 | return ERROR_SUCCESS; |
| 215 | } |
| 216 | |
| 217 | ULONG EnableWithoutFiltering( |
| 218 | TRACEHANDLE sessionHandle, |
no test coverage detected