jjzjj

shared_memory

全部标签

Windows 文件共享 : What ACE AccessMask flags correspond to the different share permissions?

最近我尝试使用WMI创建一个共享并向用户授予读写权限。现在使用0x1(FILE_READ_DATA/FILE_LIST_DIRECTORY)和0x2(FILE_WRITE_DATA/FILE_ADD_FILE)不起作用。设置所有标志让我完全控制。我必须使用哪些标志分别设置读取、更改和完全控制共享权限? 最佳答案 我通过反复试验发现了以下内容:对于读取权限,您需要使用0x1200A9。这对应于以下标志:FILE_READ_DATA(file)orFILE_LIST_DIRECTORY(directory)1(0x1)FILE_READ

c++ - TabCtrl_InsertItem : do we need to keep memory of the text alive?

对于TabCtrl_InsertItem,我们需要保留pszTextmember指向有效内存还是操作系统会复制文本以便我们可以立即清除文本?TCITEMtcItem={TCIF_TEXT};CStringstrText;for(inti=0;i我们如何才能知道对于这个函数和future的其他函数哪个是正确的?我在MSDN中找不到它。 最佳答案 操作系统会将字符串复制到内部数据结构中。您不需要维护支持字符数组。您可以在函数调用完成后立即释放它。通常,任何接收字符串的WindowsAPI函数都是这种情况。没错,MSDN文档中没有明确说明

windows - 如何在 win32 进程中显示 'memory used' 的百分比?

我知道内存使用在Windows上是一个非常复杂的问题。我正在尝试为一个大型应用程序编写一个UI控件,该控件显示“已用内存百分比”数字,以便向用户表明可能是时候清理一些内存了,或者更有可能重新启动应用。一个实现使用MEMORYSTATUSEX的ullAvailVirtual作为基础,然后使用HeapWalk()遍历进程堆以寻找额外的空闲内存。HeapWalk()步骤是必需的,因为我们注意到在运行一段时间后,由堆分配和释放的内存从未返回并由ullAvailVirtual数字报告。经过数小时的密集工作,ullAvailVirtual数字不再准确报告可用内存量。然而,这种方法被证明并不理想,因

windows - 如何避免 "Your system is running low on virtual memory"弹出窗口?

我们的应用程序有时会使用大量内存,这是预料之中的。但是当我们在WindowsXP的高负载下测试它时,我们通常会看到非常烦人的“您的系统虚拟内存不足”弹出窗口,这会阻止我们的自动化、无人值守的测试运行...有没有可能不出现这个弹窗,直接让分配失败?该应用程序将优雅地处理它,并且测试将继续......我们使用的是WindowsXP,但如果解决方案只存在于更高版本中,我很乐意知道。 最佳答案 您可能会使用一种捕获该对话并将其取消的全局对话处理程序。QTP(HPQuickTestProfessional)具有GUI异常处理程序(或者它们叫什

java - 在 Windows 7 上从 Java 启动 CYGWIN 构建的可执行文件失败并显示 "error while loading shared libraries: ?: No such file or directory"

有问题的代码在早期版本的Windows上或多或少地以完全相同的配置工作,但是,还不知道它是否可以在Windows7上运行!这就是我现在需要解决的问题。简而言之,一些C代码在启动Java程序之前执行一些配置和安全检查,传递一些在Java中几乎不可能轻松完成的数据。反过来,Java在适当的时间启动相同的C代码,然后它自己启动一个不同的Java程序。第二个程序启动需要完全独立,(想想nohup)因此是第二个启动。现在发生的事情是C程序以普通方式启动Java程序,但是当Java尝试启动C程序时,它会出现如下错误:/cygdrive/c/opt/ST/v3.3/bin/ST.exe:errorw

windows - 使用 Share-Delete 打开文件是否允许其他人写入?

FileShare枚举提供各种标志,例如读取、写入、删除...。通常我会认为共享文件删除只允许删除而不能做其他事情(比如阅读)。但是,我依稀记得Windows只区分文件的只读访问权限和完全访问权限,因此实际上为删除而共享也允许写入文件。遗憾的是,这是很多年前的事了,我既没有找到原始来源,也没有找到任何相关信息。是否有关于实际行为的可靠规范?它取决于操作系统还是FS? 最佳答案 查看CreateFileFunction的文档.FILE_SHARE_DELETE:Enablessubsequentopenoperationsonafil

c++ - OpenCL/GL 互操作 : write_imagef to shared gltexture is all white (1, 1,1,1)

我正在尝试使用OpenCL编写光线追踪器。但是,我遇到了一些麻烦。我想在OpenGL和OpenCL之间共享纹理内存,以避免不必要的内存来回复制。我的程序运行良好,我在每次调用GL和CL后进行检查,没有发现任何错误。如标题中所述,使用write_imagef写入内核中的纹理会在每个channel中产生1.0。我怀疑纹理格式有问题,但我一直在互联网上寻找有效的纹理格式,但我看不出有什么问题。我尝试了write_imageui和write_imagef以及纹理格式的不同组合,但没有成功。内核程序:__kernelvoidDraw(__global__write_onlyimage2d_tim

windows - 有没有办法获得对以独占访问方式打开的文件的读取访问权限,即 FILE_SHARE_NONE

如果不采取肮脏和令人讨厌的方式,我相信这在用户模式下是不允许的,即使使用SE_BACKUP_NAME。我认为肮脏和令人讨厌的事情:找出哪个进程拥有句柄并编写代码以在该进程中运行并关闭句柄。读取/解析MFT/FAT表使用内核驱动 最佳答案 是的,有一种方法,尽管它可能不适合您的需要;它不脏也不讨厌,但它很重,也就是说,它的编码并不简单,如果您只是试图读取单个文件,它会产生不成比例的系统负载。但是,如果您需要这样做,这是我所知道的唯一合理且安全的解决方案:请参阅VolumeShadowCopyService上的MSDN文档.现在大多数备

Windows 内存管理 : check if a page is in memory

在Windows中,有没有办法检查页面是在内存中还是在磁盘(交换空间)中?我想知道这一点的原因是,如果页面在磁盘中,则通过不访问该页面来避免导致页面错误。 最佳答案 据我所知,没有记录在案的方法可以在用户模式下完成此操作。也就是说,可以在内核模式下确定这一点,但这将涉及检查属于内存管理器的页表条目——这不是您在任何类型的生产代码中真正不想做的事情.您要解决的真正问题是什么? 关于Windows内存管理:checkifapageisinmemory,我们在StackOverflow上找到一

windows - SetConsoleActiveScreenBuffer 使 ReadConsole 返回 ERROR_SHARING_VIOLATION

当我使用创建的缓冲区调用SetConsoleActiveScreenBuffer()时,它似乎使ReadConsole停止使用ERROR_SHARING_VIOLATION。我检查了句柄权限,据我所知,它们是正确的。如果我注释掉SetConsoleActiveScreenBuffer行,输入将完美运行。我可能在这里做错了什么?我还尝试过使用ReadFile而不是ReadConsole,并使用CreateFile而不是GetStdHandle获取输入缓冲区。两种方式,都会出现同样的错误。#includeintmain(){void*oldScreenBuffer;void*screenB