@@ -508,22 +508,56 @@ const (
508508 DNSAnswers Field = "dns.answers"
509509 // DNSRcode identifies the field that represents the DNS response code
510510 DNSRcode Field = "dns.rcode"
511+
512+ // ThreadpoolPoolID identifies the field that represents the thread pool identifier
513+ ThreadpoolPoolID = "threadpool.id"
514+ // ThreadpoolTaskID identifies the field that represents the thread pool task identifier
515+ ThreadpoolTaskID = "threadpool.task.id"
516+ // ThreadpoolCallbackAddress identifies the field that represents the address of the callback function
517+ ThreadpoolCallbackAddress = "threadpool.callback.address"
518+ // ThreadpoolCallbackSymbol identifies the field that represents the callback symbol
519+ ThreadpoolCallbackSymbol = "threadpool.callback.symbol"
520+ // ThreadpoolCallbackModule identifies the field that represents the module containing the callback symbol
521+ ThreadpoolCallbackModule = "threadpool.callback.module"
522+ // ThreadpoolCallbackContext identifies the field that represents the address of the callback context
523+ ThreadpoolCallbackContext = "threadpool.callback.context"
524+ // ThreadpoolCallbackContextRip identifies the field that represents the value of instruction pointer contained in the callback context
525+ ThreadpoolCallbackContextRip = "threadpool.callback.context.rip"
526+ // ThreadpoolCallbackContextRipSymbol identifies the field that represents the symbol name associated with the instruction pointer in callback context
527+ ThreadpoolCallbackContextRipSymbol = "threadpool.callback.context.rip.symbol"
528+ // ThreadpoolCallbackContextRipModule identifies the field that represents the module name associated with the instruction pointer in callback context
529+ ThreadpoolCallbackContextRipModule = "threadpool.callback.context.rip.module"
530+ // ThreadpoolSubprocessTag identifies the field that represents the service identifier associated with the thread pool
531+ ThreadpoolSubprocessTag = "threadpool.subprocess_tag"
532+ // ThreadpoolTimerDuetime identifies the field that represents the timer due time
533+ ThreadpoolTimerDuetime = "threadpool.timer.duetime"
534+ // ThreadpoolTimerSubqueue identifies the field that represents the memory address of the timer subqueue
535+ ThreadpoolTimerSubqueue = "threadpool.timer.subqueue"
536+ // ThreadpoolTimer identifies the field that represents the memory address of the timer object
537+ ThreadpoolTimer = "threadpool.timer.address"
538+ // ThreadpoolTimerPeriod identifies the field that represents the period of the timer
539+ ThreadpoolTimerPeriod = "threadpool.timer.period"
540+ // ThreadpoolTimerWindow identifies the field that represents the timer tolerate period
541+ ThreadpoolTimerWindow = "threadpool.timer.window"
542+ // ThreadpoolTimerAbsolute identifies the field that indicates if the timer is absolute or relative
543+ ThreadpoolTimerAbsolute = "threadpool.timer.is_absolute"
511544)
512545
513546// String casts the field type to string.
514547func (f Field ) String () string { return string (f ) }
515548
516- func (f Field ) IsPsField () bool { return strings .HasPrefix (string (f ), "ps." ) }
517- func (f Field ) IsKevtField () bool { return strings .HasPrefix (string (f ), "kevt." ) }
518- func (f Field ) IsThreadField () bool { return strings .HasPrefix (string (f ), "thread." ) }
519- func (f Field ) IsImageField () bool { return strings .HasPrefix (string (f ), "image." ) }
520- func (f Field ) IsFileField () bool { return strings .HasPrefix (string (f ), "file." ) }
521- func (f Field ) IsRegistryField () bool { return strings .HasPrefix (string (f ), "registry." ) }
522- func (f Field ) IsNetworkField () bool { return strings .HasPrefix (string (f ), "net." ) }
523- func (f Field ) IsHandleField () bool { return strings .HasPrefix (string (f ), "handle." ) }
524- func (f Field ) IsPeField () bool { return strings .HasPrefix (string (f ), "pe." ) || f == PsChildPeFilename }
525- func (f Field ) IsMemField () bool { return strings .HasPrefix (string (f ), "mem." ) }
526- func (f Field ) IsDNSField () bool { return strings .HasPrefix (string (f ), "dns." ) }
549+ func (f Field ) IsPsField () bool { return strings .HasPrefix (string (f ), "ps." ) }
550+ func (f Field ) IsKevtField () bool { return strings .HasPrefix (string (f ), "kevt." ) }
551+ func (f Field ) IsThreadField () bool { return strings .HasPrefix (string (f ), "thread." ) }
552+ func (f Field ) IsImageField () bool { return strings .HasPrefix (string (f ), "image." ) }
553+ func (f Field ) IsFileField () bool { return strings .HasPrefix (string (f ), "file." ) }
554+ func (f Field ) IsRegistryField () bool { return strings .HasPrefix (string (f ), "registry." ) }
555+ func (f Field ) IsNetworkField () bool { return strings .HasPrefix (string (f ), "net." ) }
556+ func (f Field ) IsHandleField () bool { return strings .HasPrefix (string (f ), "handle." ) }
557+ func (f Field ) IsPeField () bool { return strings .HasPrefix (string (f ), "pe." ) || f == PsChildPeFilename }
558+ func (f Field ) IsMemField () bool { return strings .HasPrefix (string (f ), "mem." ) }
559+ func (f Field ) IsDNSField () bool { return strings .HasPrefix (string (f ), "dns." ) }
560+ func (f Field ) IsThreadpoolField () bool { return strings .HasPrefix (string (f ), "threadpool." ) }
527561
528562func (f Field ) IsPeSection () bool { return f == PeNumSections }
529563func (f Field ) IsPeSymbol () bool { return f == PeSymbols || f == PeNumSymbols || f == PeImports }
@@ -966,6 +1000,23 @@ var fields = map[Field]FieldInfo{
9661000 DNSOptions : {DNSOptions , "dns query options" , kparams .Flags64 , []string {"dns.options in ('ADDRCONFIG', 'DUAL_ADDR')" }, nil , nil },
9671001 DNSRcode : {DNSRR , "dns response status" , kparams .AnsiString , []string {"dns.rcode = 'NXDOMAIN'" }, nil , nil },
9681002 DNSAnswers : {DNSAnswers , "dns response answers" , kparams .Slice , []string {"dns.answers in ('o.lencr.edgesuite.net', 'a1887.dscq.akamai.net')" }, nil , nil },
1003+
1004+ ThreadpoolPoolID : {ThreadpoolPoolID , "thread pool identifier" , kparams .Address , []string {"threadpool.id = '20f5fc02440'" }, nil , nil },
1005+ ThreadpoolTaskID : {ThreadpoolTaskID , "thread pool task identifier" , kparams .Address , []string {"threadpool.task.id = '20f7ecd21f8'" }, nil , nil },
1006+ ThreadpoolCallbackAddress : {ThreadpoolCallbackAddress , "thread pool callback address" , kparams .Address , []string {"threadpool.callback.address = '7ff868739ed0'" }, nil , nil },
1007+ ThreadpoolCallbackSymbol : {ThreadpoolCallbackSymbol , "thread pool callback symbol" , kparams .UnicodeString , []string {"threadpool.callback.symbol = 'RtlDestroyQueryDebugBuffer'" }, nil , nil },
1008+ ThreadpoolCallbackModule : {ThreadpoolCallbackModule , "thread pool module containing the callback symbol" , kparams .UnicodeString , []string {"threadpool.callback.module contains 'ntdll.dll'" }, nil , nil },
1009+ ThreadpoolCallbackContext : {ThreadpoolCallbackContext , "thread pool callback context address" , kparams .Address , []string {"threadpool.callback.context = '1df41e07bd0'" }, nil , nil },
1010+ ThreadpoolCallbackContextRip : {ThreadpoolCallbackContextRip , "thread pool callback thread context instruction pointer" , kparams .Address , []string {"threadpool.callback.context.rip = '1df42ffc1f8'" }, nil , nil },
1011+ ThreadpoolCallbackContextRipSymbol : {ThreadpoolCallbackContextRipSymbol , "thread pool callback thread context instruction pointer symbol" , kparams .UnicodeString , []string {"threadpool.callback.context.rip.symbol = 'VirtualProtect'" }, nil , nil },
1012+ ThreadpoolCallbackContextRipModule : {ThreadpoolCallbackContextRipModule , "thread pool callback thread context instruction pointer symbol module" , kparams .UnicodeString , []string {"threadpool.callback.context.rip.module contains 'ntdll.dll'" }, nil , nil },
1013+ ThreadpoolSubprocessTag : {ThreadpoolSubprocessTag , "thread pool service identifier" , kparams .Address , []string {"threadpool.subprocess_tag = '10d'" }, nil , nil },
1014+ ThreadpoolTimerDuetime : {ThreadpoolTimerDuetime , "thread pool timer due time" , kparams .Uint64 , []string {"threadpool.timer.duetime > 10" }, nil , nil },
1015+ ThreadpoolTimerSubqueue : {ThreadpoolTimerSubqueue , "thread pool timer subqueue address" , kparams .Address , []string {"threadpool.timer.subqueue = '1db401703e8'" }, nil , nil },
1016+ ThreadpoolTimer : {ThreadpoolTimer , "thread pool timer address" , kparams .Address , []string {"threadpool.timer.address = '3e8'" }, nil , nil },
1017+ ThreadpoolTimerPeriod : {ThreadpoolTimerPeriod , "thread pool timer period" , kparams .Uint32 , []string {"threadpool.timer.period = 0'" }, nil , nil },
1018+ ThreadpoolTimerWindow : {ThreadpoolTimerWindow , "thread pool timer tolerate period" , kparams .Uint32 , []string {"threadpool.timer.window = 0'" }, nil , nil },
1019+ ThreadpoolTimerAbsolute : {ThreadpoolTimerAbsolute , "indicates if the thread pool timer is absolute or relative" , kparams .Bool , []string {"threadpool.timer.is_absolute = true'" }, nil , nil },
9691020}
9701021
9711022// ArgumentOf returns argument data for the specified field.
0 commit comments