草庐IT

chrom内核

全部标签

windows - Windows 操作系统中的内核内存包含什么?

众所周知,在32位Windows操作系统下运行的程序只有2GB的可用虚拟内存。还知道其他2GB保留为内核空间。但是那个内核空间实际上是什么?我能理解内核本身需要保留,但为什么内核空间在进程的VAS中?谢谢。 最佳答案 获取WindowsInternals一书,它详细描述了这一点。不过,对于简短的总结,内核虚拟地址(KVA)空间中的一些内容:1)内核和HAL2)设备驱动3)内核模式堆(称为执行池,我总是觉得很有趣)4)通过句柄导出到用户态的对象(进程、线程、事件、互斥等对象)5)系统PTE,将各种有趣的东西映射到肮脏的用户模式应用程序

Windows 内核驱动 Boot\winlogon 完成回调

当引导过程完成或用户登录时,我能否获得对内核驱动程序的事件回调? 最佳答案 简单的答案是否定的。长答案是肯定的,但为什么呢?我会回答第二部分,因为它更容易。您可以轻松注册以在启动任何进程时接收通知。对WindowsInternals的简短检查会告诉您,从Vista及更高版本开始,进程userinit.exe是任何给定用户session中要执行的第一个进程。对于第一部分,这会根据您对引导过程的定义而发生很大变化。是在加载GUI时吗?是电脑可以接收网络请求的时候吗?哪些网络请求(TCP/IP、SMB、RPC)重要吗?每个问题的答案都非常

windows - 访问设备配置空间-win内核PCI设备

我正在编写获取pci设备的方法,以编程方式给定供应商ID、设备ID(就像Linux内核中的pci_get_device一样)。为此,我需要获取设备对象配置。我从这里读到同样的内容:http://msdn.microsoft.com/en-us/library/windows/hardware/ff558707(v=vs.85).aspx现在为了测试这个,我制作了假驱动程序-服务安装框架,它将安装我的I/O设备驱动程序,在DriverEntry中我可以测试这个PCI功能。但是操作系统因irql_not_less_or_equal而崩溃,在irp=IoBuildSynchronousFsd

windows - 用户级线程内核级线程和纤程

我知道纤程在线程的上下文中运行。它们只是用户级别的。我知道线程可以是用户级或内核级。当您在用户级应用程序中创建线程时,它也是用户级的吗?您能否在您的用户应用程序中创建内核级线程?这些用户级线程也是内核调度的?当您在.NET中调用CreateThread时,内核如何发挥作用?CreateThread函数是否需要通过susbsystemdll到执行层,一直到内核才能创建用户级线程? 最佳答案 在Windows平台上,用户态进程(应用程序)中的线程是用户态线程,内核态进程中的线程是内核态线程。您不能在用户模式进程中创建内核模式线程。在Wi

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

我正在尝试使用VS2013设置内核调试。当我转到Drivers/Add以添加新的目标机器时,它会连接到远程计算机并运行大量设置,但总是有2失败的命令。我在日志中查找了失败的命令,并将其粘贴到批处理文件中并在目标机器上运行。我跑得很好。但是当我尝试从VS重新运行“添加计算机”时,我遇到了同样的失败。RemoteExecute:Binary:$KitRoot$\Testing\Runtimes\TAEF\te.exeRemoteExecution:Arguments:"%SystemDrive%\DriverTest\Run\DriverTestTasks.dll"/select:"@Na

windows - 测试 MS-CAPI CSP,即使使用 WinDbg 内核调试,签名也会失败

尝试在Win7下测试一个新的CSP。将启动配置设置为允许内核调试,运行WndDbg并选择file:kerneldebug并设置为本地。尝试将signtool与我的新CSP一起使用仍然会导致签名失败检查。环境是:OSName:MicrosoftWindows7HomePremiumOSVersion:6.1.7601ServicePack1Build7601OSManufacturer:MicrosoftCorporationOSConfiguration:StandaloneWorkstationOSBuildType:MultiprocessorFreeSystemModel:Del

windows - 内核模式驱动程序和 IOCTL

我正在尝试做的事情:用户模式应用程序将进程ID发送给驱动程序驱动程序获取指定进程ID的句柄驱动程序将打开的句柄传递给用户模式应用我不确定这段代码是否完全有效。我对驱动比较陌生,所以我还没有设置调试,虚拟机也没有下载完成(连接慢的问题)。从用户模式应用程序获取进程ID应该工作正常,它应该作为ProcessId存储在PROCESS_INFO结构中。打开的句柄存储在与要发送回用户模式应用程序的ProcessHandle相同的结构中。我不确定如何将数据从内核返回到用户模式,也许有人可以简要解释一下。这是我的代码:#include#includeDRIVER_INITIALIZEDriverEn

windows - iPython ssh 从 Windows qtconsole 到远程 iPython 内核

我想在Linux机器上运行iPython内核,然后在Windows机器上远程连接到它。ipython内核工作正常,我可以在Linux机器上本地将qtconsole连接到它。在Windows上,我安装了ipython和paramiko作为它的ssh客户端。我在Windows7x64cmd上运行以下命令D:\...\.ssh>ipythonqtconsole--IPythonConsoleApp.sshserver='user@hostname:22'--IPythonConsoleApp.sshkey='myKey'--IPythonConsoleApp.password='1234'我

Windows 内核级全局临界区

我正在从内核级驱动程序(从IOControl功能)写入用户空间缓冲区,我需要确保用户空间程序/服务不会覆盖缓冲区或在驱动程序之前读取它已经写完了。有没有一种方法(如果有,首选方法是什么)在Windows的内核模式驱动程序中进入一种“全局临界区”,从而允许驱动程序在短时间内获得系统范围内处理的独占权以便驱动程序可以保证独占访问用户空间中的缓冲区? 最佳答案 考虑到您在评论中的回复,实现这一目标的一种方法是维护与每个系统处理器关联的内核模式线程,并在您写入缓冲区时将它们的IRQL提高到DPC。DPCIRQL不允许线程调度,因此用户模式应

windows - 为什么 CUDA 内核不在 VS 2013 中使用 CUDA 9.0 启动

我在Windows(GeForceGT720M)上写了一个基于CUDA的并行程序。我已经安装了CUDA9.0工具包和VisualStudio2013。一切正常,但是当我编译代码并运行它时,输出是错误的。程序是:#include#include"cuda_runtime.h"#include"device_launch_parameters.h"__global__voidsquare(float*d_out,float*d_in){intidx=threadIdx.x;floatf=d_in[idx];d_out[idx]=50;}intmain(intargc,char**argv)