@@ -431,37 +431,76 @@ def GetWindbgExtensionApis64(self):
431431 raise exception .E_NOTIMPL_Error
432432
433433 def GetNumberEventFilters (self ):
434- raise exception .E_NOTIMPL_Error
434+ n_events = c_ulong ()
435+ n_spec_exc = c_ulong ()
436+ n_arb_exc = c_ulong ()
437+ hr = dbg ._base ._control ._ctrl .GetNumberEventFilters (byref (n_events ), byref (n_spec_exc ), byref (n_arb_exc ))
438+ exception .check_err (hr )
439+ return (n_events .value , n_spec_exc .value , n_arb_exc .value )
435440
436- def GetEventFilterText (self ):
437- raise exception .E_NOTIMPL_Error
441+ def GetEventFilterText (self , index , sz ):
442+ if sz == 0 :
443+ return None
444+ len = c_ulong ()
445+ val = create_string_buffer (sz )
446+ hr = dbg ._base ._control ._ctrl .GetEventFilterText (index , val , sz , byref (len ))
447+ exception .check_err (hr )
448+ return val .value [:len .value ].decode ()
438449
439- def GetEventFilterCommand (self ):
440- raise exception .E_NOTIMPL_Error
450+ def GetEventFilterCommand (self , index , sz ):
451+ if sz == 0 :
452+ return None
453+ len = c_ulong ()
454+ val = create_string_buffer (sz )
455+ hr = dbg ._base ._control ._ctrl .GetEventFilterCommand (index , val , sz , byref (len ))
456+ exception .check_err (hr )
457+ return val .value [:len .value ].decode ()
441458
442459 def SetEventFilterCommand (self ):
443460 raise exception .E_NOTIMPL_Error
444461
445- def GetSpecificFilterParameters (self ):
446- raise exception .E_NOTIMPL_Error
462+ def GetSpecificFilterParameters (self , start , count ):
463+ params = (DbgEng ._DEBUG_SPECIFIC_FILTER_PARAMETERS * count )()
464+ parray = cast (params , POINTER (DbgEng ._DEBUG_SPECIFIC_FILTER_PARAMETERS ))
465+ hr = dbg ._base ._control ._ctrl .GetSpecificFilterParameters (start , count , parray )
466+ exception .check_err (hr )
467+ return parray
447468
448- def SetSpecificFilterParameters (self ):
449- raise exception .E_NOTIMPL_Error
469+ def SetSpecificFilterParameters (self , start , count , parray ):
470+ hr = dbg ._base ._control ._ctrl .SetSpecificFilterParameters (start , count , parray )
471+ exception .check_err (hr )
450472
451- def GetSpecificFilterArgument (self ):
452- raise exception .E_NOTIMPL_Error
473+ def GetSpecificFilterArgument (self , index , sz ):
474+ if sz == 0 :
475+ return None
476+ len = c_ulong ()
477+ val = create_string_buffer (sz )
478+ hr = dbg ._base ._control ._ctrl .GetSpecificFilterArgument (index , val , sz , byref (len ))
479+ exception .check_err (hr )
480+ return val .value [:len .value ].decode ()
453481
454482 def SetSpecificFilterArgument (self ):
455483 raise exception .E_NOTIMPL_Error
456484
457485 def GetExceptionFilterParameters (self ):
458- raise exception .E_NOTIMPL_Error
486+ params = (DbgEng ._DEBUG_EXCEPTION_FILTER_PARAMETERS * count )()
487+ parray = cast (params , POINTER (DbgEng ._DEBUG_EXCEPTION_FILTER_PARAMETERS ))
488+ hr = dbg ._base ._control ._ctrl .GetExceptionFilterParameters (count , codes , start , parray )
489+ exception .check_err (hr )
490+ return parray
459491
460492 def SetExceptionFilterParameters (self ):
461- raise exception .E_NOTIMPL_Error
493+ hr = dbg ._base ._control ._ctrl .SetExceptionFilterParameters (count , parray )
494+ exception .check_err (hr )
462495
463- def GetExceptionFilterSecondCommand (self ):
464- raise exception .E_NOTIMPL_Error
496+ def GetExceptionFilterSecondCommand (self , index , sz ):
497+ if sz == 0 :
498+ return None
499+ len = c_ulong ()
500+ val = create_string_buffer (sz )
501+ hr = dbg ._base ._control ._ctrl .GetExceptionFilterSecondCommand (index , val , sz , byref (len ))
502+ exception .check_err (hr )
503+ return val .value [:len .value ].decode ()
465504
466505 def SetExceptionFilterSecondCommand (self ):
467506 raise exception .E_NOTIMPL_Error
0 commit comments