我需要在内核模式WFP驱动程序和用户模式应用程序之间进行双向通信。驱动程序通过将URL传递给应用程序来启动通信,然后应用程序对该URL进行分类(娱乐、新闻、成人等)并将该类别传递回驱动程序。驱动程序需要知道过滤器功能中的类别,因为它可能会根据该信息阻止某些网页。我在应用程序中有一个线程正在发出I/O请求,驱动程序将使用URL和GUID完成,然后应用程序会将类别写入该GUID下的注册表中,驱动程序将在其中获取它。不幸的是,正如驱动程序验证者指出的那样,这是不稳定的,因为Zw注册表函数必须在PASSIVE_LEVEL运行。我正在考虑用映射内存缓冲区尝试同样的事情,但我不确定中断要求是什么。
正如标题所暗示的,我对获取仅在内核模式下进程使用的CPU时钟周期很感兴趣。我知道有一个名为“QueryProcessCycleTime”的API可以返回CPU时钟进程的线程使用的周期。但这个值包括在用户模式和内核模式下花费的周期。我怎样才能获得仅在内核模式下花费的周期?我需要使用性能计数器来获取它吗?如果是,我应该使用哪一个?预先感谢您的回答。 最佳答案 我刚刚发现一篇有趣的文章,几乎描述了您的要求。在MSDNInternals上.他们在那里写道,如果您使用的是C#或C++/CLI,您可以轻松地从System.Diagnostic.
我正在编写一个内核驱动程序,它应该读取(在某些情况下还写入)内核session空间(win32k.sys)中的一些内存地址。我读过另一个主题,例如在Windbg中,我应该将上下文更改为随机用户进程以读取内核session空间的内存(使用.process/p)。我怎样才能在内核驱动程序中做到这一点?我应该创建一个与驱动程序通信的用户进程(这是我现在的想法,但我希望有更好的解决方案)还是有更简单的解决方案? 最佳答案 session空间未映射到系统地址空间(驱动程序共享,如果未附加到任何进程)。这就是为什么您在访问win32k时出现蓝屏
有什么方法可以故意让内核崩溃(例如,内核崩溃、蓝屏、黑屏或其他)。假设我可以更改任何寄存器并拥有系统的管理权限。我想在Windows和Linux平台上演示这一点。感谢您的任何意见! 最佳答案 在Linux中,您必须使用CONFIG_MAGIC_SYSRQ选项编译内核,然后您可以通过将crash命令写入/proc/sysrq-trigger来使内核崩溃,或者按Alt+SysRq+C。查看documentation了解详情。在Windows中,您必须为键盘驱动程序设置CrashOnCtrlScroll注册表项,然后重新启动,然后您可以按
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion我可以说在SYSTEM权限下运行的进程(比如cmd.exe)正在内核模式下运行吗?我的意思是,这些概念(在SYSTEM权限下运行的进
我已经提到了这个post:但没有帮助。发行edKd_DEFAULT_Mask8没有引起任何变化。而且我不知道如何在此处添加DWORDHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\DebugPrintFilter调用了值为8的DEFAULT,因为我在我的注册表下看不到DebugPrintFilter?我有办法验证是否安装了我的硬件的调试驱动程序,但即使在验证之后,我似乎也无法在windbg中获得内核跟踪。有一个工具叫DbgView.exe,因为我启用了以下捕获选项:CaptureWin32Captur
在Linux中,tee命令将数据从stdin复制到stdout和文件;通过利用tee和splice系统调用,可以在数据永远不会离开内核空间的情况下实现此功能。在Windows上实现tee命令并且数据永远不会离开内核空间需要哪些函数?虽然tee命令有一个简单的实现,包括read、open和write将数据复制到用户空间,我特别感兴趣的是学习如何在数据不离开内核空间的情况下分割文件流。 最佳答案 这个问题的前提是错误的。tee命令不依赖于tee()或splice()系统调用,也不是零拷贝;它基本上实现为:openfileforwriti
不知是否有人能简单地告诉我(我知道这不是一个简单的主题)内核定时器对象是如何用于同步对内核中数据结构的访问的?编辑:内核定时器对象是内核调度程序对象的一部分,内核调度程序对象是内核的一组同步对象。我还想知道计时器对象是否是线程在能够继续之前必须等待获取句柄的东西,或者它是线程等待获取句柄的计时器到期时触发的回调?我希望这是有道理的。内核对我来说是一个新主题。 最佳答案 简短回答:计时器对象不用于同步对内核中数据结构的访问。为此,NT内核具有快速互斥、保护互斥、推锁、互斥对象等功能。我不太明白你的问题——你在说什么数据结构?不过,我将
我有一个内核驱动程序。我如何枚举我的内核驱动程序中指定进程的所有打开句柄?我想关闭这些句柄。谢谢! 最佳答案 Iwanttoclosethesehandles.就其值(value)而言,仅仅因为可以做某事,并不意味着应该做。这是个坏主意。也就是说,可以使用对Zw/NtQuerySystemInformation的未记录调用来枚举所有进程的所有句柄。具有信息类SystemHandleInformation。使用这些术语进行网络搜索会得到您想要的结果。 关于c-如何枚举内核中指定进程的所有打
BecausePOSIX.1compliancewasamandatorygoalforWindows,theoperatingsystemwasdesignedtoensurethattherequiredbasesystemsupportwaspresenttoallowfortheimplementationofaPOSIX.1subsystem(suchastheforkfunction,whichisimplementedintheWindowsexecutive,andthesupportforhardfilelinksintheWindowsfilesystem).这个f