@@ -508,22 +508,56 @@ const (
508
508
DNSAnswers Field = "dns.answers"
509
509
// DNSRcode identifies the field that represents the DNS response code
510
510
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"
511
544
)
512
545
513
546
// String casts the field type to string.
514
547
func (f Field ) String () string { return string (f ) }
515
548
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." ) }
527
561
528
562
func (f Field ) IsPeSection () bool { return f == PeNumSections }
529
563
func (f Field ) IsPeSymbol () bool { return f == PeSymbols || f == PeNumSymbols || f == PeImports }
@@ -966,6 +1000,23 @@ var fields = map[Field]FieldInfo{
966
1000
DNSOptions : {DNSOptions , "dns query options" , kparams .Flags64 , []string {"dns.options in ('ADDRCONFIG', 'DUAL_ADDR')" }, nil , nil },
967
1001
DNSRcode : {DNSRR , "dns response status" , kparams .AnsiString , []string {"dns.rcode = 'NXDOMAIN'" }, nil , nil },
968
1002
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 },
969
1020
}
970
1021
971
1022
// ArgumentOf returns argument data for the specified field.
0 commit comments