草庐IT

windows - 我如何计算出在内核调试 session 中使用 WinDBG 等待的事件

我是一个完全的WinDbg新手,我一直在尝试调试一个客户发给我的WindowsXP问题,我们的软件和一些第三方软件阻止Windows注销。我已经重现了这个问题,并验证了只有当我们的软件和客户的软件都安装了(虽然不一定在注销时运行)时才会出现注销问题。我观察到当用户尝试注销时WM_ENDSESSION消息没有到达正在运行的窗口,而且我知道第三方软件使用内核驱动程序。我一直在查看WinDbg中的进程,我知道csrss.exe通常会向所有窗口发送WM_ENDSESSION消息。当我跑的时候:!进程823560206查看csrss.exe的堆栈我可以看到:WARNING:FrameIPnoti

c++ - 我的源字符串采用哪种编码?

当我有这样的C++代码时:std::stringnarrow("Thisisanarrowsourcestring");std::stringn2("Win-1252(that'stheencodingweuseforsourcefiles):ä,ö,ü,ß,€,...");//WhatencodingshouldIpasstoWin32's`MultiByteToWideChar`function//toconvertthesestringtoapropoerwchar_t(=UTF-16onWindows)?如果Win-1252是我们的cpp文件的(隐式)编码,我是否可以始终假定它

windows - 从我的应用程序打开由我的服务创建的事件对象

我已经创建了一个Windows服务。我正在其下创建一个事件“测试”。我想使用相同的事件对象由我的应用程序设置/重置。但是我似乎没有通过我的应用程序获取事件对象的句柄。但是可以看到在BaseNamed对象中列出的事件。我想我需要对创建事件的安全属性做些什么。我正在我的服务中创建这个事件创建事件(空,真的,错误的,TEXT("测试"))并在我的应用程序中使用OpenEvent。OpenEvent(EVENT_ALL_ACCESS,真的,TEXT("测试"))请建议我需要进行哪些更改才能让我的应用获得句柄。更新将TEXT("Test")替换为TEXT("Global\\Test")之后。我仍

windows - WinAPI Shell API 与基本 API 和 CRT 函数有何不同?

我正在通读Windows进程API,留下了三个问题:基本API和shellAPI有什么区别?我读到shellAPI包装了基本API,例如ShellExecute()和ShellExecuteEx()包装了CreateProcess()但无法理解其中的区别。基本API和ShellAPI与CRT函数(C运行时)有何不同。同样,exec()和spawn()CRT函数包装了基本API的CreateProcess()。我知道我可以通过编译和链接正确的头文件来直接使用代码中的基本API和CRT函数。如何使用ShellAPI? 最佳答案 1)基础

c - 如何使用 LoadLibrary() 和 GetProcAddress() 函数将 ntdll.dll 添加到项目库中?

我想用NtQueryInformationThread获取线程的起始地址,但我需要添加它的库。我该怎么做? 最佳答案 我更喜欢将ntdll.lib(您可以在WindowsDDK/WDK中找到它)添加到项目中。在这种情况下,您不需要GetProcAddress东西。 关于c-如何使用LoadLibrary()和GetProcAddress()函数将ntdll.dll添加到项目库中?,我们在StackOverflow上找到一个类似的问题: https://stac

windows - 是否可以合理地绕过扫描工作目录的防病毒软件?

我的Win32应用程序在运行时在指定的临时文件夹中执行大量磁盘操作,并且认真地重新设计它是不可能的。有些客户端有扫描同一个临时目录的防病毒软件(它只是扫描所有内容)。我们试图说服他们禁用它-它不起作用,所以这也是不可能的。每隔一段时间(大约每千次文件操作一次),我的应用程序会尝试对当时由防病毒软件打开并因此被操作系统锁定的文件执行操作。发生共享冲突并导致我的应用程序出错。这种情况平均每三分钟发生一次。在大多数典型情况下,临时文件夹最多可包含10万个文件,因此我不喜欢让它们一直打开的想法,因为这可能会导致在某些边缘情况下资源耗尽。我的应用程序是否有一些合理的策略来响应所需文件被锁定的情况

windows - delphi - 计算目录大小API?

有谁知道获取目录大小的其他方法,而不是通过逐个文件计算大小?我对某些win32API函数很感兴趣。我用谷歌搜索过这个,但我没有找到相关信息,所以我在这里问。PS:我知道如何使用findfirst和findnext计算目录大小并对所有文件的大小求和。 最佳答案 获取一个目录的大小是一个相当大的问题,主要是因为它是您无法定义的东西。问题示例:一些文件系统,包括NTFS和Linux上的大多数文件系统都支持“硬链接(hardlink)”的概念。也就是说,同一个文件可能出现在多个地方。软链接(softlink)(重解析点)会造成同样的问题。W

windows - Windows 7 串口输出缓冲区大小

Unix串口有一个很大的输出缓冲区。只要缓冲区中有空间,写入调用就会立即返回。当没有足够的空间时,阻塞写入会一直等待,直到缓冲区被清空到某个较低的水平。在Windows7SP1中,内置16550串行端口的行为就好像没有输出缓冲区一样。似乎写入block,直到数据从端口输出。如果有缓冲区,它甚至比设备管理器中设置的16字节(在COM1的高级设置中)还要小。SetupComm函数让我指定输入和输出缓冲区的推荐大小。但是,输出缓冲区大小似乎没有改变任何行为,并且GetCommProperties始终将dwCurrentTxQueue字段设置为零。SetupComm唯一可以做的就是增加输入缓冲

windows - Windows 中的 PrivCopyFileExW 错误?

我正在发出许多并行的robocopy调用,以将文件从一个网络共享复制到一个目录中。由于文件是只读的,我告诉robocopy通过/A-:R去除目标目录中的只读属性。好像在一些多核机器(12个或更多)的目标目录下!最多锁定16秒。当并发MSBuild任务正在运行并且CopyFile任务是在只读文件上执行时,这个问题就会出现。当执行robocopy以从网络共享并行下载TFS构建的依赖项时,也会发生这种情况。由于所有这些问题都指向kernel32CopyFile(或其私有(private)实现),我怀疑该问题与Windows复制文件的方式有关。这似乎不是内核中的普遍问题,因为临时文件夹存在于必

windows - 在 Windows 上的默认浏览器中打开带有参数的本地 html 文件

我需要在默认浏览器中使用我的C++程序中的参数打开磁盘上的html文件。例如:c:\index.html?id=15。我正在使用ShellExecute打开所有url或文件,但是这个不起作用,它会从本地文件中删除参数。ShellExecute(0,NULL,"file:///c:\index.html?id=15",NULL,NULL,SW_SHOWNORMAL);它在命令行中运行良好,即iexplorefile:///c:\index.html?id=15如何打开该页面? 最佳答案 请尝试此代码。intresult=0;TCHAR