问题标签 [windows-kernel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1821 浏览

windows - 使用两个 VirtualBox 主机调试 Windows 内核

我正在运行 Linux,并且在 VirtualBox 中有两台 Windows 7 机器设置。

现在我正在尝试使用第一台机器来调试第二台机器。

所以我为两台机器配置了相同的主机管道,

在此处输入图像描述

在调试器机器中,我启动了等待输入的windbg COM1

在此处输入图像描述

在被调试机器上,我启用了调试模式并重新启动,

但他们似乎并不认识,只是一味的等待。

哪里不对了?或者它只是不可能实现。

0 投票
4 回答
1189 浏览

linux - linux中的整个系统空间地址空间不使用请求分页是真的吗?

我目前正在研究windows,我发现windows在系统空间地址空间中使用了两部分内存,它们分别命名为分页池和非分页池。所以只有窗口的关键部分保存在非分页池中(不使用请求分页)。虽然有人教我在linux中所有的系统空间地址空间都没有使用需求分页的概念吗?如果所有这些信息都是正确的,那么我是否应该得出结论,Windows 运行所需的 RAM 比 linux 少?

0 投票
1 回答
385 浏览

window - 在理解非任意线程上下文方面需要帮助吗?

我正在阅读有关驱动程序同步的 MSDN 文档,并且遇到了这样的声明

司机可以等待,如果

• 驱动程序在非任意线程上下文中执行。也就是说,您可以识别将进入等待状态的线程。实际上,在非任意线程上下文中执行的唯一驱动程序例程是任何驱动程序的 DriverEntry、AddDevice、Reinitialize 和 Unload 例程,以及最高级别驱动程序的调度例程。所有这些例程都由系统直接调用

现在我的问题是,为什么在任意线程上下文中考虑调度例程?由于从用户空间提出请求时会调用读、写等例程,因此我们可以知道是哪个线程在系统空间中执行了该操作??我是我完全搞砸了,或者这可能是一个愚蠢的问题,但仍然可以帮助我,因为我是windwos的新手。

0 投票
3 回答
10627 浏览

windows - windows设备驱动程序中的pdo和fdo有什么区别?

我正在自己研究 Windows 设备驱动程序,我发现很难区分 PDO 和 FDO。让我告诉你我脑子里的流程,如果我错了,请纠正我!

当系统启动时,它会加载将创建 FDO 的根总线驱动程序。现在它会枚举它的子设备,我猜总线驱动程序的一些热插拔方法会被调用,当一个新的子设备被发现时,该方法会通知 PNP 管理器。PNP 管理器将调用根总线驱动程序的 AddDevice() 例程,这将为新总线创建 PDO,例如用于 PCI 等。请详细解释整个流程,这只是我的想象。然后记录了系统将加载将创建 FDO 的 PCI 总线的功能驱动程序?这是什么FDO??为什么我需要那个?根据我的说法,PCI 总线驱动程序也应该遵循与根总线相同的操作,枚举其子节点并为它们创建 PDO,或者通过这个 FDO,它们仅表示 PDO?我很困惑:(!!

0 投票
0 回答
44 浏览

windows - I/O Manager 的型号是否从 WinXP 更改为 WinVista+

我正在尝试 WDM、I/O 管理器和类似的东西。我遇到了这个,讲述了 I/O 管理器的运作方式。我想知道

  1. 这也适用于 WDM(XP 时代)吗?FSD 和所有(!!)
  2. 如果没有,我在哪里可以获得当时 I/O 管理器的详细信息?

我对此表示怀疑,因为在阅读时闻起来很像用户模式驱动程序和内核模式驱动程序,我相信它们在 WDM 中不存在。

0 投票
2 回答
4020 浏览

kernel - 将 WCHAR * 转换为 UNICODE 字符串

首先尝试Windows驱动程序开发。假设 WCHAR 数组不是以空值结尾的,如何将 WCHAR 数组(来自用户空间)转换为 UNICODE_STRING(在内核模式下) ?

我是否应该验证它是否以 null 结尾并且它是否没有分配新的缓冲区(为 null 增加 2)然后使用 RtlAnsiXXX 函数?什么是正确的方法?

谢谢!

0 投票
2 回答
22582 浏览

kernel - 如何开始 Windows 内核编程?

我是一名应用程序开发人员,主要使用 C# 工作。我对 C/C++ 有一定的了解。我对 Windows 内核开发非常着迷和感兴趣。我画了一个布局来学习这个。

为了实现这一点,我需要一些帮助:

请帮忙。

0 投票
1 回答
3245 浏览

windows - 如何从内部卸载 Windows 内核模式驱动程序?

我正在编写一个 Windows 内核驱动程序,我正在尝试实现以下内容。

假设驱动程序已通过具有特定 IOCTL 代码的DeviceIoControl函数从用户模式调用。在这种情况下,驱动程序如何自行卸载?换句话说,如何实现与运行net stop命令相同的行为?

更准确地说,在实现DispatchDeviceControl 回调时我应该写什么

0 投票
2 回答
1121 浏览

windows - VS 2013 内核模式驱动调试

我正在尝试使用 VS 2013 设置内核调试。当我转到 Drivers/Add 添加新目标机器时,它连接到远程计算机并运行大量设置,但总是有 2 个命令失败.

在此处输入图像描述

我在日志中查找了失败的命令,并将其粘贴到批处理文件中并在目标机器上运行。我跑得很好。但是当我尝试从 VS 重新运行添加计算机时,我得到了同样的失败。

我已经尝试过使用 VMware VM 目标和物理 PC 目标进行此操作,并且尝试以相反的方向添加计算机,但我总是遇到相同的故障。我可以互相ping这些机器,所有机器都是Win8 x86。网络发现和共享已开启。Windows 防火墙已关闭。这些是原始操作系统安装,因此机器上除了操作系统、VS2013 和 WDK 8.1 之外什么都没有。

有关如何解决此问题的任何提示?

0 投票
2 回答
3489 浏览

linux - Linux x86 上的内核空间是否映射到用户空间?

似乎在 Windows 32 位上,内核会从总共 4G 的用户虚拟内存空间中预留 1G 的虚拟内存,并将部分内核空间映射到这 1G 空间中。

所以我的问题是:

  1. 在 32 位 Linux 上是否有类似的情况?
  2. 如果是这样,我们如何才能看到整个内存布局?

我认为

只能看到某个进程的用户空间布局..

谢谢!