草庐IT

c++ - 是否可以在 2GB 以上的文件上创建更小的内存映射 View ?

我已经为Windows和Linux编写了一个C++类,它为任意大小n的文件创建一个内存映射View。类构造函数的代码canbeseenhere.我目前正在Windows32位XP上测试代码。我发现对于大小为0=2GB的文件大小,MapViewOfFile返回NULL值和错误代码8,“没有足够的存储空间可用于处理此命令”。显然,Windows无法在该进程中找到大小为2GB的可用地址空间。因此,我可能需要修改类构造函数以创建一组较小的内存映射View,总计>=2GB字节&&之前,我使用下面的代码进行随机访问:char*KeyArray;try{mmapFile=newcMemoryMapp

c++ - 模拟后从映射的驱动器号获取 UNC 路径

如果我调用函数WNetGetUniversalName()从当前session中映射的驱动器获取UNC路径,函数成功。但是……如果我通过调用LogonUser()创建一个新的登录session(登录用户与流程创建者相同)通过调用ImpersonateLoggedOnUser()来模拟登录用户功能再次调用WNetGetUniversalName(),函数返回错误2250(ERROR_NOT_CONNECTED)问题是我应该将此进程作为服务运行(在SYSTEM帐户中),因此我可能需要模拟用户以获取该用户的映射驱动器和关联的网络路径。正如我检查的那样,无法跨用户session访问信息。Win

windows - ec2 block 设备映射列表与 Windows 驱动器之间的映射

ec2block设备映射列表和windows驱动器之间的映射是如何发生的?例如,如果我指定-b"/dev/sdb=snap-XXXXXXX"-b"/dev/sdc=ephemeral0"启动Windows实例时,它将D:\映射到EBS卷快照,将E:\映射到临时存储。当我以相反的顺序指定映射时,它也是如此。想知道这种映射是如何真正发生在Windows驱动器上的吗?了解临时存储映射到哪个驱动器对我来说实际上很重要,因为我需要在实例启动后在其中存储一些东西。谢谢! 最佳答案 您可以使用powershell脚本将驱动器号映射到设备名称给你h

c# - 如何在内存映射文件中共享列表值

我有一个带有datagridview的窗口窗体,我正在将特定的列值读入列表。我需要在单个内存映射文件中共享列表的所有值,但以下是我关心的问题:1.以字节为单位查找列表的大小。2.需要共享列表的所有项目。这是我共享单个变量值的示例代码:stringMyName="Seema";inttotalBytes=MyName.Length*sizeof(Char)+4;publicListmyList=newList();MemoryMappedFileMyText=MemoryMappedFile.CreateOrOpen("MyGlobalData",howManyBytes);byte[]

c++ - 查看进程内存映射的最佳程序是什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我需要查看进程使用的image/heap/malloc()/stack等资源。我知道内存验证器,但它缺少一些功能。

python - 如何在 Python 中刷新网络驱动器映射

我有一个驱动器已经映射到一个指定的字母,'R:\'。如果我在登录时或在计算机未锁定的情况下运行python脚本来访问这个空间,它就可以正常工作。当我设置任务计划程序在早上进来之前运行脚本时出现问题。基本上我保持登录状态并锁定机器,但在某些时候它看起来像我的网络驱动器映射超时(但在我解锁时重新连接机器在早上),这就是脚本无法找到它们的原因。当尝试执行os.path.exists()检查此驱动器上的文件夹并在它们不存在时创建它们时会出现错误。从'try/except'循环中我得到异常“系统找不到指定的路径:'R:\'。我的问题:有没有办法通过python强制刷新?我看过其他关于映射网络驱动

windows - 简单的 PowerShell 脚本,使目录与所有人共享,并将其映射为共享网络驱动器

我正在尝试为不懂IT的friend自动执行一项简单但重复的任务。我是一名电视编辑,但我对此有简单的工作知识,所以我很欣赏你的技能和知识。在WindowsPC上,可以使用PowerShell,我想要一个脚本(我真的很想要一个GUI,但这是梦想),以在特定的硬编码位置创建一个新目录-检查是否不存在同名的现有目录等。新目录共享给大家,完全读写权限新目录被映射,与下一个可用驱动器号保持一致,跳过光学媒体/读卡器驱动器号。注意:如前所述,网络共享必须在重启后保持不变。研究建议1(但需要更多来检查重复等):#PowerShellcreatesafolder$Location="X:\Clients

java - 使用 SHARE 属性在 Windows 中内存映射文件(因此文件不会被锁定以防止删除)

有什么方法可以将文件的内容映射到Windows中的内存中而不锁定文件(特别是,这样可以在仍然mmap的情况下删除文件)?JavaNIO在Windows中以这样一种方式库mmap文件,即当堆中有任何非垃圾收集的MappedByteBuffer引用时,无法删除映射文件。JDK团队声称这是Windows的限制,但仅当文件被mmap时,而不是当它们作为常规文件打开时:https://mail.openjdk.java.net/pipermail/nio-dev/2019-January/005698.html(显然,如果一个文件在mmap时被删除,那么mmap区域究竟应该发生什么在Window

windows - 使用内存映射文件同时允许其他进程完全访问

我正在尝试在Windows下使用内存映射文件(使用CreateFile/CreateFileMapping/MapViewOfFile函数),并且我当前在调用CREATE_FILE时指定FILE_SHARE_READ和FILE_SHARE_WRITE。但是,这会锁定文件以防止其他进程使用。我想要的是在调用CreateFileMapping或MapViewOfFile时内存映射文件的快照,这样我就看不到对文件所做的任何更改(写入或删除)通过其他过程。有点像写时复制,但其他进程正在执行写入。我可以在Windows上使用内存映射文件来执行此操作吗? 最佳答案

c++ - 内存映射文件 - 映射结构而不是文件?

我对内存映射文件非常陌生,而且我对某些事情有点迷茫。我知道,如果我有一个文件,我可以使用MMaps一次加载它并从多个进程访问它。但在我的情况下,我正在创建一个附加到进程A的DLL,并且已为该DLL提供指向进程A准备的cSurface的指针。我需要与进程B共享那个cSurface的数据。我真的不想调用一个空白的MMap并将我的进程A的表面复制到其中,只是为了在进程B中再次复制它。是否可以像文件一样映射我的表面,以便MMap在创建时已经指向表面数据(就像我加载SomeTextFile.txt一样)?理论上,我的计划是在ProcA中接收一个指向表面的指针,告诉Windows以给定的名称共享该