Before you set up dynamic filtering, you must:
if (ThreadCtl(_NTO_TCTL_IO, 0)!=EOK) {
fprintf(stderr, "argv[0]: Failed to obtain I/O privileges\n");
return (-1);
}
Then call TraceEvent() with one of these commands:
TraceEvent(_NTO_TRACE_ADDCLASSEVHANDLER, class,
int (*event_hdlr)(event_data_t*),
event_data_t* data_struct);
TraceEvent(_NTO_TRACE_ADDEVENTHANDLER, class, event,
int (*event_hdlr)(event_data_t*),
event_data_t* data_struct);
The additional arguments are:
int event_hdlr (event_data_t *event_data);