草庐IT

c - 将内核添加到 Windows 启动菜单

我正在尝试启动内核,但遇到了问题在Windows启动菜单上获取它。我已经编写并构建了带有thisguide的小型测试内核,但我不知道该怎么做获取实际的PE文件以连接到启动菜单。我读了here和here您使用BCDedit将其添加到启动菜单,所以我试着这样做:bcdedit/create/d"TestBoot"/applicationbootsector//gavetheguid:{1c8a5e74-84ff-11e3-a4da-8050f0e41ed6}bcdedit/set{1c8a5e74-84ff-11e3-a4da-8050f0e41ed6}path\Users\Taylor\

c++ - 如何在windows上获取cpu上的实际内核数?

这个问题在这里已经有了答案:HowtogetnumberofcoresinWin32?(5个答案)关闭7年前。我知道std::thread::hardware_concurrency()的存在,但它返回虚拟内核的数量。当它以物理内核数为目标时,该算法可以发挥最佳效果(好5-10%)。我如何在Windows上用C++获取该数字?

c++ - 有没有办法将整个文件从文件系统微型过滤器驱动程序(内核模式)传递到用户模式应用程序?

我有一个使用WDK8.1示例的扫描仪文件系统微型过滤器驱动程序。我想知道我是否可以将整个文件发送到用户端应用程序,这样我就可以进行更复杂的计算,例如MD5哈希或其他任何东西,这样我就不必在mini中编写更复杂的操作过滤器驱动程序,而不是在用户应用程序中,我不介意引入windows.h并且我可以在堆上分配内存而不是使用ExAllocatePoolWithTag和类似的东西。我可以在一次通知中将整个文件传递到用户空间模式吗?如果不是,我将如何进行分块和同步。这是8.1扫描仪文件系统微型过滤器驱动程序示例的接口(interface),它指示微型过滤器驱动程序与用户端应用程序之间的通信:/*+

c++ - Windows 驱动内核 : How enumerate all subdirectories and files?

我在一个小型的antirootkit中工作,我需要添加一个功能:删除rootkit目录和您可能的子目录中的所有文件。那么,首先有必要知道所有这些目录和文件,对吧?为此,我下面的代码已经完成了这项任务的一半。他枚举了特定目录的所有目录和文件,但不“查看”子目录(文件和文件夹)。例如:输出:代码:#includetypedefunsignedintUINT;NTSTATUSEnumFilesInDir(){HANDLEhFile=NULL;UNICODE_STRINGszFileName={0};OBJECT_ATTRIBUTESOa={0};NTSTATUSntStatus=0;IO_S

windows - 将文件内容从内核模式传递到用户模式的最快方法?

我会尽量简短但完整地描述:这是特定于Windows的。使用Windows驱动程序开发工具包(DDK)。我是第一次编写内核模式驱动程序(KMD),之前没有任何内核模式经验。我目前正在使用DDK附带的“扫描仪”微型过滤器示例,并在其上进行扩展以进行练习。“扫描器”微型过滤器是通用“反病毒”类型扫描驱动程序的基本轮廓,它Hook文件创建/关闭并对关联文件进行操作以在批准/拒绝请求的操作之前扫描“坏词”。最终目标是在打开文件时用用户模式应用程序扫描文件,决定微型过滤器是否应该允许操作完成,而不会对正在尝试的进程或用户造成明显的减慢打开文件。当尝试保存时,我还想再次扫描整个文件,以决定是允许保存

windows - 2个windows内核模式驱动程序之间的通信

之前从未开发过任何驱动程序。无论如何,我现在正在编写2个简单的Windows内核模式驱动程序,这2个驱动程序将安装到2个不同的设备上,这些设备连接到2个不同的总线(ISA总线/PCI总线),并且这2个驱动程序需要以某种方式与还期望彼此和数据交换,有什么有效的方法可以实现吗?内核事件可能可以启用同步,但数据交换如何?在用户模式下,管道/套接字可能是一个选项,但在内核模式下,是否有命名管道或其他东西的对应物?谷歌表示没有用于内核模式管道使用的记录API...我对Windows驱动程序框架不是很熟悉,希望我说得有道理..谢谢! 最佳答案

windows - Unix/Linux 系统易受泄漏全局内核对象的影响吗?

在Windows中,有一些对象由系统维护-事件、文件访问句柄、窗口、计时器等,它们不是无限的,因此系统中的所有程序都可以创建不超过50k的对象(我是不确定确切的数字,但对于这个问题来说不是很关键)。所以如果某个程序运行了很长时间并创建了很多对象并且没有释放它们(就像内存泄漏,但这里系统对象被泄漏)系统最终耗尽了对象和其他尝试尝试的程序做一些需要创建任何新系统对象的事情开始从系统功能中获取错误指示。例如,程序A运行并泄漏系统可用的所有对象,然后程序B尝试打开文件但失败,因为系统没有资源来服务该请求。此时唯一的解决方案是重新启动程序A,以便系统回收泄漏的资源。Unix/Linux系统是否存

v79.01 鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上) | 百篇博客分析OpenHarmony源码

百篇博客分析|本篇为:(用户态锁篇)|如何使用快锁Futex(上)进程通讯相关篇为:v26.08鸿蒙内核源码分析(自旋锁)|当立贞节牌坊的好同志v27.05鸿蒙内核源码分析(互斥锁)|同样是锁它却更丰满v28.04鸿蒙内核源码分析(进程通讯)|九种进程间通讯方式速揽v29.05鸿蒙内核源码分析(信号量)|谁在解决任务间的同步v30.07鸿蒙内核源码分析(事件控制)|多对多任务如何同步v33.03鸿蒙内核源码分析(消息队列)|进程间如何异步传递大数据v76.01鸿蒙

module_platform_driver()

在Linux设备驱动开发使用platform平台驱动模型过程中,在定义且初始化好platform_driver结构体变量以后,我们需要向Linux内核注册一个platform驱动。下面介绍两种方法。方法一:/***在驱动入口函数里面调用platform_driver_register函数,platform_driver_register函数*原型如下所示:*/intplatform_driver_register(structplatform_driver*driver)//driver:要注册的platform驱动。//返回值:负数,失败;0,成功。/***还需要在驱动卸载函数中通过plat

Qt音视频开发17-vlc内核回调拿图片进行绘制

一、前言在众多播放器中,支持的种类格式众多,并支持DVD影音光盘,VCD影音光盘及各类流式协议,提供了sdk进行开发,这点是至关重要的,尽管很多优秀的播放器很牛逼,由于没有提供sdk第三方开发,少了很多用户。在Qt中集成vlc开发非常简单,个人不建议用什么Qt-vlc开源组件,建议直接用最原始的方式引入头文件链接库文件直接开撸即可,他的头文件函数名还是非常友好的,基本上以libvlc开头,其实Qt-vlc组件就是对这些函数做了一些封装,阅读里面的源码有很大的参考借鉴意义。直接用句柄方式来播放视频很简单,就几行代码即可,有些时候需要拿到视频数据进行分析,少去非常复杂的解码同步过程,直接用vlc回