jjzjj

内核移植

全部标签

c++ - 如何在用户模式下从内核模式驱动程序向二进制文件发送和接收数据

我正在开发一个内核模式过滤器驱动程序,我希望这个驱动程序发送一个UNICODE字符串到一个在用户模式下运行的exe。请为此提供一个示例,因为我是驱动程序开发的初学者。下面是我的驱动程序的代码(我想发送UNICODE字符串的地方)#include"drv_common.h"#include"ntddk.h"#include"FsFilter.h"#defineSOME_SIZE//PassThroughIRPHandlerNTSTATUSFsFilterDispatchPassThrough(__inPDEVICE_OBJECTDeviceObject,__inPIRPIrp){PFSF

c - 将可变长度结构从用户模式传递到内核模式

我正在写虚拟磁盘驱动程序,我有这样定义的结构:typedefstruct_MOUNT_NEW_QUERY{PWCHARimagePath;WCHARletter;PCHARkey;}MOUNT_NEW_QUERY,*PMOUNT_NEW_QUERY;所以我有一种动态大小的结构。我必须如何将它从用户模式传递到我的驱动程序? 最佳答案 分配一个连续的内存块,足以容纳你的结构和“键”和“路径”的数据——像这样:/*weadd+1forterminatingNULLstomakelifeeasy*/size_tkeyLen=(strlen(

windows - 使用 Strawberry(可移植)Perl(适用于 Windows 7)安装 Mechanize 时遇到问题

我在StackOverflow上的其他地方看到过帖子,暗示我安装Mechanize以与StrawberryPerl一起使用时出现的那种问题是由于公司防火墙造成的,但我不在公司防火墙后面。我确实使用ISP调制解调器,并且在桌面上安装了防病毒软件。我应该如何配置cpan来避免这个问题?----------------------------------------------WelcometoStrawberryPerlPortableEdition!*URL-http://www.strawberryperl.com/*seeREADME.TXTformoreinfo----------

c - 获取内核对象窗口列表

嗨!我打赌一个多星期了,我无法形成一个完整的图来说明如何获得内核对象列表。我的算法如下:1)连接NTDLL.dll(LoadLibrary)2)GetProcAddress(variable_Library_name,"NtQueryDirectoryObject")和预告结构:_OBJDIR_INFORMATION,_OBJECT_ATTRIBUTES3)尝试为列表应用NtOpenDirectoryObject函数对象下面是一段代码,负责函数NtOpenDirectoryObject的使用:OBJDIR_INFORMATION*ssinfo=(OBJDIR_INFORMATION*)

c - 如何在线程/进程之间可移植地共享变量?

我有一个服务器,它为每个传入请求生成一个新进程或线程,我需要从线程和进程读取和写入在该服务器中定义的变量。由于服务器程序需要同时在UNIX和Windows上运行,我需要以可移植的方式共享变量,但我该怎么做呢?我需要使用标准C库或native系统调用,所以请不要推荐第三方库。 最佳答案 sharedmemory是特定于操作系统的。在Linux上,考虑阅读shm_overview(7)和(因为使用共享内存,你总是需要某种方式来同步)sem_overview(7).当然,您需要找出相似(但可能不等同)的Windows函数调用。注意thre

c++ - 可移植可执行文件的保存位置

我想将我的可移植可执行文件作为单个exe文件提供。此exe文件需要一些txt文件来保存日志。但我不希望用户无意中删除它。在Windows操作系统上无需管理权限即可通过可执行文件保存此类文件的标准方法在哪里?可移植的可执行文件也可以在不需要管理权限的情况下运行。还建议通过可移植可执行文件写入用户系统吗?杀毒软件能提示吗? 最佳答案 对于32位程序,可执行文件应安装在"C:\ProgramFiles"或"C:\ProgramFiles(x86)"中。此安装需要管理员访问权限。或者您可以安装到"c:\Users\UserName\AppD

c# - x64 机器上 x86 LARGEADDRESSAWARE 程序的内核模式内存大小?

标题几乎概括了它。我有一个为x86平台编译的应用程序,它设置了/largeaddressaware标志。在x64系统上运行它,我“免费”获得了扩展的4GB用户模式虚拟内存,而无需指定/3GB启动选项。在x86系统上,这意味着内核模式内存仅为1GB,但由于x64系统可以寻址更多内存,内核模式是否会保留2GB甚至增加到3GB?编辑:明确地说,我想知道每个进程的限制。问题源于阅读thisarticle.编辑2:这个问题不是Howmuchmemorycana32bitprocessaccessona64bitoperatingsystem?的重复问题因为该问题仅涉及应用程序可访问的内存,而不是

windows - 如何使我的脚本可移植 vbs

这将是一个菜鸟问题..但我想让我的脚本更便携。比方说,我已经在USB中编写了我所有的.vbs(或任何自然代码中的任何脚本)。所以我想在当前机器上运行那个vbs。USB被分配到F:驱动器然而,当我拔掉那个USB并连接到另一台机器时..它将不再是F:..但它可能是E:G:或其他什么我只是想知道如何在不直接在脚本上更改它的情况下克服它,但脚本能够读取它指向的目录。我不确定该属性/功能是如何调用的。但会很感激任何提示/技巧 最佳答案 有两种主要方法可以使您的脚本更具可移植性。第一种方法(可能也是最适合您的用例的方法)是通过使用WScript

windows - 从没有超线程的计算机中获取内核总数

这是一个艰难的过程。我需要使用命令从我的服务器输出确切的内核数。我的测试:X:在具有4个处理器(插槽)和2个内核的Windows服务器上,每个处理器都没有HT。Y:在具有2个处理器(插槽)和6个内核的Windows服务器上,每个内核都具有HT。GetSystemInfo只得到安装的处理器数量:4个用于X,2个用于Y。||X:8cores|Y:12cores|||4x2(noHT)|2x6(HT)||----------------|-------------|-------------||Desiredoutput|8|12||GetSystemInfo|4|2|%NUMBER_OF_

windows - 运行时 OpenCL 内核代码中的错误

我是VisualStudio的新手,我正在使用它使用OpenCL编写一个简单的并行排序程序。当我运行它时,我在输出前得到一行(即在我接收和打印结果缓冲区之前)说“5ErrorsGenerated.”。我假设这告诉我我的内核文件中有错误,如果我故意在我的内核文件中写入错误,错误数量会增加。我真的很想知道这些错误是什么,以便我可以更正我的程序。由于不熟悉VS,我根本无法在任何地方找到它们。有谁知道我在哪里可以找到正在生成的错误。谢谢 最佳答案 您需要调用clGetProgramBuidlInfo要求CL_PROGRAM_BUILD_LO