草庐IT

his系统

全部标签

c - 如何捕获读写系统调用?

每当我尝试在我的pendrive上写任何东西时,都会生成一个写系统调用。我想要做的是,应该捕获这个写入调用,并且应该要求用户输入预先确定的密码(我可以在编码过程中自行定义)。请告诉我这是否可能?如果是,我应该怎么做? 最佳答案 WindowsDDK有一个在filesys\minifilter中Hook文件读取/写入/复制的示例,同时包含操作前和操作后回调,您应该为内核方面设置这些回调。对于gui部分,您需要一些东西来进行非阻塞旋转,直到驱动器发出事件信号,您可能还需要管道或映射内存View来传递数据

windows - InstallShield 2011 在系统上下文中立即执行

我想编写一个自定义操作,它将在所有其他自定义操作之上执行并在系统上下文中执行。如果我使用“立即执行”,那么它会在登录用户上下文中执行,如果我使用“在系统上下文中延迟执行”,那么这个自定义操作会在其他自定义操作之后执行。遇到这种情况应该怎么办? 最佳答案 只有延迟操作可以在系统上下文中执行。它在其他延迟操作之间按预定顺序执行。如果此操作必须是第一个操作运行,您将需要一个Bootstrap来提升权限并开始安装。另请注意:延迟操作对安装属性的访问非常有限。 关于windows-InstallS

windows - FPO 数据和系统 dll

我一直在研究调用堆栈,我注意到有时我会遇到FPO帧。dbgHelp可以以某种方式找出每个帧的结束位置及其符号,但我没有DLLS的PDBS,例如kernel32等。Windows中的系统DLL是否包含FPO数据?在客户的计算机上使用我的程序时可以依赖它吗?它们是否包含任何其他调试信息? 最佳答案 如果将符号路径设置为://msdl.microsoft.com/download/symbols,则系统DLL的公共(public)符号可用。IIRC许多Windows组件都是在关闭FPO的情况下编译的。但是你到底想完成什么?您在寻找什么“调

windows - Windows 操作系统上的软实时 - 需要考虑什么?

当我们在Windows上构建一个软实时应用程序时,我们应该考虑什么(软件和硬件):一个任务每XXX毫秒发生一次,应该在YYY毫秒内完成。(虽然错过最后期限的后果很糟糕,但应用程序仍然可以从错过的最后期限中恢复-因此是“软”实时)。我已经想到了几个问题:是否有应该更改、查看的注册表设置?使用外部显卡而不是板载显卡更好吗?示例预期答案:您应该继续阅读(并禁用)NagleAlgorithm如果您使用TCP,因为它会延迟数据包发送。(这可能会在社区wiki中打开) 最佳答案 考虑使用MultimediaClassSchedulerServi

windows - 如何远程连接到网络中的另一台windows机器并从该机器获取操作系统信息? (Telnet 除外)

我被指派编写一个Perl脚本,其中我必须连接到网络上的另一台Windows机器,然后获取该机器的操作系统名称和版本。我使用Perl的NET::Telnet成功实现了这一点模块。但由于默认情况下Telnet未安装在Windows上,因此它将成为运行我的脚本的先决条件,而我的TL不希望这样。任何人都可以建议我一些方法来使用Windows默认安装的一部分(如rpc)来执行此操作。如果建议的方法也适用于unix、MAC或HP机器,那就太好了。 最佳答案 在Windows系统上远程获取配置信息通常是通过查询WMIdata(WindowsMan

windows - 同一系统上的 64 位和 32 位非托管 dll - 最佳实践?

我有一个内置于32位和64位的共享dll。两个版本都使用相同的名称foo.dll。如何在系统上同时安装foo.dll,以便我的32位和64位应用程序在其路径中找到正确的dll。Windows本身使用SysWOW64(用于32位dll)和System32(用于64位dll)。我想避免部署到这些文件夹。让两个位的dll在同一个盒子上共存并被链接到它们的适当应用程序找到的公认方式(如果有的话)是什么? 最佳答案 如果您不部署到受文件重定向影响的文件夹(即system32),那么您几乎需要为DLL指定不同的名称。这样做的原因是DLL搜索路径

c++ - 将 GetVersionEx 数字转换为操作系统名称

我有这个列表:2.5.1.26002.5.2.37902.6.0.60002.6.0.60012.6.0.60022.6.1.76002.6.1.7601这是一个窗口版本列表,信息来自GetVersionEx,数字是:dwPlatformId.dwMajorVersion.dwMinorVersion.dwBuildNumber我想知道这些数字的Windows版本名称,例如:“WinXPSP2”我试过谷歌搜索,但我发现了不同的信息,在某些地方,一个数字是XPSP2,而在其他地方,相同的是SP3。我可以将5.0识别为Win2000,将5.1识别为XP,等等。但我还想要SP版本,如果它是P

.net - 7 个 64 位操作系统上带有 32 位 oracle 客户端驱动程序的 System.data.OracleClient

我有一个从asp.net1.1(VS2003)迁移到Asp.net2(VS2008)的Web应用程序。我在新版本上执行Oracleconnexion时遇到问题。开发环境是64位七。当使用所有CPU生成应用程序时,我在System.Data.OracleClient上遇到问题,异常System.BadImageFormatException:Tentativedechargementd'unprogramdeformatincorrect.(HRESULT异常:0x8007000B)。.我在x86CPU上生成,但在启动时出现此错误:[BadImageFormatException:Imp

Windows 和系统内存

Windows上任何单个进程可以寻址的最大内存量是多少?这与系统的最大虚拟内存不同吗?这将如何影响系统设计? 最佳答案 在32位版本的Windows上,单个进程一次可以映射和寻址不超过3GB的虚拟内存。在64位版本的Windows中,32位进程一次可以映射和寻址不超过4GB的虚拟内存。对于64位进程,该数量很难计算,因为有许多重叠的限制可能适用,具体取决于各种因素。它通常约为7TB。系统的最大虚拟内存量很难计算,也不是一个非常有意义的数字。此外,物理内存的限制与虚拟内存的这些限制无关。您可以在Microsoft页面上阅读更多详细信息

windows - 在 Windows 上的 Perl 中获取当前系统本地编码

我需要根据系统本地设置获取当前编码。我正在寻找以这种方式工作的功能:my$sysEncoding=getSystemEncoding();#andnow$sysEncodingequalse.g.'windows-1250'我在网上到处找。我只找到了模块PerlIO::locale。但我认为系统编码应该在没有额外模块的情况下更容易被识别。 最佳答案 Encode::Locale提供了处理此问题的方法。 关于windows-在Windows上的Perl中获取当前系统本地编码,我们在Stac