草庐IT

c - 如何获取文件的 "valid data length"?

有一个函数可以设置“有效数据长度”值:SetFileValidData,但我没有找到获取“有效数据长度”值的方法。如果EOF与VDL不同,我想知道给定的文件,因为在VDL的情况下在VDL之后写入将导致性能损失,如here所述. 最佳答案 我找到了this页面,声称:thereisnomechanismtoquerythevalueoftheVDL所以答案是“你不能”。如果您关心性能,您可以将VDL设置为EOF,但请注意,您可能允许访问磁盘上的旧垃圾-这两个指针之间的部分,如果您不访问该文件则应该为零设置VDL指向EOF。

windows - 通过 WinAPI 确定英特尔高清显卡版本

所以我想通过WinAPI函数获取有关显卡的信息,但有一个关于如何获取我的确切显卡信息的问题。我已经编写了调用EnumDisplayDevices的代码,并且通过调用我收到了DeviceString“Intel(R)HDGraphicsFamily”。然而,这并没有告诉我确切的显卡,例如英特尔高清显卡系列有4200、4400等等(根据我的理解)。我搜索了更多的方法来查找此信息,甚至查看了注册表,它仍然引导我找到“Intel(R)HDGraphicsFamily”的描述字符串......现在我在这里。非常感谢任何能帮助我的人,它实际上是一个stackoverflow线程,它首先将我引向了E

我可以在特定地址创建一个堆栈的线程吗?

我正在做一些实验,想知道是否可以在我提供的特定地址创建一个线程堆栈,或者至少让线程堆栈只在我可以指定的某个(巨大的)虚拟内存区域中产生.我对此感兴趣的原因是我想在某个时候将整个堆栈复制到远程进程并且需要指针保持完整,并且线程堆栈不会发生冲突。这可能不是最好/最安全的方法,我知道,但这只是一个小小的爱好项目。如果您知道如何在Linux上执行此操作,我也对此很感兴趣。 最佳答案 只是编译评论所说的内容。Forwindows,theanswerisno对于Unix(posix),答案是pthread_attr_setstack.(另见上面

python - 在 Windows 10 中获取启动时间并不总是相同的时间

我正在使用这个python(3.5)代码来检查Windows启动时间,但它给了我一个不同于我使用shell命令“systeminfo”的时间系统信息:9:15:23python代码:9:14:42对此不满意,python代码本身给出了不同的时间!它开始给我9:14:42,现在它给我9:15:19,它每10秒左右在启动时间上增加一秒。我给你代码:importdatetimeimportwin32apis=win32api.GetTickCount()t=datetime.datetime.now()st=datetime.timedelta(milliseconds=s)bt=t-stb

c++ - 如何在 Windows 服务程序中捕获 SERVICE_CONTROL_SHUTDOWN 代码

我最近在编写Windows服务程序。我在编程时遇到的问题是,当我在其上安装程序时,Windows操作系统无法正常关闭。关闭系统需要很长时间。看来我的程序是问题的原因。我试图在互联网上找到解决方案,我发现在我的代码中添加“SERVICE_CONTROL_SHUTDOWN”可以解决问题。我这样做了,但是我的程序没有捕捉到“SERVICE_CONTROL_SHUTDOWN”,我不知道为什么......有谁知道为什么会这样......谁能告诉我如何解决它?谢谢。我在下面放了一段我的代码。//methodthatsetsservicestatus.voidSvcSetStatus(DWORDdw

c++ - 检查文件是否被进程文件句柄锁定

鉴于我有所有进程的所有文件句柄的列表,我如何找出这些句柄中的哪些实际上锁定了文件?据我所知,我可以简单地尝试打开文件并尝试获取所有权限,如果出现问题,我会知道它已被锁定。但这听起来效率极低。我的意思是我已经有了句柄没有办法检查句柄有哪些权限吗?我希望看到一个适用于WindowsXP及更高版本的解决方案。我已经搜索过GetFileInformationByHandleEx功能,但我找不到任何关于访问权限的信息。:/编辑:我不需要关于文件锁的实时信息。我计划处理的文件要么被锁定,直到某些应用程序关闭,要么根本不被锁定。 最佳答案 此问题

windows - 在内核模式下确定 Windows 卷的大小写敏感性

WindowsAPI支持GetVolumeInformation功能。此函数提供有关Windows卷的信息。具体来说,它返回一个FILE_CASE_SENSITIVE_SEARCH开关。在内核中有FltQueryVolumeInformation和ZwQueryVolumeInformationFile,但我看不到任何方法可以从可用信息类中导出区分大小写的信息。我是否正确理解FILE_CASE_SENSITIVE_SEARCH开关仅指定可以进行区分大小写的搜索(不是默认情况下完成的)?您仅根据文件打开方式了解区分大小写是否正确(即您必须使用FILE_FLAG_POSIX_SEMANTI

c++ - Windows硬盘实时复制

我正在从事一个项目,以异步方式将Windows写请求从一个硬盘实时复制到另一个硬盘。刚接触windows下的内核态驱动开发,想做的是监听IO请求。我进行了很多搜索,但没有按应有的方式记录此区域。我进行了搜索并找到了4个线索(但肯定没有一个是最好的开始选择)IRPWindows驱动程序使用IO请求数据包在它们与操作系统之间进行通信,但我能否监控硬盘驱动程序使用的IRP?安全性如何?Windows过滤器驱动程序系统过滤驱动级别从上到下有很多,应该用哪一个?我能过滤硬盘驱动程序使用的IO吗?IOHookWindows防病毒软件使用此技术来挂接IO并检查文件。在我的情况下使用它可靠吗?内核事件

ruby - Ruby win32api 和 win32ole 有什么区别?

一段使用win32ole的ruby代码require'win32ole'ie=WIN32OLE.new('InternetExplorer.Application')ie.visible=trueie.gohome部分代码使用win32apirequire"Win32API"message="ThisisasampleWindowsmessageboxgeneratedusingWin32API"title="Win32APIfromRuby"api=Win32API.new('user32','MessageBox',['L','P','P','L'],'I')api.call(0,

c++ - 为以前的 Windows 平台构建我的应用程序

背景我正在WIN7上使用VS2015编写一个C++应用程序。此应用程序将在所有大于等于XP的Windows操作系统上运行。在我的代码中,我使用了很多WINAPI调用。我希望在编译时阻止使用未在winXP中定义的API。动机在某些时候,我使用函数RegDeleteKeyExfunction没有注意到此API在winXP中不可用解决方案所以,我关注了这个帖子:ModifyingWINVERand_WIN32_WINNT并声明:#include#define_WIN32_WINNT0x0501#defineWINVER0x0501在文件targetver.h我希望在此修复后,当我编译包含Re