草庐IT

pointer-address

全部标签

c++ - FSCTL_GET_RETRIEVAL_POINTERS 对小文件失败

我正在使用FSCTL_GET_RETRIEVAL_POINTERS获取文件的物理偏移量(扇区)。我面临的问题是我无法获取大小为1kb或更小的文件的扇区。我知道大小为1kb或更小的文件记录存储在MFT本身中。有人可以帮我获取此类文件的扇区吗?任何形式的帮助将不胜感激,如果有人可以向我提供执行相同操作的示例代码,那就更好了。提前致谢。 最佳答案 您需要解析文件$MFT以检索物理位置,该位置存储在属性0x80中。可以用winhex打开原始磁盘,查看这些小文件的文件记录。 关于c++-FSCTL

c - WTS_CLIENT_ADDRESS 地址无法正确打印

我正在尝试获取登录到计算机的所有RDP连接的IP地址。我正在使用WTSEnumerateSessions和WTSQuerySessionInformation来检索指向包含地址的WTS_CLIENT_ADDRESS结构的指针。这是代码的一部分:WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE,SessionNo,WTSClientAddress,&ppBuffer,&pBytesReturned);address=(WTS_CLIENT_ADDRESS*)ppBuffer;if(AF_INET==address->AddressF

windows - !address 命令显示用户模式堆栈初始提交大小的不同值

我在WindowsInternals中读到,创建线程时,默认情况下为用户堆栈保留1MB的虚拟内存。在这1MB中,只有第一页(0x1000)将被提交。当我使用dumpbin.exe转储图像header时,我可以看到这一点。这是dumpbin显示的内容:但是,当我使用!address命令将此exe的地址空间转储到Windbg中时,我看到了不同之处。Windbg显示初始提交大小等于3页,即0x3000有谁知道为什么图像header和调试器显示的初始堆栈提交大小之间存在差异? 最佳答案 这是一个很好的问题,答案的关键是理解初始断点是什么。对

c++ - 在给定 _EXCEPTION_POINTERS 结构的情况下,如何获取导致结构化异常的模块名称? (win32 C++)

(Win32平台c++)使用__try和__finally,如何获取异常原因的模块名称(和地址)?我调用了GetExceptionInformation()但我不确定这些信息在哪里。鉴于在线和MSDN中的其他资源,Minidump处理程序和其他示例代码似乎能够获得它,但我不确定如何获得它。感谢任何引用资料或更具启发性的资源。 最佳答案 EXCEPTION_POINTERS提供的EXCEPTION_RECORD记录包含异常发生的地址。然后,您可能可以使用EnumProcessModules()和GetModuleInformation

Windows 8 : Unable to allocate 2GB with 3GB User Address Space

我正在尝试创建用于测试的Windows832位程序。测试包括大量分配,我遇到了麻烦。操作系统是用/3GB启动的,机器有8GB和一个页面文件,程序是用/LARGEADDRESSAWARE链接的,所以我不应该受到内存限制。(由于某些类型的定义方式-例如,size_t),使用32位程序进行测试对我来说很重要。问题是我无法从new或VirtualAlloc分配2GB(0x80000000)内存。new抛出bad_alloc并且VirtualAlloc返回NULL和ERROR_NOT_ENOUGH_MEMORY。在以前的Windows版本中,3GB地址空间意味着应用程序被赋予0x00000000

Windows USB 端口 'address'

我正在使用Node制作一个小项目,我正在尝试将USB端口与SerialPort模块一起使用(npminstallserialport)...我做这个:vardev='theportofthedevice';varsp=newcom.SerialPort(dev,{baudrate:9600,parser:com.parsers.readline('\r\n')});我正在使用Windows,但我不知道哪个是必须使用USB的端口路径。例如,对于linux,我知道像这样的东西:“/dev/cu.usbmodemfd121”可以工作......但不适用于Windows。我正在尝试使用Node

C++ Qt MingW bad reloc 0xc address in section rdata

我在带有MingW编译器的Windows1064位上使用Qt5.5。我正在尝试在Debug模式下编译我的项目=>完美运行但是在Release模式下,我有这些错误:undefinedreferenceto`TileMap::XYToNode(int,int)const'undefinedreferenceto`TileMap::XYToNode(int,int)const'./release\perso.o:badrelocaddress0xcinsection`.rdata'collect2.exe:-1:erreur:error:ldreturned1exitstatus我尝试过cl

python doc 到 docx 转换,comtypes.Documents.Open 抛出 ValueError : NULL COM pointer access

背景我有一个应用程序,我想在其中将.doc转换为.docx。之后处理.docx文件以进行数据挖掘。最终用户使用Web界面访问此服务。Web应用程序是在Django1.6中开发的。要将.doc转换为.docx,我们需要安装了MSOffice的Windows平台。话虽如此,我有一个正在运行的AWSWindowsServer2012R2实例(它是Windows64位)。我将Apache(64位)与mod_wsgi和Python2.7.8(64位)一起使用。现在,这是我将.doc转换为.docx的代码importtempfile,sysimportcomtypes,comtypes.clien

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

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

c++ - WM_POINTER 和高 DPI 设置

我已经在桌面触摸屏上使用Windows8TouchAPI(WM_POINTERDOWN/WM_POINTERUPDATE/WM_POINTERUP)工作了一段时间.然后我在Windows8平板电脑上尝试了我的测试程序,发现我的应用程序无法准确检测到用户触摸屏幕的位置。另一方面,使用鼠标效果很好:我得到了正确的坐标。由于我启用了EnableMouseInPointer(TRUE)模式,这意味着正在使用相同的代码来处理鼠标事件和触摸事件,这至少意味着我的代码在某种程度上可以正常工作。我发现,平板电脑启用了高DPI模式,使用户可以触摸屏幕上本来很小的东西。当我更改平板电脑上的DPI以消除缩放