草庐IT

windows - 如何注册为 NT 内核事件的实时 ETW 使用者?

我已经能够成功地使用logman来转储一些内核跟踪。但是,我希望能够以编程方式在我的应用程序中启用内核事件的实时消耗(主要是线程/进程创建/删除和文件I/O)。完成此任务的最佳方法是什么? 最佳答案 您在StartTrace中启用内核事件.在EVENT_TRACE_PROPERTIES您传递给StartTrace,EnableFlags包含不同内核事件提供程序的各种标志。将EVENT_TRACE_PROPERTIES中的LogFileMode设置为EVENT_TRACE_REAL_TIME_MODE成为实时消费者。然后您可以使用Pr

c++ - 了解调用者来自哪个 DLL

目前,我有一个C++exe项目,动态加载N个DLL。这些DLL将执行对exe项目中的函数的调用。现在,在我的exe项目中,我想知道调用者来自哪些DLL。是否可以使用任何可用的WindowsAPI来做到这一点? 最佳答案 这取决于您的实际目标。如果您认为DLL可能是恶意的(也就是说,如果您希望它们尝试欺骗您),则不能这样做。但是,如果它只是用于调试或日志记录或类似的相对无害的事情,您可以查看堆栈并获取ret指令将用于返回调用者的地址,枚举加载的DLL和测试该地址在其中的哪一个。要获得“返回地址”,您可以使用_ReturnAddress

c# - 是否可以将事件处理程序放在与调用者不同的线程上?

假设我有一个名为Tasking的组件(我无法修改),它公开了一个方法“DoTask”,该方法执行一些可能冗长的计算并通过事件TaskCompleted返回结果。通常这是在用户获得结果后关闭的Windows窗体中调用的。在我的特定场景中,我需要将一些数据(数据库记录)与TaskCompleted中返回的数据相关联,并使用它来更新数据库记录。我研究了使用AutoResetEvent来通知事件何时被处理。问题是AutoResetEvent.WaitOne()将阻塞并且永远不会调用事件处理程序。通常AutoResetEvents被称为一个单独的线程,所以我猜这意味着事件处理程序与调用的方法位于

c# - 在 setter 中确定调用者——或静默设置属性

给定标准View模型实现,当属性更改时,是否有任何方法可以确定更改的发起者?换句话说,在下面的View模型中,我希望“PropertyChanged”事件的“sender”参数是调用Prop1setter的实际对象:publicclassViewModel:INotifyPropertyChanged{publicdoubleProp1{get{return_prop1;}set{if(_prop1==value)return;_prop1=value;//here,canIdeterminethesender?RaisePropertyChanged(propertyName:"Pr

c# - References of References with COM 调用者

这个问题在这里已经有了答案:AddmanagedDLLdependenciedtounmanagedC++project(1个回答)关闭6年前。我有这样一个场景:使用VBA从MSAccess应用程序调用COM调用我们正在构建的C#库,该库引用了Newtonsoft.Jsonv9库使用nuget包,它们自己依赖Newtonsoft.Jsonv6(例如,Microsoft.AspNet.WebApi.Client)当他们尝试使用Newtonsoft.Json(或与我们的C#库引用的版本不同的任何库)时,它自己的黑盒代码中的依赖库会崩溃错误:Couldnotloadfileorassembl

c# - 无法确定调用者的应用程序身份?

我正在VS2010中为WindowsPhone编写Silverlightpivot应用程序。我刚刚添加了来自msdnhere的示例代码.现在每次我重新加载设计器时都会出现异常:Unabletodetermineapplicationidentityofthecaller.atSystem.IO.IsolatedStorage.IsolatedStorage.InitStore(IsolatedStorageScopescope,TypeappEvidenceType)atSystem.IO.IsolatedStorage.IsolatedStorageFile.GetStore(Iso

c# - 程序集不允许部分信任的调用者

如何更改我的库以允许部分信任的调用者?我收到以下错误:ServerErrorin'/'Application.SecurityExceptionDescription:Theapplicationattemptedtoperformanoperationnotallowedbythesecuritypolicy.Tograntthisapplicationtherequiredpermissionpleasecontactyoursystemadministratororchangetheapplication'strustlevelintheconfigurationfile.Exc

javascript - 如何使用 attachEvent 引用调用者对象 ("this")

在IE中使用.attachEvent()方法,如何使用this?在普通浏览器中,使用.addEventListener,varthis指向元素,而在IE中它指向窗口对象。我需要它来处理以下代码:varelement=//theelement,doesn'tmatterhowitisobtainedelement.addAnEvent=function(name,funct){if(element.addEventListener)//WorksinNORMALbrowsers...elseif(element.attachEvent){element.attachEvent("on"+

javascript - 有没有办法在被调用者中获取调用者函数的名称?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Javascripthowdoyoufindthecallerfunction?今天早上我正在尝试使用javascript/jQuery并trycatch当前正在执行的函数的调用者名称。因此在下面的示例中,日志将显示runMe作为调用方,showMe作为被调用方。jQuery(document).ready(function($){functionshowMe(){//shouldlogtherunMeasthecallerandshowMeascalleeconsole.log('Callee:',argu

javascript - 如何获取调用者事件和dom元素id

functionHello(){varcaller=arguments.callee.caller;alert(caller);}如何在不传递Hello函数中的任何参数的情况下从上面的Hello函数获取按钮ID 最佳答案 事件对象自动传递给Hello函数。您需要将其作为参数接收,然后进行一些跨平台工作以获取该元素。JS框架将帮助您解决这个问题。functionHello(e){varcaller=e.target||e.srcElement;console.log(caller);}编辑+1安德鲁在下面的评论。使用addEventL