文档和示例代码中存在一些与ObRegsterCallbacks相关的差异,相互矛盾。我希望Microsoft的某个人能阅读此板并提供直接的答案。首先,这里是一些背景:VistaSP1第12页的内核数据和过滤支持“OB回调始终在原始进程和线程的上下文中进行。”关于OB_PRE_OPERATION_CALLBACK的MSDN文档“此例程在任意线程上下文中的PASSIVE_LEVEL调用,禁用了正常的内核APC。”WDK中的ObCallback回调注册驱动示例代码使用PsGetCurrentXXX例程与目标对象进行比较。如果您不能准确确定原始进程/线程,那么这些回调的实用性似乎非常有限,但根
我最近一直在尝试使用运行Windows8.1的英特尔芯片组为SBC创建GPIO驱动程序,并已开始在实际系统上对其进行测试。加载驱动程序并更新我正在使用的Intel芯片组后,系统似乎在加载BIOS后挂起。不幸的是,这会禁用我的鼠标、键盘和视频,阻止我进入BIOS或启动管理器。虽然芯片组更新有可能导致系统无法启动,但考虑到我们将该更新用于运行相同芯片组的其他SBC,这种情况极不可能发生。所以我的问题是:Windows内核模式驱动程序是否有可能阻止系统通过BIOS/POST启动?感谢您的帮助,因为很明显,我不是该主题的专家。 最佳答案 是
将kernel32.dll从System32(或SysWOW64,如果您使用32位应用程序进行测试)复制到包含您的EXE文件的目录运行EXE文件ProcessMonitor显示它甚至懒得先检查本地文件夹中的kernel32.dll这似乎与我一直认为的DLL的默认行为相矛盾,即首先从本地应用程序目录加载,如果不存在,则从PATH环境变量加载。但是,对于某些DLL,如ntdll或kernel32,Windows似乎总是首先检查System32。这是预期的行为吗?它可以被覆盖吗?(我知道覆盖这将是不好的做法,但想知道这是否真的可能,为了科学!) 最佳答案
有人有关于为NTFS编写过滤器驱动程序的文章吗?另一个问题——当我为NTFS编写过滤驱动程序时,当我得到MajorFunction我不想处理时,我可以使用IoSkipCurrentIrpStackLocation(...)和IoCallDriver(...)传递我的IRP?当然,对IoCallDriver的调用将包含指向列表中下一个设备的指针谢谢 最佳答案 您真的不想使用WDM执行此操作。严重地。这是一个非常常见的场景,并且有一个专门用于此目的的框架-查看http://msdn.microsoft.com/en-us/library
我目前正在了解Windows操作系统的不同运行模式(内核模式与用户模式)、设备驱动程序、它们各自的优缺点以及一般的计算机安全性。我想创建一个实际示例,说明在内核模式下运行的故障设备驱动程序会对系统造成什么影响,例如破坏用于关键操作系统进程的内存。如何直接在内核模式而不是用户模式下执行我的代码?我是否必须编写虚拟设备驱动程序并安装它才能执行此操作?在哪里可以阅读有关Windows内核和用户模式的更多信息?我知道这样做的危险,并将在仅运行WindowsXP的虚拟机上进行所有实验 最佳答案 “WindowsInternals”一书对所讨论
从程序上来说,是怎么做到的?如何避免用户态程序加载内核模块并调用其函数? 最佳答案 Virtualmemory.非特权进程根本无法访问内核数据结构和代码,因为没有相应的页表条目。并且CPU会阻止非特权进程交换页表。 关于windows-windows如何实现用户态/内核态?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5807123/
如何使用我的Windows内核驱动程序枚举所有符号链接(symboliclink)?像winobj一样(全局??)谢谢! 最佳答案 也许NtOpenDirectoryObject和NtQueryDirectoryObject函数帮助你。 关于windows-枚举内核驱动程序中的所有符号链接(symboliclink),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11602616
在研究了一些Linux内核和X11之后,我想知道GUI组件在windows中的位置是什么。它是否保持像XWindows那样的位置?或者它是内核核心中Windows内核的一部分(或类似的东西)?Qt,GTK+在WindowsMachine上编译时是否包装了NativeWin32API?对不起,我的英语不好! 最佳答案 User32大概是最能和X11相提并论的了,它是实现windows的子组件。Gdi32是传统的图形层。DirectX很重要,不仅仅是对游戏而言,而且是WPF和DirectWrite的底层引擎。WinRT是新的。不,这些都
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion当内核需要向某个外设发送输出时,它如何知道使用哪个驱动程序?
我正在编写一个需要分配非分页内存池的驱动程序,出于性能考虑,该内存必须可以直接从用户模式程序访问。在驱动程序条目中,我用这两种方法分配了一些内存:pMdl=IoAllocateMdl(NULL,4096,FALSE,FALSE,NULL);if(!pMdl){DbgPrintEx(DPFLTR_IHVVIDEO_ID,DPFLTR_INFO_LEVEL,"ErroronIoAllocateMdl.Returningfromdriverearly.\n");returnSTATUS_INSUFFICIENT_RESOURCES;}MmBuildMdlForNonPagedPool(pMd