草庐IT

virtual-address-space

全部标签

c++ - 是否可以忽略 UnMapViewOFFile() 的错误 487 (ERROR_INVALID_ADDRESS)?

下午好,我们正在尝试构建内存映射文件缓存程序的原型(prototype),供Windows和Linux32位应用程序使用。每次我们运行原型(prototype)时,当我们尝试调用UnMapViewOfFile以取消映射缓存的内存映射文件区域时,我们都会收到错误487(错误地址无效)。我们认为发生这种情况是因为我们尝试取消映射previouslu未映射的区域。我们想知道是否可以忽略此错误消息。我们尽力确保对MapViewOfFile的每次调用都通过以下方式与UnMapViewOfFile匹配,每次调用MapViewOfFile时,我们都使用以下代码:std::dequeranges_ty

c++ - Microsoft Virtual Audio Device Driver Sample (MSVAD) 仅创建 44 字节文件

我目前正在研究MSVAD简单驱动程序。不幸的是,它没有按照我希望的方式工作。当一个新程序启动时,它在C:\下创建为STREAM_NN.WAV不幸的是,这个文件只有44字节大小(只包含文件头)。我附加了调试器View并得到了这个输出:MSVAD:[CMiniportWaveCyclic::NewStream]MSVAD:[CMiniportWaveCyclicMSVAD::ValidateFormat]MSVAD:[CMiniportWaveCyclic::NewStream]MSVAD:[CMiniportWaveCyclicMSVAD::ValidateFormat]MSVAD:CM

windows - 使用 ,[space] 加入 .txt 文件中的数字列表

您好,我设法获得了下面的代码来创建一个数字列表,并在每个创建的数字的末尾放置一个逗号但是,事实证明,要让它们在同一行上由,[space]分隔是一项相当大的挑战@ECHOOFFsetlocalEnableDelayedExpansionset_Output=%UserProfile%\Desktop\NumGen.txt::onlychangethesethreelinesset"start=1"::startsfromthisnumberset"amount=10"::amountoffilescreatedset"length=5"::lengthoffileNamesset"joi

windows - echo/batch redirect to file automatically appends space?

执行时echo0>test.txt在cmd.exe中,test.txt中的输出是0_其中_表示空格。为什么要附加一个空格?有什么办法可以防止添加空格?谢谢! 最佳答案 附加的空格是命令行中“0”和“>”之间的空格。有一种不明显的方法可以摆脱它:预先添加重定向到命令:>test.txtecho0 关于windows-echo/batchredirecttofileautomaticallyappendsspace?,我们在StackOverflow上找到一个类似的问题:

windows - 为什么无法从具有 PAGE_GUARD 保护的 block 中读取数据?

我使用ReadProcessMemory函数从地址空间读取数据。我尝试读取所有具有MEM_PRIVATE类型的block。但是当那个block有PAGE_GUARD保护时我得到错误(函数返回0),为什么?感谢大家。 最佳答案 具有PAGE_GUARD保护的页面保证不可访问。对它的任何访问都会产生页面错误,并作为STATUS_GUARD_PAGE_VIOLATION异常反射回拥有该页面的进程。此功能在Windows中大量使用,以检测此站点的命名条件并从中恢复。线程堆栈的最后两页是保护页。当程序递归地崩溃,消耗所有堆栈空间并触发异常时,

windows - 从性能的角度来看,虚拟地址空间映射如何才能被接受?

这个问题针对任何使用VAS模型的操作系统,但我将指定windowsnt,因为这是我最了解的系统。众所周知,默认情况下,32位Windows上的进程会单独获得2GB的内存。该内存可以位于系统内存、交换文件、USB驱动器等中。这意味着多个进程可以在地址0x12345678分配内存,但是这当然不可能映射到相同的物理内存。我的问题是,如何在不完全破坏性能的情况下做到这一点?处理器是否有某种机制来映射内存地址?每次我们不想访问内存时要求操作系统进行映射查找,看起来很慢.. 最佳答案 有一个硬件设备可以进行翻译-它叫做MemoryManagem

java - 每个 Java 程序都崩溃并显示 : Failed to create the java virtual machine

从昨天开始,我在Windows机器的所有Java应用程序中收到消息:“无法创建Java虚拟机”。也许我感染了病毒或类似的东西。我在其他站点上找到的唯一建议是将堆大小设置为较低的值。问题是我运行的大型应用程序至少需要1024M堆大小。另外我的机器有4GB内存,所以我认为这不是内存太低的问题。 最佳答案 小心地将当前的JDK/JRE安装移到一侧,并安装一个全新的副本。如果它有效,你就完成了。如果没有,您就排除了安装损坏的可能性。另一种可能性是这真的是一个路径问题。您可以从命令提示符运行java-version吗?您可以从命令行编译并运行

node.js - 如何使用 NODE_OPTIONS 环境变量在 Windows 中全局设置 max_old_space_size?

在运行Node二进制文件时修复堆内存不足的解决方法(这是使用TypeScript2.1+和webpack时的常见问题)正在增加Node的最大内存。increase-memory-limit是一个包来做到这一点。在链接中,它说AsofNode.jsv8.0shippedAugust2017,youcannowusetheNODE_OPTIONSenvironmentvariabletosetthemax_old_space_sizeglobally.exportNODE_OPTIONS=--max_old_space_size=4096但是如何在Windows中设置该环境变量?在powe

c# - 无法在计算机 'ip address' 上打开服务控制管理器。此操作可能需要其他权限

我是C#的新手,我遇到了这个错误:CannotopenServiceControlManageroncomputer'172.168.1.106'.Thisoperationmightrequireotherprivileges.当我尝试启动/停止安装在与我的计算机属于同一网络的另一台计算机上的服务时。那么有没有人对此有任何准时的解决方案?任何教程?该服务作为网络服务安装在另一台计算机上。这是我的代码的样子(重要部分):ServiceControllerservicio=newServiceController(nombre,"172.168.1.106");publicboolRei

windows - 在 Git-Bash 中更改目录 : using Windows-style directory addresses in MINGW64 on Windows machines

问题:git-bash.exe,或MINGW64,承认cd其地址以以下形式给出的目录的命令:/Drive_Name/Folder1/Subfolder1.为Windows机器用户更改主目录的示例是:cd/c/users/USERNAME.是否可以使用以下语法?cdc:\users\USERNAME请注意,目录地址以其“native”格式给出:Windows操作系统可识别的语法。或者,有没有办法在粘贴到Git-bash窗口时自动将所有反斜杠更改为正斜杠?背景我正在使用git-bash.exe每天:拉和推到Github,运行latexmk用于编译我的*.tex文件和SSH我的Linux机器